Shi*_*ant 4 sql t-sql sql-server
我发现了一个大问题.
我已将Lower函数添加到其中一个表的索引列以获取数据.该表包含超过100K的记录.
在获取记录时,cpu使用率达到100%.
我无法理解,只是因为Lower()函数才会发生这种剧烈的变化.
请帮忙!
如果你真的需要这个查询,你可以做的是创建一个使用LOWER()函数的持久计算列.索引该列,你应该再次罚款:
ALTER TABLE dbo.YourTableName
ADD LowerFieldName AS LOWER(YourFieldName) PERSISTED
CREATE NONCLUSTERED INDEX IX_YourTableName_LowerFieldName
ON dbo.YourTableName(YourFieldName)
Run Code Online (Sandbox Code Playgroud)
这将保持你的字段在表中的小写表示,它始终是最新的,并且因为它是持久的,它是表的一部分并且不会导致LOWER()函数的惩罚.在其上放置一个索引,您的搜索应该像以前一样快.
链接: