SQL标准与T-SQL扩展的性能

SQL标准与T-SQL扩展的性能,sql,sql-server,tsql,query-performance,ansi-sql,Sql,Sql Server,Tsql,Query Performance,Ansi Sql,互联网上的文章说,用户定义的功能可能会加重负担,也可能会提高性能 现在,我知道标准SQL非常有限,但是,有些行为仍然可以像T-SQL内置函数那样编写 例如,adddays与dateadd。我听说还有一点,使用coalesce(ANSI标准函数)比使用isNull更好 使用ANSI SQL标准函数与T-SQL函数之间的性能差异是什么 T-SQL是否增加了任何负担?它是否试图让工作变得更简单,从而对性能造成了如此大的影响 我的研究似乎没有显示出一种趋势。您需要根据具体情况进行处理,并进行实际测试。除

互联网上的文章说,用户定义的功能可能会加重负担,也可能会提高性能

现在,我知道标准SQL非常有限,但是,有些行为仍然可以像T-SQL内置函数那样编写

例如,adddays与dateadd。我听说还有一点,使用coalesce(ANSI标准函数)比使用isNull更好

使用ANSI SQL标准函数与T-SQL函数之间的性能差异是什么

T-SQL是否增加了任何负担?它是否试图让工作变得更简单,从而对性能造成了如此大的影响


我的研究似乎没有显示出一种趋势。

您需要根据具体情况进行处理,并进行实际测试。除了Microsoft试图使整个堆栈尽可能好地执行之外,没有通用规则。测试是你需要做的事情——我们不能告诉你某件事情总是会更快。那真是个糟糕的建议


对实际生产数据(最好是它的副本)进行此测试非常重要。不要依赖于针对非您的数据集进行的测试。当您谈论函数的性能差异时,一些非常微妙的事情可能会产生很大的差异。表的大小、涉及的数据类型、索引和SQL Server版本等都可能会更改这些测试的结果。这就是为什么没有人为你做这件事。我们做不到。

内置函数比UDF函数更好,但如果使用不当,它们仍然会导致严重的性能问题。例如,在where子句中使用它们时。我不知道coalesce比isnull好,但coalesce与ANSI兼容,其中isnull仅是t-sql。这两种方法在处理返回的数据类型方面有一些细微的差别。谢谢。但是如果将ANSI内置函数与仅T-SQL函数进行比较会怎么样呢。有没有真正的性能差异?我知道他们的工作方式会有所不同。但是如果在两个函数中选择一个,返回相同的结果,我会以相同的方式使用。性能是否仍有可能发生变化?如下文所述,需要根据具体情况进行测试。一般来说,假设这个用法不会使一个查询变得不可争论,那么就没有什么区别了。最好在问题中明确地讨论你的研究,这样其他人就不必为了验证它的正确性和理解它的结果而重复它。哪些文章?有可靠的消息来源吗?有没有发表过与博客/维基等不同的研究?谢谢。可惜没有人这样做。我也在谷歌上搜索了案例测试,我发现了一些测试,但不是SQL函数和T-SQL函数试图实现相同的行为。我很想知道。我猜那些仅仅用T-SQL编写代码的人可能根本就没有考虑过这个问题,Jasmine并不是说要逐项查看每个函数。相反,它将在查询级别进行检查。在一个查询中可能运行良好的内容不能保证在另一个查询中是相同的。总的来说,我不会太担心它。ISNULL和COALESCE之间的性能差异可以忽略不计,甚至无法测量。请参阅我的编辑-它解释了为什么没有其他人可以为您执行这些测试。太棒了,这很有意义!非常感谢各位,学得好!:@Jasmine投赞成票并不意味着“谢谢!”,表示此答案或问题有用。顺便说一句,投票支持你