我在对 mssql 2008 数据库运行查询的程序中遇到问题。我在查询分析器中做了一些研究。以下两个查询存在一个奇怪的问题:
SELECT BOLD_ID ,
BOLD_TYPE
FROM ZusatzKlasseBase
WHERE ( bold_id IN ( SELECT usereintrag
FROM zusatzfeld
WHERE metazusatzfeld = 5211309
AND wertobject = 1298369 )
AND bold_id IN ( SELECT usereintrag
FROM zusatzfeld
WHERE metazusatzfeld = 5207783
AND wertdatum = '20130415' )
)
此查询的运行时间约为一秒
SELECT BOLD_ID ,
BOLD_TYPE
FROM ZusatzKlasseBase
WHERE ( BOLD_TYPE IN ( 336 ) )
AND ( bold_id IN ( SELECT usereintrag
FROM zusatzfeld
WHERE metazusatzfeld = 5211309
AND wertobject = 1298369 )
AND bold_id IN ( SELECT usereintrag
FROM zusatzfeld
WHERE metazusatzfeld = 5207783
AND wertdatum = '20130415' )
)
此查询的运行时间为一分钟。
我对此没有任何解释,字段 BOLD_TYPE 已编入索引。谁能猜出为什么更具体的查询更慢?
提前感谢所有答案。