SQL 标准与 T-SQL 扩展的性能
Performance of SQL standards vs T-SQL extensions
互联网上的文章说用户定义的函数会增加或增加性能。
现在,我知道标准 SQL 非常有限,但是,某些行为仍然可以像 T-SQL 内置函数一样编写。
例如,adddays()
与 dateadd()
。另一点我听说使用 coalesce()
也更好——ANSI 标准函数而不是 isNull()
。
使用 ANSI SQL 标准函数与 T-SQL 函数之间的性能差异是什么?
T-SQL 是否会试图让工作更轻松,从而给性能增加任何负担?
我的研究似乎没有表明趋势。
您需要根据具体情况进行处理并进行实际测试。没有一般规则,只是 Microsoft 试图使整个堆栈尽可能地执行。测试是您需要做的 - 我们不能告诉您总是某件事会更快。那将是非常糟糕的建议。
对您的实际 生产 数据进行此测试很重要,最好是它的副本。不要依赖针对不属于您的数据集所做的测试。当您谈论功能的性能差异时,一些非常细微的事情可能会产生很大的差异。 table 的大小、涉及的数据类型、索引和 SQL 服务器版本等因素可以改变这些测试的结果。这就是 "no one has done this" 适合你的原因。我们不能。
互联网上的文章说用户定义的函数会增加或增加性能。
现在,我知道标准 SQL 非常有限,但是,某些行为仍然可以像 T-SQL 内置函数一样编写。
例如,adddays()
与 dateadd()
。另一点我听说使用 coalesce()
也更好——ANSI 标准函数而不是 isNull()
。
使用 ANSI SQL 标准函数与 T-SQL 函数之间的性能差异是什么?
T-SQL 是否会试图让工作更轻松,从而给性能增加任何负担?
我的研究似乎没有表明趋势。
您需要根据具体情况进行处理并进行实际测试。没有一般规则,只是 Microsoft 试图使整个堆栈尽可能地执行。测试是您需要做的 - 我们不能告诉您总是某件事会更快。那将是非常糟糕的建议。
对您的实际 生产 数据进行此测试很重要,最好是它的副本。不要依赖针对不属于您的数据集所做的测试。当您谈论功能的性能差异时,一些非常细微的事情可能会产生很大的差异。 table 的大小、涉及的数据类型、索引和 SQL 服务器版本等因素可以改变这些测试的结果。这就是 "no one has done this" 适合你的原因。我们不能。