SQL Server 性能计数器

SQL Server 性能计数器

我有一个 SQL Server 2005 实例,它运行速度有些慢。这关联显示 perfmon 详细信息。由于我并不每天分析此类数据,因此我想知道 I/O 系统是否存在一些实际问题。

服务器使用 SAN,DB 文件和 Tempdb 文件位于同一驱动器 (E:)。这不是最好的架构,但我无法控制服务器。该服务器用于使用 Cognos 运行报告,因此它主要是只读数据库。

谢谢

这里有一些有趣的代码需要修正。

select "tempSalesRpt_SubRgnDist"."Region" AS "Region",
   min("tempSalesRpt_SubRgnDist"."RegionName") AS "Region_Text"
from "SalesReporting"."dbo"."tempSalesRpt_SubRgnDist" "tempSalesRpt_SubRgnDist",
        (select "SecurityMaster"."Userid" AS "Userid", "SecurityMaster"."SoldTo" AS "SoldTo"
        from "SalesReporting"."dbo"."SecurityMaster" "SecurityMaster" 
        where "SecurityMaster"."Userid" = lower ('USTGACA')) "SecurityMaster4" 
where NOT "SecurityMaster4"."Userid" is null 
    and "tempSalesRpt_SubRgnDist"."SoldTo" ="SecurityMaster4"."SoldTo" 
    group by "tempSalesRpt_SubRgnDist"."Region" 
    order by 1 asc , 2 asc

每次查询都会访问 securitymaster 表,并且该表最近有所增加。

我认为该代码包含不可搜索的代码,但执行计划显示使用了索引查找和键查找。

我确实看到一些新的指数可能会有所帮助,但需要进一步挖掘。

答案1

根据提供的数据,您一定遇到了一些问题。您的磁盘队列的读取秒数和写入秒数计数器比您想要的要高得多。现在,问题在于,这并不意味着磁盘存在问题,只是磁盘正在受到冲击。您可能存在索引问题或统计问题,这导致 SQL Server 对磁盘的负载超过其需要的程度。

首先查看数据库中的索引,看看是否需要创建新的索引。这将增加数据库的大小,但您会看到磁盘流量减少,查询运行时间也缩短了。

您可以首先查看长时间运行的查询的执行计划,它将告诉您需要在哪里添加索引。

答案2

除了 Denny 的回答之外,您的机器上还有大约 5GB 的可用内存 - 您是否正确配置了 SQL 的内存?

如果您有 32 位系统,则可以通过启用 AWE 来处理更多内存:

http://technet.microsoft.com/en-us/library/ms190673(SQL.90).aspx

SQL 将使用这些额外的内存来缓存更多的数据库表/索引(假设您的数据库大于您的可用内存)。

相关内容