【发布时间】:2018-12-14 16:02:50
【问题描述】:
我一直认为在WHERE 子句中使用LIKE 'Z%' 的查询是可搜索的,而使用LEFT (ColA, 1) = 'Z' 的查询则不是。
所以我做了一个小测试。
CREATE TABLE #Person (ID INT IDENTITY, LastName VARCHAR (50))
CREATE CLUSTERED INDEX i_PersonID ON #Person (ID)
GO
INSERT INTO #Person
VALUES ('Peters'), ('Michaels'), ('Richarson'), ('Stevens'),
('Wade'), ('Zachery')
GO 10000
查询 1:8 秒
SELECT *
FROM #Person
WHERE LEFT (Lastname, 1) = 'Z'
GO 100
查询 2:8 秒
SELECT *
FROM #Person
WHERE LastName LIKE 'Z%'
GO 100
这里的性能没有区别。在这种情况下,我对 sargability 的理解是否错误的测试有问题吗?
提前致谢。
【问题讨论】:
标签: sql-server performance sql-server-2008 tsql