SQL Server 2008 R2监控与调优实战指南

4星 · 超过85%的资源 需积分: 9 28 下载量 90 浏览量 更新于2024-07-30 1 收藏 2.29MB PPTX 举报
SQL Server 2008 R2 监视与调优解决方案是针对企业级数据库管理系统的一项关键任务,它旨在提升系统的性能,确保数据的高效管理和应用程序的顺畅运行。在这个解决方案中,主要关注以下几个核心知识点: 1. **性能监控**:SQL Server 2008 R2 提供了丰富的监控工具,如SQL Server Profiler和Management Studio的性能分析器,帮助管理员追踪查询性能、锁定、I/O和CPU使用情况,识别瓶颈。 2. **调优顺序与方法**:调优工作通常按照困难程度和效果排序,首先从最容易实施但可能收效最少的开始,例如优化查询性能。这包括设计良好的数据库架构,如根据数据访问模式定义索引和表分割,以及合理地存储和组织数据。 3. **索引优化**:索引是调优的关键,通过定义合适的索引来加速查询速度,特别是索引覆盖策略,可以减少服务器对数据表的额外查询。对于经常进行UPDATE、DELETE和INSERT操作的表,也需要相应地调整策略。 4. **SARGs(可搜索性谓词)**:使用有效的查询参数,如等于、范围限制或逻辑连接,能更高效地执行查询,避免全表扫描。例如,`FirstName=‘王’ and Salary>60000` 就是一个SARG。 5. **常见的错误和陷阱**:避免错误如负向查询(NotExists、NotIn等)、在where子句中使用函数进行计算,以及不恰当的使用OR和NOT运算符。例如,`LastName+’,’+FirstName` 的字符串连接操作不应出现在where子句中。 6. **T-SQL注意事项**:在编写SQL语句时,应遵循最佳实践,如只返回必要的字段,避免全表扫描;利用复合索引的性能优势,正确设置过滤条件;减少Distinct和OrderBy的使用;使用UnionAll而非Union以提高效率;在进行批量操作时考虑锁策略和锁定时间设置。 7. **事务优化**:更新和删除操作时,确保WHERE子句符合SARGs原则,同时考虑是否能降低事务隔离级别以减少阻塞。在进行大量插入操作时,需注意Log记录的影响,批量操作可以提高写入速度。 SQL Server 2008 R2的监视与调优解决方案是围绕着性能提升、错误预防和最佳实践展开的,通过深入理解这些知识点,数据库管理员可以更有效地管理和维护其系统,确保高可用性和性能表现。
2013-11-12 上传
微软SQL Server 2008 R2中的资源分配方式与SQL Server 2005中的方式相比是一种完全不同的过程。利用资源控制器,在SQL Server 2008 R2中解决方案供应商有切实可用的方法管理CPU和内存。   资源消耗是长期以来困扰使用SQL Server的解决方案供应商的基本问题之一。任何服务器,不管它是物理的还是虚拟的,供处置的CPU和内存池都是有限的。过去,这一简单的事实给SQL Server带来许多麻烦,因为它通常是资源非常敏感的应用。   如果服务器上只托管了唯一一个数据库的话,那么SQL Server资源消耗并不是个严重的问题。但是如果有多个数据库在用着,那就真的变成一个问题了,因为各种数据库都会竞争同样一组CPU和内存资源。   在SQL Server 2005中,对这个问题可以接受的解决方案通常是为每个数据库创建独立的SQL Server实例,利用处理器亲和度为每个数据库实例分配资源。这种技术的问题是一旦资源被分配给SQL Server实例,他们对其他SQL Server实例就不可用了。结果,如果一个数据库的负载特别重,它也不可能从其他SQL实例暂借服务器的CPU资源,虽然这个实例上的资源此时可能什么都没做。   一些解决方案供应商也曾尝试利用服务器虚拟化作为给个别SQL Server数据库分配资源的一种途径。在这种模型中,每台虚拟机只托管一个SQL Server数据库。这种方法也可行,但是虚拟机和他们的操作系统也消耗了一些本该用于SQL Server的服务器资源。此外,还依赖于你使用的虚拟化软件,以按需分配为基础的资源动态分配可能有些困难或者不可能实现。   微软最终针对SQL Server 2008 R2中的资源分配问题创建了一套可行的解决方案,引入了叫做资源控制器的新组件。这个资源控制器是可以通过微软SQL Server Management Studio访问的,它可以定义资源池,每个资源池都包含负载工作组,如下图所示: