【发布时间】:2019-08-07 00:59:13
【问题描述】:
我的选择查询存在性能问题。查询可能需要超过 4 分钟,这太长了,SQL Server 表有 50 亿条记录。
这里是查询:
Select
ID,Name,City,locationfile,locationpath
From
Table
where
locationfile like '%euro%'`
输出结果:4 分钟内返回 90,000 行。
ID primaryKey 上的聚集索引
在 locationfile 上创建的非聚集索引包括 (City,locationpath)
这是统计数据:逻辑读取 10 070 208、物理读取 2、预读 10 051 119
如何提高性能才能得到结果?
【问题讨论】:
-
你看过全文搜索吗?
-
locationfile上没有任何包含列的索引将允许更少的读取来完成索引 scan,但like '%euro%'将始终需要扫描(而不是 lookup) 由于前导通配符。 -
我们目前可能无法实现全索引文本搜索..,,
-
HABO:您的建议是在没有包含列的位置文件上创建非聚集索引?..
-
We may not implement full index text search at this moment有什么解释吗?是否还有其他您可能无法实施的事情?
标签: sql-server performance tsql