我有一个Com_Main
包含 column的表CompanyName nvarchar(250)
。它的平均长度为 19,最大长度 = 250。
为了提高性能,我想添加一个left20_CompanyName
包含前 20 个字符的计算列CompanyName
:
alter table Com_main
add left20_CompanyName as LEFT(CompanyName, 20) PERSISTED
然后我在此列上创建索引:
create index ix_com_main_left20CompanyName
on Com_main (LEFT20_CompanyName)
所以当我使用
select CompanyName from Com_Main
where LEFT20_CompanyName LIKE '122%'
它使用这个非聚集索引,但是当查询是这样的:
select CompanyName from Com_Main
where CompanyName LIKE '122%'
它使用全表扫描,并且不使用此索引。
所以问题:
是否可以让 SQL Server 在上次查询中的可计算列上使用此索引?