Mik*_*sny 5 performance sql-server-2005 calculated-columns
我有一个Com_Main
包含列的表CompanyName nvarchar(250)
.它的平均长度为19,最大长度为250.
为了提高性能,我想添加一个计算列left20_CompanyName
,它保存前20个字符CompanyName
:
alter table Com_main
add left20_CompanyName as LEFT(CompanyName, 20) PERSISTED
Run Code Online (Sandbox Code Playgroud)
然后我在这个专栏上创建索引:
create index ix_com_main_left20CompanyName
on Com_main (LEFT20_CompanyName)
Run Code Online (Sandbox Code Playgroud)
所以我用的时候
select CompanyName from Com_Main
where LEFT20_CompanyName LIKE '122%'
Run Code Online (Sandbox Code Playgroud)
它使用这个非聚集索引,但当查询如下:
select CompanyName from Com_Main
where CompanyName LIKE '122%'
Run Code Online (Sandbox Code Playgroud)
它使用全表扫描,不使用此索引.
所以问题是:
是否有可能使SQL Server在上一次查询中的可计算列上使用此索引?
归档时间: |
|
查看次数: |
202 次 |
最近记录: |