2011-02-10 202 views
0

我有一种情况,一个存储过程调用内多个用户定义的函数,并且采取了高执行时间优化SQL查询

我应该携带什么样的优化理论了优化这个查询等语句?和担忧?

+1

您使用的数据库是? – 2011-02-10 16:55:12

+0

Microsoft SQL Server – Sudantha 2011-02-10 16:55:55

回答

4

优化是一个复杂的主题,不能充分回答没有代码或没有获得确切的情况。但是有一些指导原则。首先由用户自定义的函数可能会特别慢,特别是标量函数。用内联代码替换它们可能会更快(当然不是所有情况下,这就是为什么您要测量基准时间并尝试不同的替代方法),因为许多UDF会导致数据库必须逐行运行,而不是对数据集执行操作。

如果你打算优化复杂的sql,首先你需要学习如何阅读执行计划(在网上搜索一些免费的电子书),然后你需要有效地使用Profiler(尤其是如果你的代码是生成的由应用程序)。您需要了解索引,可扩展性以及使用基于集合的查询替换游标和循环操作的方法。

有很多关于性能调优的好书,我建议你购买它们。