Performance 选择速度函数

Performance 选择速度函数,performance,sql-server-2005,function,Performance,Sql Server 2005,Function,我想知道是否有一种方法可以衡量函数的性能。部分地 我知道您可以测量完成函数所需的总时间,但有没有方法测量函数中的单个问题 我只是想知道,因为我找不到函数性能的瓶颈。大多数时候,当您看到估计执行计划与实际执行计划之间存在重大差异时,这是因为您的统计数据(从未)更新。因此,SQL Server不知道哪些表的数据量小,哪些表的数据量大,等等,并且更有可能生成虚假的计划(估计的和实际的),或者错误计算估计的计划成本。实际的计划是基于计划的真实、准确的成本,但当计划远远不是最佳计划时,这种准确性对于确定瓶

我想知道是否有一种方法可以衡量函数的性能。部分地

我知道您可以测量完成函数所需的总时间,但有没有方法测量函数中的单个问题


我只是想知道,因为我找不到函数性能的瓶颈。

大多数时候,当您看到估计执行计划与实际执行计划之间存在重大差异时,这是因为您的统计数据(从未)更新。因此,SQL Server不知道哪些表的数据量小,哪些表的数据量大,等等,并且更有可能生成虚假的计划(估计的和实际的),或者错误计算估计的计划成本。实际的计划是基于计划的真实、准确的成本,但当计划远远不是最佳计划时,这种准确性对于确定瓶颈的价值很小

要更正此问题,请发出
updatestatistics
语句或执行
sp_updatestats
过程

无论是否有最新的统计数据,看到函数的100%实际值很可能是空数据库或几乎空数据库的结果


在优化性能时,请确保您的数据库以准现实的方式填充大量数据(每个表中的记录数是您预期的生产记录数的两倍;但一定要保持预期的大致比例)。使用一个空的或完全过度膨胀的数据库寻找性能瓶颈没有多大意义;查询计划将不同,即使计划恰好相同,瓶颈也可能在生产之外的其他地方。

您是否查看了函数中查询的执行计划?是的。也许我只是不知道如何使用它们,但包含实际执行计划对我来说是无用的,因为它只显示函数本身的100%。估计执行计划工作得更好,但它只是显示了一个巨大的图像,需要永远导航,只显示我的百分比。百分比是否与它在该特定函数上花费的时间直接相关?@user1512593-请编辑问题以显示函数代码,以获得更具体的答案。函数代码约400行。我不认为需要为这个问题的具体答案提供函数代码。将函数的内容拉出,并将其放入SSMS的查询窗口中。当您运行它时,您应该得到详细的执行计划。当然,你必须伪造任何参数,好的。我爱你。非常感谢。没有找到确切的答案,但您的sp_updatestats确实帮助提高了很多性能!还有一个问题,我是需要为每个函数运行它,还是只运行一次就会影响一切?@user1512593-定期(每晚)运行它。每次当您彻底更改数据库的大小/内容时—初始配置、返回服务等—运行一次。不要在正常运行的高峰期运行它。