【发布时间】:2016-12-19 07:08:43
【问题描述】:
-
查询一--索引查找
SELECT P.Date_Send_Ins,C.* FROM DATABASE1..TABLE1 P WITH (FORCESEEK) JOIN DATABASE2..TABLE2 C ON P.COLUMN1 = C.COLUMN1 AND P.COLUMN2 = C.COLUMN2 WHERE LEFT(C.COLUMN3 ,7) LIKE 'YYYY/MM' and LEFT(P.COLUMN3 ,2) = 'YS' -
查询二
SELECT P.Date_Send_Ins,C.* FROM DATABASE1..TABLE1 P JOIN DATABASE2..TABLE2 C ON P.COLUMN1 = C.COLUMN1 AND P.COLUMN2 = C.COLUMN2 WHERE LEFT(C.COLUMN3 ,7) LIKE 'YYYY/MM' and LEFT(P.COLUMN3 ,2) = 'YS' -
查询三--index seek
SELECT P.Date_Send_Ins,C.* FROM DATABASE1..TABLE1 P JOIN DATABASE2..TABLE2 C ON P.COLUMN1 = C.COLUMN1 AND P.COLUMN2 = C.COLUMN2 WHERE LEFT(C.COLUMN3 ,7) LIKE 'YYYY/MM' and P.Date_Send_Ins LIKE 'YS%'
在sql server中查询一和三很快,但是查询二太慢了,结果没有出现。
在另一台服务器上,它们都很快,我运行sp_updatestats,但这并没有更好。
如何解决这个问题?
【问题讨论】:
-
DATABASE1..TABLE1 上有哪些索引?
-
错误索引减慢了查询速度。当我禁用索引时问题解决了。谢谢
标签: sql sql-server database-administration sqlperformance