Sqlserver表监控:实现更高数据库性能(Sqlserver表监控)
最近,随着Web应用程序的快速发展,作为支撑信息系统的数据库也可能具有相当高的负担。SQL Server表监控是一种数据库性能监控和诊断工具,可以捕捉并监控SQL Server数据库中不断发生的轻微变化以及展示资源使用情况,从而用以提高数据库性能。
SQL Server表监控的实现方式有很多,其中最常用的一种是通过SQL Server Extended Events来实现监控。Extended Events以最少的性能损失新捕捉系统活动和数据库性能指标的情况,可以有效的通过已经存在的资源解决异常的发现和处理。例如,可以使用Extended Events来监控经典的SQL Server数据库架构中的表中的数据变化情况,捕捉行计数有改变的表,检测索引是否有新建和删除,捕捉删除临时表,检查索引值和排序视图、函数、过程的计数等等的变化情况。
具体的SQL Server实现方式:
创建索引
CREATE INDEX IX_tableName_IndexName
ON tableName
(
IndexCol1
)
删除索引
DROP INDEX IX_tableName_IndexName on tableName
监控表记录数变化
创建一个session
CREATE EVENT SESSION TableMonitor ON SERVER
ADD EVENT sqlserver.sp_statement_started(
ACTION(sqlserver.database_id,sqlserver.object_id,sqlserver.schema_name,sqlserver.lock_mode))
ADD TARGET package0.event_file(SET filename=TableMonitor)
WITH (MAX_MEMORY=4096 KB, MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO
启用session
ALTER EVENT SESSION TableMonitor ON SERVER
STATE=START
GO
查询数据库表记录变化
SELECT event_data.value( (event/@name)[1] , NVARCHAR(MAX) ) as event_name,
event_data.value( (event/@timestamp)[1] , NVARCHAR(MAX) ) as event_time,
event_data.value( (event/data[@name= database_id ])[1] , NVARCHAR(MAX) ) as database_id,
event_data.value( (event/data[@name= object_id ])[1] , NVARCHAR(MAX) ) as table_id,
event_data.value( (event/data[@name= object_name ])[1] , NVARCHAR(MAX) ) as table_name
FROM (SELECT CAST(target_data AS XML) AS event_data
FROM sys.dm_xe_session_targets xt
LEFT JOIN sys.dm_xe_sessions xs
ON xs.address=xt.event_session_address
WHERE xs.name= TableMonitor ) as event_data;
通过上述步骤,我们可以在SQL Server中轻松实现表监控,有效的提高我们的数据库性能。
相关文章
- 连接SQLServer数据库的步骤与方法(连接sqlserver)
- 使用英文版 SQLServer 助力数据库管理(英文版sqlserver)
- 查看SQLServer数据库服务器运行状态(查sqlserver服务)
- 数据库更改SQLServer数据库:独立掌控你的数据库环境(更改 sqlserver)
- 利用微型SQLServer提升企业的数据库运算能力(微型sqlserver)
- 如何快速有效地删除SQLServer表(删除sqlserver表)
- .net下的数据库连接SQLServer驱动在.NET平台下的数据库连接简明介绍(sqlserver驱动在)
- 优化SQLServer系统性能:提升锁机制(sqlserver锁优化)
- SQLServer数据库如何还原一个已损坏的库(sqlserver还原库)
- 联查利用SQLServer解决表联查问题(sqlserver 解表)
- 内容深入探索:SQLServer 中表的所有内容(sqlserver表所有)
- SQLServer快速行查询实现数据库精准查询(sqlserver行查询)
- SQLServer数据库综合能力测试(sqlserver综合题)
- 更新数据库现状:使用SQLServer实现行级操作(sqlserver更新行)
- SQLServer:基于数据库技术的强大工具(sqlserver是基于)
- SQLServer早已准备好的彩蛋们!(sqlserver彩蛋)
- 使用SqlServer数据库管理数据表(sqlserver库表)
- 使用SQLServer计算平方的完美实现(sqlserver 平方)
- 制SQLServer存储二进制数据的实现(sqlserver存二进)
- 查SQLserver数据库增删改查操作指南(sqlserver增删改)
- 借助SQLserver博途拓展企业数据库应用(sqlserver博途)
- 使用SQLServer修改日期的正确方法(sqlserver修改日期)
- 使用SQLServer实现交叉表报表(sqlserver交叉表)
- Python操作SQLServer数据库:横扫数据库任务(py sqlserver)
- 如何解决SQLServer还原数据库失败问题(sqlserver还原数据库失败)
- 解决SQLServer数据库损坏灾难:恢复数据库(sqlserver数据库恢复)
- 数据库使用SQLServer驱动的论坛数据库优势分析(论坛 sqlserver)