|
|
1
5
如果性能很重要,那么标量函数不适合您。
内联表值函数(itvf)几乎总是性能更好。
将Alexei发布的内容转换为itvf使功能速度提高了6倍
在我的电脑上。让我演示一下。首先,这里有一个解决方案
CHOOSE
. 我喜欢
请注意,我使用tinyint是因为我们不需要负数,256足以处理年龄(除非你谈论的是国家、恐龙骨骼等)。。。 现在,让我们将其重新编写为内联表值函数。
接下来是一些性能测试的示例数据。
在测试之前,以下是您如何使用每个函数:
结果:
现在是性能测试。
以下是结果。 同样,itvf版本的速度快了6倍!
|
|
|
2
3
代替
工作版本:
这是因为SQL Server假定VARCHAR=VARCHAR(1),甚至更糟的是,它会自动截断这些值。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |