收集并存储性能监控器数据到SQL Server表

收集并存储性能监控器数据到SQL Server表

?

?

当我们需要监控数据库SQL Server服务器性能的时候,有些数据库管理人员可能会选择Windows为我们提供的‘性能’监控器来操作(开始菜单à管理工具à性能)。

如果可以将性能监控器采集到的数据记录到SQL Server 的数据库表中去,很多工作对我们来说也许方便得多。

开启性能监控器

点击开始菜单à运行à执行(perfmon

或者

开始菜单à管理工具à性能

?

就可以看到下面的画面了

?

定义性能监控器LOG

??????? ?如果要设置监控器的LOG,首先展开树形结构的性能日志和报警,会出现三个你可以选择的项目(计数器日志,跟踪日志,报警),现在我们先设置计数器日志。右键点击计数器日志的这个节点,从弹出的菜单中选择新建日志设置,填写日志名称并确定。就会谈出下面的画面:

??? 我填写的名称是SQL Server 所以当前的日志文件名会显示:

C:/Perflogs/SQL_Server_000001.blg

??????? 下一步就是要定义你将要收集或者说将要监控的项目。我们会选择几个不同的监控项目作为这个我们建立的这个LOG的记录。首先我们先选择Processor Time。点击添加按钮,选择%Processor Time之后点击添加,就如同下面这张同我们看到的那样。

????? ?下面我们选择内存的监控,在性能对象下拉框中选择Memory,然后再下面计数器部分选择Pages/sec计数并点击添加,如下图

??????? 之后我们按照上面的步骤重复的操作,把我们需要监控的项目加入到列表中去。在将所有要监控的项目都添加完成后,点击关闭按钮就可以了,可以用下面的图作参考:

???? 如同上面途中我们看到的样子,我选择了许多不同的监控项目。我在下面给大家罗列以下:

//CN-BJ-TIGER/Memory/Available Bytes

//CN-BJ-TIGER/Process(sqlservr)/Page Faults/sec

//CN-BJ-TIGER/Process(sqlservr)/Working Set

//CN-BJ-TIGER/Processor(_Total)/%Priviledged Time

//CN-BJ-TIGER/Processor(_Total)/%Processor Time

//CN-BJ-TIGER/Processor(_Total)/%User Time

//CN-BJ-TIGER/SQLServer:Buffer Manager/Buffer cache hit ratio

//CN-BJ-TIGER/SQLServer:General Statistics/User Connections

//CN-BJ-TIGER/SQLServer:Memeory Manager/Total Server Memory (KB)

//CN-BJ-TIGER/SQLServer:SQL Statistics/Batch Request/sec

//CN-BJ-TIGER/System/Context Switches/sec

//CN-BJ-TIGER/System/Processor Queue Length

?

上面表中每一个项目都分成三个段表示,第一段表示服务器名称,第二段表示要监控的对象是什么,第三段表示监控的项目。

选择完全部的监控项目之后,接下来还要继续作一些事情才可以完成对LOG的定义。我们需要考虑一下,我们对数据的采样间隔,用上面的图来举例子,可以在对话框的下方设定采样的间隔时间和时间单位(初始是15s)。不过一般情况下15s不会适合所有的监控项目,所以要根据每个不同服务器的配置来决定具体的间隔时间,因为监控室必定要消耗服务器资源的,而且服务器也会产生大量的数据收集工作。

上面的工作做完后,现在开始设定LOG文件的存储路径和方式以及执行的时间计划。点击日志文件选项卡:

为了比较容易的将文件导入到SQL Server 中,需要选择有逗号分割形式的文本文件来存储信息。这样的话,可以选择 文本文件 – CSV? 的格式来存储LOG文件。

??????? run.bat中键入

?????????????????????? isql -E -d pubs -i c:/perform/go.sql

??????? 保存

?

??????? 然后建立SQL脚本文件如下---我建立的SQL脚本文件名是go.sql

????????????? set ansi_nulls on

set ansi_warnings on

?

select * into Perflog

from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=NO;DATABASE=c:/perflogs/', sql_server_000001#csv)

?

set ansi_nulls off

set ansi_warnings off

go

?

之前要改变一下数据库服务器的连接设置

? ANSI warning

???? ?ANSI nulls

两个选项选中

好到这里,我们就可以从PUBS数据库中的Perflog表中找到监控的记录了

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值