我想知道是否有办法测量函数的性能。在部分。
我知道您能够测量完成该功能所需的总时间,但是有没有办法测量一个功能中的各个查询?
只是想知道,因为我找不到我的功能性能的瓶颈。
我想知道是否有办法测量函数的性能。在部分。
我知道您能够测量完成该功能所需的总时间,但是有没有办法测量一个功能中的各个查询?
只是想知道,因为我找不到我的功能性能的瓶颈。
大多数情况下,当您看到估计的执行计划和实际执行计划之间存在重大差异时,这是因为您的统计数据没有(曾经)更新过。因此,SQL Server 不知道哪些表的数据少,哪些表的数据量大,等等,并且更有可能生成虚假计划(估计的和实际的),或者错误计算估计的计划成本。实际计划基于计划的真实、准确成本,但是当计划与最优计划相差甚远时,这种准确性对于确定瓶颈的价值就很小了。
要更正此问题,请发出该UPDATE STATISTICS
语句或执行该sp_updatestats
过程。
无论您是否有最新的统计数据,看到您的函数的 100% 实际值很可能是空数据库或几乎空数据库的影响。
在优化性能时,请确保您的数据库几乎真实地填充了大量数据(每个表中的记录数量是您对生产的预期的两倍;但请保持预期的粗略比例)。使用空的或完全不成比例的过度膨胀的数据库来寻找性能瓶颈并没有多大意义。查询计划会有所不同,即使计划碰巧是相同的,瓶颈也可能在生产环境之外的其他地方。