首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQL优化SQL查询

使用SQL优化SQL查询
EN

Stack Overflow用户
提问于 2012-04-29 11:10:11
回答 2查看 1.8K关注 0票数 0

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

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

以上数据可以在我的网站上为70人并发点击,我的proc在用户访问的每一个页面上都被调用,我服务器上的性能监视器显示当我启用我的SQL proc调用时,anonmyous用户点击量不断增加。

请建议我可以在哪里查看!,我的proc查询如下:

代码语言:javascript
复制
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 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-29 11:22:40

执行proc 1000次,并测量它花了多长时间。这是判断性能(所用时间)的最重要指标。不要测量读写。

关于我的建议,不要看读/写:但是,读可以是缓存的,也可以是非缓存的,这是一个巨大的区别。我总是查看执行计划,以了解为什么查询是这样的,以及如何处理。读/写度量标准既不告诉您是否需要操作,也不告诉您要做什么。

票数 1
EN

Stack Overflow用户

发布于 2012-04-29 17:12:36

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10371628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档