我對查詢的性能有疑問。select語句上的SQL Server性能
我有一個名爲tblHistory的表,它包含17'000行。 我有一個表名爲tblItem與14'000行和表tblItemType與約10行是關係如下面在查詢中所述。
下面的查詢顯示在同治工作室0秒:
Select tblItem_Id, tblItem_Title,
CountHistoryItems =
(
SELECT count(*) FROM tblHistory
where tblHistory_ItemId = tblItem_Id
)
from tblItem INNER JOIN tblItemType ON tblItem_ItemTypeId = tblItemType_Id
下面的查詢顯示Management Studio中0秒:
Select tblItem_Id, tblItem_Title
from tblItem INNER JOIN tblItemType ON tblItem_ItemTypeId = tblItemType_Id
where
(
tblItemType_BaseTypeId = '00000000-0000-0000-0000-000000000200' or
tblItemType_BaseTypeId = '00000000-0000-0000-0000-000000000300'
)
只要我用這兩個例子在一起,就像它需要下面的查詢在管理工作室約2分鐘獲得結果:
Select tblItem_Id, tblItem_Title,
CountHistoryItems =
(
SELECT count(*) FROM tblHistory
where tblHistory_ItemId = tblItem_Id
)
from tblItem INNER JOIN tblItemType ON tblItem_ItemTypeId = tblItemType_Id
where
(
tblItemType_BaseTypeId = '00000000-0000-0000-0000-000000000200' or
tblItemType_BaseTypeId = '00000000-0000-0000-0000-000000000300'
)
你有什麼想法,爲什麼這需要這麼長時間,或者你能告訴我如何使它更快?
非常感謝。
此致敬禮。 伊萬
哪個指數做你有你的桌子嗎? – sphair
您調試此類問題的方式是通過查看執行計劃。張貼在這裏。 – usr
你有沒有看看執行計劃,看看你的查詢哪部分花費最多時間? – Sedecimdies