gpt4 book ai didi

performance - 计算列索引

转载 作者:行者123 更新时间:2023-12-03 04:51:56 26 4
gpt4 key购买 nike

我有一个表Com_Main,其中包含列CompanyName nvarchar(250)。它的平均长度为 19,最大长度 = 250。

为了提高性能,我想添加一个计算列 left20_CompanyName,它保存 CompanyName 的前 20 个字符:

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 在上次查询的可计算列上使用此索引?

最佳答案

没有。 MySQL supports partial indexing of varchar columns但 MS SQL Server 没有。

你也许可以通过分区来加速表扫描,但我不知道 SQL Server 在这方面有多智能。

关于performance - 计算列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13051507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com