【问题标题】:What are steps to Profile a SQL Stored Procedure for execution counts and running time [closed]为执行计数和运行时间分析 SQL 存储过程的步骤是什么[关闭]
【发布时间】:2011-10-08 05:54:13
【问题描述】:

有点相关

What are the best practices in writing a sql stored procedure

问题

我在 Microsoft SQL Server Express 2005 中编写了一个 sql-xml 存储过程,现在如何找到它在一秒钟内可以执行多少次执行、执行相同操作所需的时间以及如何对其进行负载测试。有没有相同的开源工具?我可以遵循任何模式来提高执行次数吗?存储过程一般会面临哪些性能瓶颈?

【问题讨论】:

  • [如何记录和查找最昂贵的查询?][1] [1]:stackoverflow.com/questions/257906/…
  • 这属于 Database Administrators SE。 (dba.stackexchange.com)
  • @Surfer513 数据库管理员配置文件查询?我以为是开发商负责的。[我愿意]
  • @MitchWheat 相关帖子与我的问题无关,但属于分析和设计查询
  • @Deeptechtons:实际上它确实与您的问题有关。

标签: sql sql-server sql-server-2005 testing stored-procedures


【解决方案1】:

我会检查通过设置SET STATISTICS IO ON 执行的读取,而不是使用持续时间,因为这对服务器环境负载不敏感。

包括“实际执行计划”。检查计划并寻找:

  • 大型表或索引扫描
  • 可以通过创建覆盖索引来消除的书签查找(不太宽...)
  • “实际行数”与“估计行数”存在较大差异(通常表明统计数据已过时)。

另见:How Can I Log and Find the Most Expensive Queries?

【讨论】:

  • 当你的意思是 Examine plan for Large Table or Index scans 时你能不能把它说得更详细一点,所以当我看到执行计划时,我知道在哪里看[我的意思是像 SSSms 用红色、大块等显示这些]
  • 将在几个小时后尝试更新...
【解决方案2】:

您可以利用SET STATISTICS TIME ON 查看存储过程的持续时间。这将使您很好地了解一秒钟内可以进行多少次迭代。然后要优化/调整该存储过程,只需查看实际执行计划并查看存储过程中最昂贵的部分是什么。

它会注意到您将存储过程用作数据库引擎优化顾问中的工作负载。您可能会得到一些关于缺少索引、可能的改进等方面的提示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2014-10-15
    • 2011-01-13
    相关资源
    最近更新 更多