MS SQL Server 上的大写或小写优化

Cat*_*key 4 sql-server optimization

有谁知道 MS SQL Server 文本查询是否针对大写或小写字符串进行了优化?

我在某处读到它是大写的,但似乎无法再次找到对它的引用。当然,如果这是完全错误的并且没有进行优化,那么知道这也很有用。

谢谢你的帮助。

厘米

Sta*_*hns 6

我会说这取决于您安装的 SQL 服务器。我看到的默认值不区分大小写。

select serverproperty('SQLsortorderName')如果你回来nocase_iso就运行,这意味着你的搜索不区分大小写。所以使用 UPPER 会给你相同的结果,但它会在 CPU 上增加一点工作。

  • 我已经对这个答案投了赞成票,但我想明确表示它可能不仅仅是“多一点工作”。根据排序规则,如果将 UPPER() 或 LOWER() 应用于搜索条件中的索引字段,则最终可能会执行索引甚至表扫描而不是索引查找。 (2认同)

dat*_*god 5

由于 SQL Server 的默认安装为您提供不区分大小写的搜索,因此我在这里冒昧地说一下搜索没有大写或小写优化。

在查询期间总是添加 UPPER() 或 LOWER() 来转换文本会影响性能,具体取决于被查询的数据量。如果不需要,请不要使用 UPPER() 或 LOWER()。