実行しようとしているクエリがあります。今は、開始日と終了日のパラメータを使用しています。約50秒後、合計33行が得られます。これは非常に時間がかかると感じています。パラメータを削除すると、1582行が返されます。これは戻って53秒しかかかりません。SQL Serverクエリの実行に50秒以上かかる
私は何をすべきか分かりません。私は余分な結合を取り除こうとしました(いくつかありました)。これはクエリの戻り時間を短縮するものではありませんでした。可能であれば、30秒以内にクエリを返すことができます。ありがとうございました。
DECLARE @StartDate DATETIME
SET @StartDate = '2017-04-30 00:00:00.000'
SET @EndDate = '2017-07-31 08:00:00.000'
SELECT
a.PrimaryEventID,
b.Event_Name as 'PrimaryEventName',
b.Event_StartTime as 'EventDate',
e.UserLastName+', '+e.UserFirstName as 'Operator',
f.Activity_MetaDataFieldValue as 'Type',
'Status' = Case
When c.EventStatus = 0 then 'Tent'
When c.EventStatus = 1 then 'Appr'
When c.EventStatus = 2 then 'Pend'
Else 'No Status Found'
End,
CONVERT(varchar(20), a.PrimaryEventID)+'|'+CONVERT(varchar(20), e.UserId)
as 'JoinColumn',
b1.Activity_MetaDataTypeID
FROM
views.mcd_DWH_LinkedEvents a
Left JOIN dwh.mcd_DWH_Events b ON a.PrimaryEventID = b.Event_ID
Left JOIN rawViews.mcd_DWH_ActivitiesBasicData b1 on b.EventActivity_ID = b1.Activity_ID
Left JOIN dwh.mcd_DWH_Events c ON a.LinkedEventID = c.Event_ID
Left JOIN dwh.mcd_FWT_UserEventAssociations_Detailed_Manager d ON a.LinkedEventID = d.Event_ID
Left JOIN views.mcd_FWT_UsersBasicData e ON d.User_ID = e.UserID
Left JOIN views.mcd_FWT_ActivitiesExtraDetails f ON c.EventActivity_ID = f.Activity_ID and f.Activity_MetaDataFieldName = 'Type'
Left JOIN views.mcd_FWT_TrainingProgramsBasicData g ON c.EventTrainingProgram_ID = g.TrainingProgramID
Left JOIN views.mcd_FWT_MPlansBasicData h ON g.TrainingProgram_MPlanID = h.MPlanID
WHERE d.Activity_TypeID = 57
and b.Event_StartTime between @StartDate and @EndDate
and (f.Activity_MetaDataFieldValue = 'Qual' or f.Activity_MetaDataFieldValue = 'Run' or f.Activity_MetaDataFieldValue = 'Assess')
GROUP by a.PrimaryEventID, b.Event_Name,b.Event_StartTime, h.MPlanName, f.Activity_MetaDataFieldValue, e.UserLastName, e.UserFirstName, c.EventStatus, e.UserId, b1.Activity_MetaDataTypeID
参加する列にインデックスがありますか?また、 'b.Event_StartTime'はDATETIMEフィールドでもあります(つまり、クエリに使用する変数と同じデータ型ですか?そうでない場合、インデックスは使用されません) – RToyo
クエリプランを見るとそれはすべてのインデックスを示唆していますか?私が推測しなければならないことがあれば、おそらくすべてのビューはそれぞれ数秒かかるでしょう。 – SteveB
少なくとも実行計画を見なければ、ここでは何もできません。 – DavidG