sqlserver性能监控工具(nagios 怎么监控sqlserver)

本文目录
- nagios 怎么监控sqlserver
- 如何识别SQL Server中的CPU瓶颈
- SQLServer数据库怎么查看表的修改记录
- 利用typeperf工具收集SQL Server性能数据[1]
- 现在的SQLSERVER数据库监控软件有哪些
- 如何测试sqlserver性能
- 在sqlserver2008用sql监视器 怎么监视客户端应用程序的sql语句
- 如何查sqlserver transactions per second
- 1,sqlserver2008的常用工具包括哪些分别作用是什么
nagios 怎么监控sqlserver
1、下载需要的插件并安装
***隐藏网址***
安装:check_mssql_health
tar zxvf check_mssql_health-1.5.19.1.tar.gz
cd check_mssql_health-1.5.19.1
./configure -–with-nagios-user=nagios -–with-nagios-group=nagcmd–-prefix=/usr/local/nagios/
make
make install
2、安装与sqlserver通信需要的软件
1、安装freetds
安装包:freetds-0.91.tar.zip
unzip freetds-0.91.tar.zip
tar zxvf freetds-0.91.tar.gz
cd freetds-0.91
./configure –prefix=/usr/local/freetds–with-tdsver=8.0 –enable-msdblib
make && make install
2、设置环境变量并安装freetds-dev、libdbd-freetds
vim /etc/profile 添加如下行
export SYBASE=/usr/local/freetds
source /etc/profile 让配置立即生效
echo “/usr/local/freetds/lib/” 》/etc/ld.so.conf.d/freetds.conf
/sbin/ldconfig
apt-get install freetds-dev libdbd-freetds
3、安装DBI
tar zxvf DBI-1.627.tar.gz
cd DBI-1.627
perl Makefile.PL
make
make test (测试是否正确可不测试)
make install
4、安装DBD-Sybase
tar zxvf DBD-Sybase-1.15.tar.gz
cd DBD-Sybase-1.15
perl Makefile.PL
make
make test
make install
5、修改配置文件
vim /usr/local/freetds/etc/freetds.conf
; tds version = 8.0
; dump file =/tmp/freetds.log
; debug flags = 0xffff
# command andconnection timeouts
; timeout = 10
; connect timeout = 10
# If you getout-of-memory errors, it may mean that your client
# is trying toallocate a huge buffer for a TEXT field.
# Try setting ’textsize’ to a more reasonable limit
text size = 64512
host =192.168.10.231
port = 1433
tds version = 8.0
6、测试
cd /usr/local/nagios/libexec
./check_mssql_health -server 231sql -usernagios -password nagios -mode list-databases
显示如下:
ReportServer
ReportServerTempDB
TSNRReportGuest
master
model
msdb
tempdb
OK - have fun (成功)
如何识别SQL Server中的CPU瓶颈
问题:
如果经常遇到CPU瓶颈而导致的SQLServer宕机,那如何去发现并解决这些相关的问题?
解决方案:
导致CPU成为SQLServer性能问题的原因有很多,比较明显的原因是因为资源不足。但是,CPU的利用率可以通过配置的更改和查询的优化来降低,所以当你想买更快更好的处理器之前,先要考虑前面的操作。下面是使用一些内置工具来识别CPU相关瓶颈:
性能监视器(Performance Monitor):
可以使用性能监视器来检查CPU的负载。检查Processor:% Processor Time 这个计数器:如果长期超过80%/处理器,那很有可能面临了CPU相关瓶颈。
CPU密集操作主要是编译和重编译。你可以通过使用SQL Statistics对象计数器来监视它们的情况。也可以监控批处理接收的数量来查看。如果SQL Recompilations/sec 中的BatchRequests/sec的速率很高,那就有潜在的问题:
配置和监视以下计数器:
SQL Server: SQL Statistics: SQL Compilations/sec
SQL Server: SQL Statistics: SQL Recompilations/sec
SQL Server: SQL Statistics: Batch Requests/sec
可以从MSDN中获取关于这部分的详细信息: MSDN Library.
另外一个用于探测CPU相关问题的计数器是:SQL Server: Cursor Manager By Type – CursorRequests/Sec ,用于显示你的服务器上游标使用情况。如果你看到每秒有数以百计的游标请求,那很有可能是因为低效的游标使用和小体积提取操作(small fetch size)引起性能问题。
内部并行查询同样会引起CPU问题,可以检查:
SQL Statistics:Batch Requests/sec counter 计数器。在CPU生命周期中,每秒的批处理应该很小。如果过多,意味着正在使用并行计划运行。
动态管理视图(DMVs):
以下是对排查CPU瓶颈游泳的DMVs。动态视图:sys.dm_exec_query_stats显示目前缓存的批处理或者使用CPU的过程。下面的查询用于检查耗费CPU的执行计划:
select plan_handle,
sum(total_worker_time) as total_worker_time,
sum(execution_count) as total_execution_count,
count(*) as number_of_statements
from sys.dm_exec_query_stats
group by plan_handle
order bysum(total_worker_time), sum(execution_count) desc
SQLServer2008在每个查询编译时,会计算其hash值。你可以在query_hash列中找到该值,是否两个查询仅仅字面值不同但是使用相同query_hash值。该值也在 Showplan/Statistics XML QueryHash属性中可以查看。
Plan_generation_num列显示一个查询被重编译的次数。
SQLServer优化器尝试选择能提供最快响应时间的执行计划,但是不代表总是低CPU利用。低效的查询计划会引起CPU的好用,此时同样可以使用sys.dm_exec_query_stats 来监控。
如果你想有一个对SQLServer优化所耗费时间的总览,可以检查:
sys.dm_exec_query_optimizer_info 。其中的消耗时间和最后开销会非常有用。
可以使用以下DMVs来查询内部并行查询及其查询文本、执行计划的情况:
sys.dm_exec_cached_plan: Shows the cached query plans.
sys.dm_exec_requests: Shows each executing request in the SQL Server instance.
sys.dm_exec_sessions: Shows all active user connections and internal tasks.
sys.dm_exec_sql_text: Shows the text of the SQL batches.
sys.dm_os_tasks: Shows each active task within SQL Server.
SQL Server Profiler:
如果性能监视器发现有问题,同样可以使用SQLServer Profiler来发现不必要的编译和重编译。SQLServer Profiler 跟踪能帮助你找到一直重编译的存储过程。可以使用下面的事件:
SP:Recompile, CursorRecompile, SQL:StmtRecompile: 这个事件是针对SQLServer的重编译。SP:Recompile事件中的EventSubClass 说明了重编译的原因。
· Showplan XML For Query Compile: 这个事件是针对T-SQL语句的重编译。包含了查询计划和过程的对象ID.注意对这个事件运行一个跟踪,能得到利用系统资源的重要信息。但是,如果性能计数器报告SQL Compilations/sec 的值很高时,跟踪将非常好资源。
低效的游标可以使用RPC:Completed事件来跟踪。查看sp_cursorfetch语句并检查第四个参数,包含每次提前(fetch)包含的行数。
SQLServer数据库怎么查看表的修改记录
SQLServer中有日志记录功能,但是这是记录了登录日志和错误日志,不会记录操作日志的。
但是,SQLServer有个监控工具叫SQL Server Profiler,可以实时监控操作。
位置:工具》SQL Server Profiler
使用方法:登录连接后,直接运行,就可以监控当前连接实例。更具体的使用方法请另行百度。
利用typeperf工具收集SQL Server性能数据[1]
通常DBA在监控和优化SQL Server数据库DBA 都想利用命令行工具 其中经常要做的一件事情 就是收集服务器性能数据 包括CPU 内存和磁盘利用率以及SQL Server特定数据 这时你就可以利用TypePerf exe这个命令行工具来帮你捕获这些性能数据
TypePerf exe是一个命令行工具 包括把Windows操作系统的性能计数器数据输出到命令窗口或写入到支持该功能的日志文件格式中
Windows操作系统以对象及其相关联的计数器的形式 提供了非常多的性能数据 例如 SQL Server提供了sqlserver统计对象的详细报告 包括了登录 注销 数据库连接等信息; 有些对象摆脱了计数器方式 转化为特定的实例 还是以sqlserver为例 数据库对象详细提供了每一个数据库的数据文件和事务日志文件大小 已使用事务日志的百分比 活动事务等 您可以指定一个单一的数据库或所有数据库结合在一起 作为该实例
需要提醒的是 在SQL Server实例有个特殊的含义 即命名实例
作为是典型的命令行工具 typeperf也有许多参数供选择 让您根据实际需要进行调整 打开一个命令提示符并输入以下命令
typeperf ?
您会看到下面的输出
用法:
typeperf {
| cf 《文件名》
| q
| qx
}
参数:
要监视的性能计数器
选项:
? 显示跟上下文相关的帮助
f 输出文件格式 默认值是 CSV
cf 《文件名》 含有监视的性能计数器的文件 一个计数器一行
lishixinzhi/Article/program/SQLServer/201311/22400现在的SQLSERVER数据库监控软件有哪些
当前SQLSERVER数据库监控软件,发现开源免费的真的是“没有”
Questsoftware Quest’s spotlight
Idera’s SQLDiagnosticManager
red-gate sql-monitor
Cacti(免费 开源 这个工具准确来讲应该算是服务器监控不算是SQLSERVER监控)
微软的SCCM
Idera’s sql check
windbmonitor
Questsoftware Foglight for SQL Server
sqlsentry (sql哨兵) Performance Advisor for SQL Server
如何测试sqlserver性能
对于DBA来讲,我们都会做新服务器的性能测试。我会从TPC的基准测试入手,使用HammerDB做整体性能评估(前身是HammerOra),跟厂商数据对比。再使用DiskSpd针对性的测试磁盘IO性能指标(前身是SQLIO),再到SQLIOSIM测试存储的完整性,再到ostress并发压力测试,对于数据库服务器迁移,我们还会收集和回放Profiler Trace,并收集期间关键性能计数器做对比。
下面我着重谈谈使用HammerDB的TPC-C来做SQL Server基准测试。
自己写负载测试代码很困难
为了模拟数据库的负载,你想要有多个应用程序用户和混合数据读写的语句。你不想总是对单一行更新相同的值,或者只是重复插入假的值。
自己动手使用Powershell、C#等语言写负载测试脚本也不是不可能,只是太消耗时间,你需要创建或者恢复数据库,并做对应的测试。
免费而简单的压测SQL Server:使用HammerDB模拟OLTP数据库负载
HammerDB是一个免费、开源的工具,允许你针对SQL Server、Oracle、MySQL和PostgreSQL等运行TPC-C和TPC-H基准测试。你可以使用HammerDB来针对一个数据库生成脚本并导入测试。HammerDB也允许你配置一个测试运行的长度,定义暖机阶段,对于每个运行的虚拟用户的数量。
首先,HammerDB有一个自动化队列,让你将多个运行在不同级别的虚拟用户整合到一个队列--你可以以此获得在什么级别下虚拟用户性能平稳的结果曲线。你也可以用它来模拟用于示范或研究目的的不同负载。
用于SQL Server上的HammerDB的优缺点
HammerDB是一个免费工具,它也极易访问和快速的启动基准测试和模拟负载的方法。它的自动程序特性也是的运行工作负载相当自动。
主要缺点是它有一个学习曲线。用户界面不是很直观,需要花费时间去习惯。再你使用这个工具一段时间之后,将会更加容易。
HammerDB也不是运行每一个基准测试。它不运行TPC-E基准,例如,SQL Server更热衷于当前更具发展的OLTP基准TPC-E。如果你用HammerDB运行一个TPC-C基准,你应该理解它不能直接与供应商提供的TPC-C基准结果相比较。但是,它是免费的、快速的、易用的。
基准测试使用案例
基准测试负载不能精确模拟你的应用程序的特点。每个负载是唯一的,在不同的系统有不同的瓶颈。对于很多使用案例,使用预定义的基准测试仍然是非常有效的,包括以下性能的比较:
多个环境(例如:旧的物理服务器,新的虚拟环境)
使用各种因素的不同及时点(例如:使用共享存储和共享主机资源的虚拟机的性能)
在配置改变前后的点
当然,对一个数据库服务器运行基准测试可以影响其他SQL Server数据库或者相同主机上其他虚拟机的性能,在生产环境你确保有完善的测试计划。
对于自学和研究来说,有预配置的负载非常棒。
开始使用基准测试
你可以从阅读HammerDB官方文档的“SQL Server OLTP Load Testing Guide”开始。
在sqlserver2008用sql监视器 怎么监视客户端应用程序的sql语句
打开2008的事件探查器,工具栏有个按钮,新建跟踪,然后连好你要跟踪的数据库实例,确定即可新建跟踪,就可以查看链接这个数据库实例的语句执行,创建完跟踪之后
每一个客户端都有一个ClientProcessID,如果你只想跟踪这一个客户端的语句执行情况的话:
先让客户端查询一个报表,通过事件探查器看看它的ClientProcessID,然后暂停事件探查,
文件——属性——筛选——在下面找到ClientProcessID,在等于处双击,然后填入客户端的ClientProcessID,确定,重新开启追中,就可以只看这一个客户端的运行情况了
如何查sqlserver transactions per second
当您怀疑计算机硬件是影响SQL Server运行性能的主要原因时,可以通过SQL Server Performance Monitor监视相应硬件的负载,以证实您的猜测并找出系统瓶颈。下文将介绍一些常用的分析对象及其参数。
Windows资源监控中,如果% Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。
Processor%Privileged Time该参数值一直很高,且如果在 Physical Disk 计数器中,只有%Disk time 比较大,其他值都比较适中,硬盘可能会是瓶颈。若几个值都比较大,那么硬盘不是瓶颈。若数值持续超过80%,则可能是内存泄露。如果 Physical Disk 计数器的值很高时该计数器的值(Processor%Privileged Time)也一直很高,则考虑使用速度更快或效率更高的磁盘子系统。
Disk sec/Transfer 一般来说,该数值小于15ms为最好,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或是硬盘的RAID方式了.
Average Transaciton Response Time(事务平均响应时间)随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势
Transactions per Second(每秒通过事务数/TPS)当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈
Hits per Second(每秒点击次数)通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。
Throughput(吞吐率)可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。
Connections(连接数)当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高(事务响应时间将降低)
Time to First Buffer Breakdown(Over Time)(第一次缓冲时间细分(随时间变化))可以使用该图确定场景或会话步骤运行期间服务器或网络出现问题的时间。
1,sqlserver2008的常用工具包括哪些分别作用是什么
(1)SQL server配置管理工具:可以启动、暂停、恢复或者暂停服务。还可查看或更改服务属性等
(2)SQL server management studio:配置数据库系统、建立或删除数据库对象、设置或取消用户的访问权限,维护服务器与数据的安全、浏览错误日志等。
(3)SQL server profiler:监视服务器。系统管理员通过SQL server profiler监视SQL server 2008的事件,捕获每个事件的数据并将其保存到文件或SQL server 表以供分析等
(4)数据库引擎优化顾问:选择和创建最佳的索引、索引视图、分区等
(5)大量的命令行实用工具

更多文章:
双色球浙江风采超长版2005(2005年浙江超长版双色球走势图)
2026年10月11日 03:20
深圳龙华人民医院疑似病例(西安新增2例确诊1例初筛阳性,当地针对此情况采取了哪些措施)
2026年10月11日 02:40
乌克兰军事威胁俄罗斯代表(俄罗斯平静面对西方制裁,这个国家为什么这么有底气呢)
2026年10月10日 23:40
微信使用代理是什么意思(安装微信时出现“正在使用代理上网,请关闭代理再安装”,是什么意思)
2026年10月10日 19:10




