利用typeperf工具收集SQL Server性能数据
一.利用TypePerf.exe命令行工具把Windows操作系统的性能计数器数据记录到数据库中
可以在作业中建立以下脚本
1.启用xp_cmdshell
--默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤
-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO
2.定时开启,开始记录性能计数器日志
--实现的功能:将“MyCounters.txt”文件中列出的计数器,按照每秒钟的时间间隔,记录到SQL数据库中,"SQL:SystemLog!TestSystemLog"为ODBC数据源建立的系统DSN
EXEC xp_cmdshell 'typeperf -cf c:\MyCounters.txt -si 5 -f SQL -o SQL:SystemLog!TestSystemLog'
--"MyCounters.txt"可以利用下面的命令在CMD命令窗口中执行后生成
TYPEPERF -qx "Processor" >>c:\MyCounters.txt
3. 定时关闭
--结束typeperf.exe的进程
EXEC xp_cmdshell 'tskill typeperf'
4.关闭xp_cmdshell
--用完后,要记得将xp_cmdshell禁用(出于安全考虑)
-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 禁用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--重新配置
RECONFIGURE
GO
5.利用数据库中记录的日志分析性能数据
二.带来的好处:
1. 可以根据计划定时抓取服务器性能数据包括CPU、内存和磁盘利用率以及SQL Server特定数据。为数据库服务器的性能分析提供帮助。
2. 可以根据数据库中记录的日志结合Reporting Service绘制性能分析的报表。
3. 可以定制作业实现自动化
三.带来的影响:
1. 会增加服务器的负载,在测试时观察了一下这个命令的开销,基本上启动后8M左右的内存运行,开销比较小
另外:如果考虑实施的话,可以新建一个数据库(专门用于监控服务器性能等的表),便于维护和管理
0
0
0
(请您对文章做出评价)
相关文档:
select batch_no "批次号",get_id "分类" from (
select(
select plan1.batch_no from product_plan plan1 where plan1.item_no=(select head1.product_code from wo_head head1 where head1.order_no =bbb)) batch_no,
(select decode(get_id,'BUY','外购件','MAK','自制件','MB','未定') from item where item_ ......
Sql Server 中一个非常强大的日期格式化函数
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select ......
清除SQL数据库日志文件
/*--压缩数据库的通用存储过程
有两种方法 一是压缩日志,二是删除日志。
一、压缩日志及数据库文件大小
因为要对数据库进行分离处理
所以存储过程不能创建在被压缩的数据库中
/*--调用示例
exec p_compdb 'test'
--*/
use master --注意,此存储过程要建在master数据库中
go ......
1.表SYSOBJECTS用于描述数据库中的对象 --表、视图、存储过程等
说明:该表相关字段的含义如下:
SYSOBJECTS.name 对象名,如:表名,视图名。
SYSOBJECTS.id 对象id。
SYSOBJECTS.type 对象类型(p存储过程,v视图,s系统表,u用户表)。
ex:
......
SELECT TOP 33 id=identity(int,1,1) INTO #1 from sysobjects
SELECT A.id ,B.id,C.id,D.id,E.id,F.id
from #1 A,#1 B,#1 C,#1 D,#1 E,#1 F
WHERE A.ID<B.ID AND A.ID<C.ID AND A.ID<D.ID AND A.ID<E.ID AND A.ID<F.ID
AND B.ID<C.ID AND B.ID<D.ID AND B.ID<E.ID AND B.ID<F.ID
AND C.I ......