如何在SQL Server中的Int列上创建通配符搜索的索引?

时间:2010-10-08 14:36:36

标签: sql sql-server performance indexing

我有一张包含数百万行的表格。 该表的PK是Int列。用户希望能够通过该PK对该表的行进行通配符搜索。当以简单的方式执行此查询时,它将非常慢,因为Sql server将列值从int隐式转换为char,以便每次运行查询时都应用通配符

这个想法是创建一个存储该int列的“转换为char”值的索引,因此Sql Server可以重用它而不是每次查询重新转换数百万个值。

我该如何实现?

注意:在这种情况下,更改执行通配符搜索或将数据库模式中的列更改为char的业务要求不是选项。

干杯!

1 个答案:

答案 0 :(得分:4)

SQL Server没有基于函数的索引,但您可以通过添加将数据类型转换/转换为VARCHAR / etc的computed column来模拟行为,然后对此计算列进行索引。不过,如果你在LIKE比较的左侧进行通配,那么这种好处就没有实际意义了。

相关问题