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

如何衡量存储过程的性能?

  •  10
  • Eyeball  · 技术社区  · 16 年前

    7 回复  |  直到 16 年前
        1
  •  18
  •   Lukasz Lysik    16 年前

    看看这篇文章: Measuring SQL Performance

    如果你不想注册免费帐户,这里有一个解决方案1:

    DECLARE @start datetime, @stop datetime
    SET @start = GETDATE()
    EXEC your_sp
    SET @stop = GETDATE()
    

    第二:

    SET STATISTICS TIME ON
    EXEC your_sp
    

    SET STATISTICS IO ON
    EXEC your_sp
    

        2
  •  1
  •   David Basarab    16 年前

    问题是,你优化的目的是什么?是速度还是资源消耗?

        3
  •  1
  •   KM.    16 年前

    设置SHOWPLAN_ALL ON

    这可能会有所帮助:

    http://technet.microsoft.com/en-us/library/ms180765.aspx

        4
  •  0
  •   Charles Bretana    16 年前

    但是,如果存储过程是对最终用户对某些功能的感知产生重大不利影响的“拼图块”,那么,您必须查看运行存储过程所用的时间。但是,这本身可能会受到许多底层指标的影响,要对此做任何事情,您需要分析所有指标,以确定其中哪一个是整体存储过程性能的主要或主要贡献者。

        5
  •  0
  •   Justin Niessner    16 年前

    您始终可以在Query Analyzer中手动运行存储过程,并以此方式测量结果。这个。NET工具只是为您自动化了这个过程。

        6
  •  0
  •   Yishai    16 年前

        7
  •  0
  •   Matt Wrock    16 年前

    如果您试图比较两个过程或语句的性能,一种方便的技术是在查询分析器中选择两个sql块并运行查询计划。该计划将告诉您每个区块相对于彼此的成本百分比。这并不是充分的证据。我看到它告诉我,当它实际运行时明显更贵时,它更便宜,但在大多数情况下,这是一个很好、很快的技巧。

    推荐文章