0
下面提到的查詢針對有大量記錄的表運行 - 最高可達22029464 ....並且這在平均執行時間約爲20-25分鐘。是否有任何優化或重寫這個不同的範圍。所需的索引上的所有表中,查詢計劃表現出不缺少指標要求SQL Server查詢優化 - MultiJoins在2000萬條記錄中的表
SELECT stg.*
FROM dbo.s_NIIT_ResultValues stg
WHERE stg.resultId IN (SELECT resultId
FROM Data_NIIT.dbo.NIIT_Results)
AND (stg.resultIntValueId IS NULL
OR stg.resultIntValueId IN (
SELECT resultIntValueId
FROM Data_NIIT.dbo.NIIT_ResultIntValues)
)
AND (stg.resultBoolValueId IS NULL
OR stg.resultBoolValueId IN (
SELECT resultBoolValueId
FROM Data_NIIT.dbo.NIIT_ResultBoolValues)
)
AND (stg.resultStringValueId IS NULL
OR stg.resultStringValueId IN (
SELECT resultStringValueId
FROM Data_NIIT.dbo.NIIT_ResultStringValues)
)
爲什麼不只是加入toResultIntValues,ResultBoolValues,ResultStringValues?似乎它會更加高效,基本上是一樣的,而且很容易閱讀和理解。 – pmbAustin
查詢計劃,表格定義以及這些表格上的所有索引和鍵。 「*所有表上都存在必需的索引,查詢計劃顯示沒有缺失索引需求*」是一個錯誤的結論,查詢計劃的建議在這個特定的決定中遠未完成。 – RBarryYoung