0
私は、この機能とクエリ日付圧縮SQL Serverの
機能があります。
ALTER FUNCTION [dbo].[dateholiday]
(@date1 AS DATETIME,
@date2 AS DATETIME)
RETURNS DATETIME
AS
BEGIN
DECLARE @Answer AS DATETIME
IF(@date1 = @date2)
SET @Answer = @date2
RETURN @Answer
END
問合せ:
FEIERTAGE_Oは115の日付のリストですが、Posted_Date程度であるSELECT Posted_By
,Document_Number
,Account_Description
,dbo.dateholiday(CONVERT(NVARCHAR(10), CONVERT(DATETIME, Feiertage, 104), 20), [dbo].[QLIK].[Posted_Date]) AS Holiday
FROM [dbo].[FEIERTAGE_O]
,[dbo].[QLIK]
WHERE dbo.dateholiday(CONVERT(NVARCHAR(10), CONVERT(DATETIME, Feiertage, 104), 20), [dbo].[QLIK].[Posted_Date]) IS NOT NULL
GROUP BY dbo.dateholiday(CONVERT(NVARCHAR(10), CONVERT(DATETIME, Feiertage, 104), 20), [dbo].[QLIK].[Posted_Date])
,Posted_By
,Document_Number
,Account_Description
をクエリは正常に動作しますが、唯一の問題は時間がかかります。だから私はそれをより速くする必要があります。
すべてのアイデア!
クエリの実際の実行計画を投稿してください。 – StackUser
'Join without predicate'、' Scalar function'、 'Index Scan' - 主な問題 – Devart
は全体の機能ですか?奇妙に見えますが、名前は機能に合っていないようです。とにかく、あなたの関数は2つの 'datetime'値を期待していますが、(少なくとも)1つの' NVARCHAR'を与えます。暗黙のうちに 'datetime'に変換されていると仮定します。サブクエリでこの関数を使用すると役立ちますので、頻繁に評価する必要はありません。この関数は 'select'、' where'、 'group by'のために実行されます。 – HoneyBadger