我需要優化以下查詢(表group_attributes
)得到列group_id
,attribute_id
和int_value
。帶IN子句的SQL Server語句:如何使它們更快?
select group_id
from group_attributes
where attribute_id= 1049
and int_value in (1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255,
1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264,
1265, 1266, 1267, 1268, 1269, 1270, 1271)
即group_attributes
是一個巨大的表和查詢需要永遠。
我不是那麼熟悉SQL,所以我想知道哪個查詢會更快?看起來總的來說這些IN
查詢是該死的慢。
最佳阿斯卡爾
你在桌上有什麼指標?你能展示執行計劃嗎? – 2012-07-31 11:16:35
我想''(attribute_id,int_value,group_id)'上的索引將是有效的。 – 2012-07-31 11:17:37
可能只是「樣式」的問題,但在您的特殊查詢中,您可以使用「int_value BETWEEN 1247 AND 1271」。 – Marco 2012-07-31 11:18:24