0

如果我的 proc 被调用,我在 SQL Profiler 中有以下记录。

CPU - 78,读取 - 3508,写入 - 0,持续时间 - 81

以上数据对于我的网站上 70 人的并发点击是否正常,我的 proc 在用户正在访问的每个页面上被调用,我服务器上的性能监视器显示匿名用户点击在我启用我的 SQL proc 调用时不断增加。

请建议我可以查看的内容和位置!!,我的 proc 查询如下:

ALTER PROCEDURE [dbo].[GETDataFromLinkInfo] 
-- Add the parameters for the stored procedure here 
(@PageID INT) 
AS 
  BEGIN 
      -- SET NOCOUNT ON added to prevent extra result sets from 
      -- interfering with SELECT statements. 
      SET NOCOUNT ON; 

      -- Insert statements for procedure here 
      SELECT DISTINCT [PUBLICATION_ID] AS n, 
                      [URL]            AS u 
      FROM   [LINK_INFO] WITH(NOLOCK) 
      WHERE  Page_ID = @PageID 
             AND Component_Template_Priority > 0 
             AND PUBLICATION_ID NOT IN( 232, 481 ) 
      ORDER  BY URL 
      FOR XML RAW ('p'), ROOT ('ps'); 

      RETURN 
  END 
4

2 回答 2

1

执行 proc 1000 次并测量花费了多长时间。这是判断性能(经过时间)的最重要指标。不要测量读取和写入。

关于我的建议不要查看读/写:然而,读可以被缓存或非缓存,这是一个巨大的区别。我总是查看执行计划,以了解查询为何如此行事以及要做什么。读/写指标既不会告诉您是否需要采取行动,也不会告诉您该做什么。

于 2012-04-29T11:22:40.177 回答
0

正如 Phil 所建议的,使用数据库引擎优化顾问分析查询可能是您最好的选择。您必须提供更多信息才能在此处获得任何准确答案 - 人们可能会建议一个或多个索引,但索引的功效取决于其中列的选择性。添加无用的索引实际上可能会以其他方式对性能产生负面影响。

于 2012-04-29T17:12:36.587 回答