【问题标题】:How to tell which stored procedures are executing with params on SQL Azure如何通过 SQL Azure 上的参数判断哪些存储过程正在执行
【发布时间】:2014-12-23 09:54:17
【问题描述】:

我已将我的网站移至 SQL Azure 和 Azure 网站。我对某些从 UI 超时的存储过程存在性能问题。我需要捕获带有参数的exact SQL 调用,并在查询窗口中执行它以诊断问题。

在本地运行 SQL 时,我只运行 SQL Profiler 并捕获 SQL 流量。在 SQL Azure 中我不能这样做。

我尝试了以下失败:

  1. 为 DMV 运行查询:

    http://www.developer.com/services/how-to-identify-performance-bottlenecks-on-azure-sql-database.html http://programming4.us/database/2716.aspx http://sqlserverperformance.wordpress.com/2008/01/21/five-dmv-queries-that-will-make-you-a-superhero/

    (这向我展示了性能最差的查询,但不是我点击前端时的确切存储过程调用)

2 安装 Glimpse 并检查 SQL 选项卡(我正在运行一个 DotNetNuke 站点并且代码没有使用正确的接口,所以这没有显示正在执行的 SQL Server 存储过程)

  1. Fiddler(当然 HTTP 调用中没有 SQL 信息)

  2. Azure“管理数据库” - 这显示了最慢的查询并且非常有用,但不是当前传入的存储过程 http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get-sql-profiler-info-from-sql-azure.aspx

我最后的办法是把整个站点和数据库复制到本地并设置好,但是看起来这么简单的需求……

【问题讨论】:

标签: stored-procedures azure-sql-database profiler


【解决方案1】:

您可以运行一个查询来获取针对 Windows Azure SQL 数据库运行的最后 500 个查询,如下所示:

SELECT TOP 500 * 
FROM
(
    SELECT  [Last Execution Time] = last_execution_time,
            [Execution Count] = execution_count,
    [SQL Statement] = (
                    SELECT TOP 1 SUBSTRING (s2. TEXT,statement_start_offset / 2+ 1 ,
    ( ( CASE WHEN statement_end_offset = -1
    THEN ( LEN(CONVERT (NVARCHAR( MAX),s2 .TEXT)) * 2 )
                    ELSE statement_end_offset END )- statement_start_offset) / 2 +1)
                    ),
            [Stored Procedure Name] = COALESCE( OBJECT_NAME(s2 .objectid), 'Ad-Hoc Query'),
            [Last Elapsed Time] = s1.last_elapsed_time,
            [Minimum Elapsed Time] = s1.min_elapsed_time,
            [Maximum Elapsed Time] = s1.max_elapsed_time
    FROM sys.dm_exec_query_stats AS s1
    CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 
) x
WHERE [SQL Statement] NOT LIKE '%SELECT TOP 500%' /* Exclude this query */
ORDER BY [Last Execution Time] DESC

这是否为您提供了您需要查看的参数?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多