我对查询的性能有疑问。
我有一个名为 tblHistory 的表,它包含 17'000 行。我有一个名为 tblItem 的表,它有 14'000 行,一个表 tblItemType 有大约 10 行,它们的关系如下面的查询中所述。
以下查询显示管理 Studio 中的 0sec:
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 中显示 0sec:
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'
)
一旦我像下面的查询一样使用这两个示例,它需要在 managament Studio 中大约 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'
)
你知道为什么这需要这么长时间吗?或者你能告诉我怎样才能让它更快吗?
非常感谢。
此致。伊万