代码之家  ›  专栏  ›  技术社区  ›  Vishal

SQL Server分析我该如何处理?

  •  5
  • Vishal  · 技术社区  · 15 年前

    所以我用过 SQL Profiler 我知道如何在后台查看我的LINQ查询。现在,我们正在识别可能需要花费更多时间并需要优化或建立索引的查询。

    所以,现在当我在并行运行它的分析器中查看我的LINQ查询时,有很多其他数据和查询我不关心。不管怎样,探查器或其他一些工具是否可以按最大时间的顺序对查询进行排序……以便我将致力于优化它。我想运行我的应用程序,然后在分析器中查看该批中最糟糕的查询。

    任何人都能指导或指导我做一些对使用SQL Server 2005进行分析更有用的事情吗?此外,欢迎您提出任何有关分析的想法、建议或最佳方法。谢谢。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Dustin Laine    15 年前

    这里是一个关于DMV的查询,它将列出一些有关CPU时间的详细信息。一旦确定了查询,就用 Include Actual Execution Plan 设置为“查看查询流”以及需要索引的位置。

    select  
        highest_cpu_queries.plan_handle,  
        highest_cpu_queries.total_worker_time, 
        q.[text] 
    from  
        (select top 50  
            qs.plan_handle,  
            qs.total_worker_time 
        from  
            sys.dm_exec_query_stats qs 
        order by qs.total_worker_time desc) as highest_cpu_queries 
        cross apply sys.dm_exec_sql_text(plan_handle) as q 
    order by highest_cpu_queries.total_worker_time desc
    

    这是一个好消息 article 发现性能问题。

        2
  •  2
  •   KM.    15 年前

    对于最坏查询的“快速而不干净”列表,您可以使用如下内容:

    SELECT TOP 10
        total_worker_time/execution_count AS Avg_CPU_Time
            ,execution_count
            ,total_elapsed_time/execution_count as AVG_Run_Time
            ,(SELECT
                  SUBSTRING(text,statement_start_offset/2,(CASE
                                                               WHEN statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), text)) * 2 
                                                               ELSE statement_end_offset 
                                                           END -statement_start_offset)/2
                           ) FROM sys.dm_exec_sql_text(sql_handle)
             ) AS query_text 
    FROM sys.dm_exec_query_stats 
    ORDER BY 3 DESC
    

    见: http://msdn.microsoft.com/en-us/library/ms189741%28SQL.90%29.aspx

        3
  •  1
  •   bobs    15 年前

    您可以在启动探查器时更改跟踪属性。选择“事件选择”选项卡,然后单击“列筛选”按钮。在“编辑过滤器”对话框中,选择“持续时间”。然后单击大于或等于并输入一个值。该值以毫秒为单位,因此如果要查看持续时间超过5秒的查询,请输入5000。

    您也可以在这里查看其他过滤器,并根据需要配置持续时间值。

    推荐文章