我们有32位Windows Server 2003 Enterprise 32位内存和8个双核处理器,运行SQL Server 2005 SP3 Enterprise 32位。 我们的CPU,RAM和I / O总是通过屋顶,应用程序总是运行缓慢。 我们使用AWE缓冲区caching,最大内存为28GB,PAGEIOLATCH_SH总是高,过程caching总是在700mB左右。 在生产时间内,我们有超过6000个连接到SQL Server(500个用户)。 这里有什么问题? 请帮忙。 谢谢。
我马上告诉你一件事情是错的:32位。 它是一个死胡同。 AWE只能帮到那么多。 只要放弃并移动到64位。
不过,32 GB的AWE应该提供足够的缓冲池。 你的数据库有多大? 远大于32GB? 为什么不大部分caching,为什么你看到PAGEIOLATCH_SH ? 这意味着服务器正在从磁盘中获取大量的数据,并且使用28GB的缓冲池,如此大量的读取表明,您的数据库是真正巨大的,您只需要计划需要更大的铁(我怀疑),或者你的查询和索引匹配得太差,以至于你不得不经常读取端到端的大表(我非常确定)。 粗略浏览一下sys.dm_query_exec_stats将会发现问题查询(大total_logical_reads表示大扫描,因此大读取和caching垃圾)。 同样, sys.dm_db_index_usage_stats将显示问题行集。 如果这对你来说都是希腊,那么请尝试使用SQL Server 2005性能仪表板报告 。
检查性能数据,执行计划,隔离级别,lockingtypes,磁盘性能,索引等。如果您更详细地告诉我技术架构/环境,将更容易提出更具体的build议。
SQL Server 2005性能仪表板报告