相关疑难解决方法(0)

子串的SQLServer与左右组合的相对性能

这是一个基于表现的问题,而不是" 我不理解 "或" 最佳实践 "的问题.

我在SQLServer数据库中有一个varchar字段,保证长度超过7个字符.我需要提取一个char(4)字段,该字段由varchar中的第2,第3,第4和第5个字符组成.

例如,如果varchar的值为1234567890,那么我将寻找2345部分.

在左右组合中使用子字符串是否有性能优势?

SELECT SUBSTRING(account,2,4) FROM payment
Run Code Online (Sandbox Code Playgroud)

要么

SELECT RIGHT(LEFT(account,5),4) FROM payment
Run Code Online (Sandbox Code Playgroud)

我注意到在一个有1,760,335条记录的表格上使用右键左边有一点点优势,但我不确定这是否是由于缓存查询等原因造成的.

更新 我做了更多的功课.似乎在这种情况下,右 - 左最终作为右子串执行.这是一个规则吗?或者它只是SQLServer决定皮肤这个特殊猫的方式? 替代文字

sql-server performance substring

10
推荐指数
1
解决办法
5521
查看次数

标签 统计

performance ×1

sql-server ×1

substring ×1