📅  最后修改于: 2023-12-03 15:17:44.473000             🧑  作者: Mango
数据库监控是指对数据库系统进行实时监视和分析,以确保数据库系统始终保持可靠性、可用性和最佳性能状态。
数据库监控可以帮助管理员及时发现和解决数据库的问题,避免出现系统故障和数据丢失。同时,数据库监控还可以提高数据库系统的性能和可扩展性,满足业务需求并增强系统安全性。
MS SQL Server 有多种监控方式,包括:系统监视器、性能监视器、SQL Profiler 和动态管理视图(DMV)等。
系统监视器是 SQL Server 的一个内置工具,它可以提供对 SQL Server 实例的即时和历史性能信息展示。管理员可以使用它来快速识别活动或长时间运行的进程、查询、会话和锁定等信息。
--开启系统监视器
SELECT * INTO Temp_Table FROM sys.dm_os_performance_counters
--等待一段时间后,查看系统性能数据
SELECT * FROM Temp_Table
WHERE counter_name = 'SQL Compilations/sec' OR counter_name = 'User Connections'
性能监视器是一个 SQL Server 的工具,它可以让管理员实时监控 SQL Server 实例的各种事件和性能计数器。它可以帮助管理员识别系统中的瓶颈和性能问题,并提供有关系统性能和活动的实时数据。
--开启性能监视器以监视 SQL Server 实例
SELECT * INTO Temp_Table FROM sys.dm_os_performance_counters
--等待一段时间后,查看各种性能计数器值
SELECT * FROM Temp_Table
WHERE counter_name = 'CPU usage %' OR counter_name = 'Page Life Expectancy'
SQL Profiler 是一个 SQL Server 的性能分析工具,可以捕获并记录在 SQL Server 上执行的各种 SQL 语句。通过使用 SQL Profiler,管理员可以分析和了解 SQL Server 实例的查询行为和性能指标,从而进一步优化和提高数据库系统的性能。
--开启 SQL Profiler
SELECT * INTO Temp_Table FROM sys.dm_os_performance_counters
--使用 SQL Profiler 捕获 SQL Server 的运行情况
SELECT * FROM Temp_Table
WHERE counter_name = 'Batch Requests/sec'
动态管理视图(DMV)是 SQL Server 的内置视图,它可以提供珍贵的性能和查询信息。动态管理视图展示的信息让管理员可以实时监视各种系统和维护信息,例如:数据库和表的使用情况、会话和锁定状态、查询执行计划和缓存等。
--查询最近的 100 次查询请求的执行计划
SELECT TOP 100 * FROM sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_query_plan(plan_handle)
--显示当前活动连接列表
SELECT * FROM sys.dm_exec_sessions
WHERE is_user_process = 1 AND status = 'running'
在 MS SQL Server 中,管理员可以使用多种工具对数据库进行监控,包括系统监视器、性能监视器、SQL Profiler 和动态管理视图等。这些工具可以帮助管理员通过实时监视和分析 SQL Server 实例的各种指标和事件来发现和解决性能问题,从而保证数据库系统的可靠性、可用性和最佳性能状态。