sql - 在部分 CHAR 列上创建索引

标签 sql tsql sql-server-2008 query-tuning

我有一个 CHAR(250) 列用作 varchar(24) 列的外键。

在 MySQL 中,我记得我可以创建一个指定 column(24) 的索引,以便在最左边的 24 个字符上创建一个索引。这在 MS SQL Server 上似乎是不可能的。

我的问题是这样的:

是否可以在 SQL Server 2008 上使用索引 View 来索引该列的子字符串,如果可以,是否会对表的性能产生任何副作用?

最佳答案

您可以创建一个持久计算列,然后对其进行索引,参见 Creating Indexes on Computed Columns

alter table add newcolumn as cast(oldcolumn as varchar(24)) persisted;
create index table_newcolumn on table (newcolumn);

关于sql - 在部分 CHAR 列上创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028868/

相关文章:

sql - 来自不同数据库的表上的外键

MySQL 从表中获取前 3 位供应商

mysql - SQL 未按预期工作

sql - 使用表的字段值重命名 SQL 表的列

MySQL触发器: INSERT table1,更新表2

mysql - 为什么 Wordpress 数据库模式不使用外键?

sql - 用于枢轴的索引

mysql - SQL Server 查询替换 MySQL 指令

sql-server - 如何安全地将 NVARCHAR 转换为 MONEY

sql-server - 如何在 SQL Server 2008 R2 中替换 REVOKE ALL