在测试查询时:
select AccountID, SchemaID, Name, Description, CurrentVersion
from [test].[dbo].[FormSchema]
where SchemaID like '%[^a-zA-Z0-9-_]%'
运行执行计划后,它显示具有 100% 成本的聚簇索引扫描。列 schemaId 上有一个聚集索引。
我的问题是如何使它成为索引搜索而不是扫描?
在测试查询时:
select AccountID, SchemaID, Name, Description, CurrentVersion
from [test].[dbo].[FormSchema]
where SchemaID like '%[^a-zA-Z0-9-_]%'
运行执行计划后,它显示具有 100% 成本的聚簇索引扫描。列 schemaId 上有一个聚集索引。
我的问题是如何使它成为索引搜索而不是扫描?
SchemaID like '%[^a-zA-Z0-9-_]%'
无论你做什么都会有问题。话虽如此,如果您添加这样的索引:
并将查询更改为:
你可能会得到一个索引搜索。
话虽如此,索引扫描本质上并不是一件坏事。事实上,SQL Server 选择进行索引扫描是因为它认为这是获得结果的最快方式。