SQL监控及性能优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL 性能监控及SQL 语句优化
性能监控
作为SQL的数据库服务器,我们可以将其比作一个人,而SQL则是他的心脏,管理员就是他的大脑。要监控心脏是否健康首先要看他这个人是否健康。这两者是相辅相成的,少了一方都是不健康的。
数据库服务器的性能监视器
性能监视器
性能工具的介绍
性能监视器是一种简单而功能强大的可视化工具,用于实时收集系统状态并从日志文件中查看性能数据。
使用性能监视器可以:
获得对诊断系统问题和规划系统资源增长有用的性能数据、了解工作负载及其对系统资源的影响、观察工作负载和资源使用情况的变化和趋势,以便计划未来的升级、通过监视结果来测试配置变化、诊断问题并确定需要优化的组件或进程。
现在,可以开始选择这些对象和要监视的计数器了。 应用程序性能计数器有关 应用程序性能计数器的大部分信息最近已被合并到一个题为“改善 .NET 应用程序的性能和伸缩性”的综合文档中。下表描述了一些可用于监视和优化 应用程序(包括 Reporting Services)性能的重要计数器。
除了上表中介绍的这些核心监视要素之外,在您试图诊断 应用程序具有的特定性能问题时,下表中的性能计数器也可对您有所帮助。
Reporting Services 性能计数器 Reporting Services 包括一组它自己的性能计数器,用于收集有关报告处理和资源消耗方面的信息。可通过 Windows 性能监视器工具中出现的两个对象来监视实例和组件的状态和活动:MSRS 2005 Web Service 和 MSRS 2005 Windows Service 对象。 MSRS 2005 Web Service 性能对象包括一组用来跟踪 Report Server 处理过程的计数器,这些处理过程通常通过在线交互式报告浏览操作而引发。这些计数器在 停止该 Web 服务后被重设。下表列出了可用于监视 Report Server 性能的计数器,并描述了它们的目的。
性能对象:RS Web Service
RS Windows Service 性能对象包括一组用于跟踪报告处理过程的计数器,这些处理过程是通过预定操作而引发的。预定操作可能包括订阅和交付、报告执行快照以及报告历史。微软的工作负载中并不包含任何预定操作或交付操作,此处列出这些性能计数器仅是便于您进行参考。可使用此性能对象监视 Report Server Windows 服务。如果您准备在一个横向伸缩配置中运行 Report Server,那么这些计数器应用于所选的服务器,而不是应用于横向伸缩
配置整体。这些计数器在应用程序域回收之时将被重设。下表列出了可用于监视预定和交付操作的计数器,并描述了它们的目的。
性能对象:RS Windows Service
如果您打算排除 Reporting Services 存在的性能问题,记录以下性能计数器通常很有帮助:、 Applications、Process、System、Memory、Physical Disks、.NET Exceptions、.NET Memory、.NET Loading、.NET CLR Locks and Threads 以及 .NET CLR Data。可选的 Reporting Services 性能计数器以下列出了一些适用于 RS Web Service 但在默认情况下并未安装的性能计数器。但是,在执行性能优化工作时,可以通过这些计数器来改善您洞察性能的能力。为实现这个目的,请在命令提示符中执行以下语句:
installutil.exe /u ReportingServicesLibrary.dll然后再执行: installutil.exe ReportingServicesLibrary.dll为了成功执行该语句,您可能首先需要修改您的路径,在路径中包含 Microsoft .NET Framework 的安装目录。在路径修改完毕后,请从包含ReportingServicesLibrary.dll 文件的目录下执行先前语句。默认情况下,该文件安装在C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.instance\Reporting
Services\ReportServer\bin 目录下。这些计数器没有进行彻底的本地化。
Row Count(行计数)对于上一次请求,由当前报告返回的行的数量。这与对应的执
行日志条目相类似。
Time in Compression(压缩时间)对于上一次请求,在快照和 PDF 报告压缩上花费的时间(以毫秒计)。
Time in data source access(数据源访问时间)对于上一次请求,在获取报告的数据源信息上花费的时间(以毫秒计)。其中包括执行查询和取回结果所需的时间。这与对应的执行日志条目相类似。
Time in database(数据库时间)对于上一次请求,在获取 Report Server 目录信息上花费的时间(以毫秒计)。
Time in processing(处理时间)对于上一次请求,在报告处理上花费的时间(以毫秒计)。这与对应的执行日志条目相类似。
Time in rendering(呈现时间)对于上一次请求,在呈现报告上花费的时间(以毫秒计)。这与对应的执行日志条目相类似。
以上红色文字的性能指标为常用这里并不完全下面以OA数据库实例来说明。
Cpu使用监控
添加处理器(Processor)的计数器计数器中常用的是处理时间(processor time)右边的选
项框中是处理器的实例。
processor time 指处理器用来执行非闲置线程时间的百分比。计算方法是,测量范例间隔内非闲置线程活动的时间,用范例间隔减去该值。(每台处理器有一个闲置线程,该线程在没有其他线程可以运行时消耗周期)。这个计数器是处理器活动的主要说明器,显示在范例间隔时所观察的繁忙时间平均百分比。这个值是用 100% 减去该服务不活动的时间计算出来的。
服务器有多少cpu就有多少实例,编号从0至n-1。OA为4核4线程cpu 故有16个实例。缓存使用监控
添加缓存(Cache)的计数器计数器中常用的是复制读取百分比(Copy Read Hits)以及数据命中百分比(Data Map Hits)它是指:由于页面已经在物理内存中,可以不从磁盘上检索页面的情况下解析在文件系统缓存中的数据映射的百分比。