我有一个场景,其中存储过程调用内部的多个用户定义函数和其他执行时间较长的语句
我应该采用什么样的优化理论来优化这个查询?和担忧?
答案 0 :(得分:4)
优化是一个复杂的主题,如果没有代码或无法访问确切的情况,就无法充分回答。但是有一些指导方针。第一个用户定义的函数本身可能很慢,特别是标量函数。用内联代码替换它们可能要快得多(当然不是在所有情况下,这就是为什么你测量基线时间并尝试不同的替代方案),因为许多UDF导致数据库必须逐行运行而不是作用于数据集。
如果您要优化复杂的SQL,首先需要学习如何阅读执行计划(在网上搜索一些免费的电子书),然后您需要有效地使用Profiler(特别是如果您的代码是由应用程序)。您需要了解索引,sargability以及使用基于集合的查询替换游标和循环操作的方法。
有很多关于性能调整的好书,我建议你买它们。