Rod*_*ney 1 profiler stored-procedures azure-sql-database
我已将我的网站移至 SQL Azure 和 Azure 网站。我的某些存储过程存在性能问题,这些存储过程从 UI 中超时。我需要使用参数捕获确切的SQL 调用,并在查询窗口中执行它来诊断问题。
在本地运行 SQL 时,我只需运行 SQL Profiler 并捕获 SQL 流量。在 SQL Azure 中我无法做到这一点。
我已尝试以下方法但未成功:
运行 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 存储过程)
Fiddler(当然HTTP调用中没有SQL信息)
Azure“管理数据库”-这显示最慢的查询并且非常有用,但不是当前传入的存储过程 http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how -do-i-get-sql-profiler-info-from-sql-azure.aspx
我的最后手段是在本地复制整个站点和数据库并进行设置,但这似乎是一个简单的要求......
您可以运行一个查询来获取针对 Windows Azure SQL 数据库运行的最后 500 个查询,如下所示:
\n\nSELECT\xc2\xa0TOP\xc2\xa0500\xc2\xa0*\xc2\xa0\nFROM\n(\n SELECT\xc2\xa0 [Last Execution Time] = last_execution_time,\n [Execution Count] = execution_count,\n [SQL Statement] = (\n SELECT\xc2\xa0TOP\xc2\xa01\xc2\xa0SUBSTRING\xc2\xa0(s2.\xc2\xa0TEXT,statement_start_offset\xc2\xa0/\xc2\xa02+\xc2\xa01\xc2\xa0,\n (\xc2\xa0(\xc2\xa0CASE\xc2\xa0WHEN\xc2\xa0statement_end_offset\xc2\xa0=\xc2\xa0-1\n THEN\xc2\xa0(\xc2\xa0LEN(CONVERT\xc2\xa0(NVARCHAR(\xc2\xa0MAX),s2\xc2\xa0.TEXT))\xc2\xa0*\xc2\xa02\xc2\xa0)\n ELSE\xc2\xa0statement_end_offset\xc2\xa0END\xc2\xa0)-\xc2\xa0statement_start_offset)\xc2\xa0/\xc2\xa02\xc2\xa0+1)\n ),\n [Stored Procedure Name] = COALESCE(\xc2\xa0OBJECT_NAME(s2\xc2\xa0.objectid),\xc2\xa0'Ad-Hoc Query'),\n [Last Elapsed Time] = s1.last_elapsed_time,\n [Minimum Elapsed Time] = s1.min_elapsed_time,\n [Maximum Elapsed Time] = s1.max_elapsed_time\n FROM\xc2\xa0sys.dm_exec_query_stats\xc2\xa0AS\xc2\xa0s1\n CROSS\xc2\xa0APPLY\xc2\xa0sys.dm_exec_sql_text(sql_handle)\xc2\xa0AS\xc2\xa0s2\xc2\xa0\n)\xc2\xa0x\nWHERE\xc2\xa0[SQL Statement]\xc2\xa0NOT\xc2\xa0LIKE\xc2\xa0'%SELECT TOP 500%' /* Exclude this query */\nORDER\xc2\xa0BY\xc2\xa0[Last Execution Time]\xc2\xa0DESC\nRun Code Online (Sandbox Code Playgroud)\n\n这是否为您提供了需要查看的参数?
\n