Stored procedures 如何判断哪些存储过程正在SQL Azure上使用参数执行
我已将我的网站移至SQL Azure和Azure网站。我对某些从UI超时的存储过程存在性能问题。我需要捕获带有参数的精确的SQL调用,并在查询窗口中执行该调用以诊断问题 在本地运行SQL时,我只需运行SQL分析器并捕获SQL流量。在SQLAzure中,我不能这样做 我尝试了以下方法,但没有成功:Stored procedures 如何判断哪些存储过程正在SQL Azure上使用参数执行,stored-procedures,azure-sql-database,profiler,Stored Procedures,Azure Sql Database,Profiler,我已将我的网站移至SQL Azure和Azure网站。我对某些从UI超时的存储过程存在性能问题。我需要捕获带有参数的精确的SQL调用,并在查询窗口中执行该调用以诊断问题 在本地运行SQL时,我只需运行SQL分析器并捕获SQL流量。在SQLAzure中,我不能这样做 我尝试了以下方法,但没有成功: 正在运行DMV的查询: (这向我展示了性能最差的查询,但没有显示在我点击前端时的确切存储过程调用) 2.安装并检查SQL选项卡(我正在运行DotNetNuke站点,代码没有使用正确的界面,因此这没有
我最后的办法是在本地复制整个网站和数据库并进行设置,但这似乎是一个简单的要求…您可以运行一个查询,以获得针对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
这是否为您提供了需要查看的参数?您可以运行一个查询,以获取针对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
这是否为您提供了需要查看的参数?相关