当前位置:首页 » 编程语言 » 如何监控一个sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何监控一个sql

发布时间: 2022-05-04 01:35:57

㈠ 如何实时监控mysql中的SQL语句的执行情况

首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。

pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:

1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;

2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。

而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。

三、使用

接着我们来看下如何使用这个工具。

pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。

触发条件相关的参数有以下几个:

  • function:

    ∘默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;

    ∘也可以设置为 processlist,代表监控 show processlist 的输出;

  • variable:

    ∘默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;

  • threshold:

    ∘默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;

    ∘监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;

  • cycles:

    ∘默认为 5,表示连续观察到五次满足触发条件时,才触发收集;

  • 连接参数:host、password、port、socket。

  • 其他一些重要参数:

  • iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。

  • run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。

  • sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。

  • interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。

  • dest:监控数据存放路径,默认为 /var/lib/pt-stalk。

  • retention-time :监控数据保留时长,默认 30 天。

  • daemonize:以后台服务运行,默认不开启。

  • log:后台运行日志,默认为 /var/log/pt-stalk.log。

  • collect:触发发生时收集诊断数据,默认开启。

    ∘collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。

    ∘collect-strace:收集跟踪数据,需要 strace 工具。

    ∘collect-tcpmp:收集 tcpmp 数据,需要 tcpmp 工具。

㈡ loadrunner如何监控sql数据库

是要监控SQL Server服务吗?
首先录制脚本,设计好场景;

然后在设置场景的页面中有RUN面板,面板里有Available Graphs 在里面选择Datebase Server Resource Graphs,再选择 SQL Server(双击),这时候sqlserver的面板就会出现在可是monitors里,然后选中面板右键,选择Add Measurements->进入后点击 Add 输入你数据库服务器的信息,进行连接;
连接成功后,需要选择相应的计数器,关注你们的计数器。

㈢ 如何监控sql server受攻击

1.首先使用下面的命令,将有关的跟踪标志启用。

SQL codeDBCC TRACEON (3605,1204,1222,-1)

说明:
3605
将DBCC的结果输出到错误日志。
1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。
1222
返回参与死锁的锁的资源和类型,以及使用了不符合任何 XSD 架构的 XML 格式的受影响的当前命令(比1204更进一步,SQL
2005及以上可用)。
-1 以全局方式打开指定的跟踪标记。

以上跟踪标志作用域都是全局,即在SQL
Server运行过程中,会一直发挥作用,直到SQL Server重启。

如 果要确保SQL Server在重启后自动开启这些标志,可以在SQL
Server服务启动选项中,使用 /T 启动选项指定跟踪标志在启动期
间设置为开。(位于SQL Server配置管理器->SQL
Server服务->SQL Server->属性->高级->启动参数)

在运行上面的语句后,当SQL
Server中发生死锁时,已经可以在错误日志中看到了,但还不够直观(和其它信息混在一起)。(SSMS
-> SQL Server实例 ->
管理 -> SQL Server日志)

2.建表,存放死锁记录

SQL codeUSE [Cole] --Cole是我的示例数据库,你可以根据实际情况修改。 GO
CREATE TABLE DeadLockLog ( id int IDENTITY (1, 1) NOT NULL, LogDate DATETIME, ProcessInfo VARCHAR(10), ErrorText VARCHAR(MAX) )
GO

3.建立JOB

新建一个JOB(假设名称为DeadLockJob),在"步骤"中新建一步骤,随便写一个步骤名称,数据库为"Cole",在"命令"栏中输入以下语句:

SQL code--新建临时表 IF OBJECT_ID('tempdb.dbo.#ErrorLog') IS Not Null
DROP TABLE #ErrorLog
CREATE TABLE #ErrorLog (Id int IDENTITY (1, 1) NOT NULL, a DATETIME, b VARCHAR(10), c VARCHAR(MAX)) --将当前日志记录插入临时表
INSERT INTO #ErrorLog EXEC master.dbo.sp_readerrorlog --将死锁信息插入用户表
insert DeadLockLog
select a, b, c from #ErrorLog where id >= (select MAX(id) from #ErrorLog WHERE c Like '%Deadlock encountered%')
DROP TABLE #ErrorLog

4.新建警报

在"新建警报"窗体的"常规"选项卡中,进行以下设置:

名称:可根据实际自行命名,这里我用DeadLockAlert
类型:选择"SQL
Server性能条件警报"
对象:SQLServer:Locks
计数器:Number of
Deadlocks/sec
实例:_Total
计数器满足以下条件时触发警报:高于
值:0
在"响应"选项卡中,选中"执行作业",并选择步骤3中我们新建的作业(即DeadlockJob)

到这里为止,我们已经完成了全部步骤,以后,你就可以随时查询DeadLockLog表,来显示死锁信息了

㈣ 关于sql2008,怎么监控某数据库表变化情况

在每个表中添加触发器~~
一旦数据有变化, 触发器就被触发~ 触发器中写代码将这个变化写入到你指定的日志表中即可。
注意:是多个表的触发器, 去操作同一个日志表。

㈤ 如何监控某个数据库用户的SQL执行效率

SQL SERVER PROFILER Trace然后FILTER SELECT语句。
如果是2008或以上的话可以考虑用Database audit.

但是使用这些功能对数据库性能都会产生影响,要注意。

㈥ 如何使用Druid监控sql

首先是过滤器filter的配置,在web.xml中添加如下配置,如图:

选项配置结束之后,就是我们监控界面的路径配置了,配置如下图

Druid已经配置好,接着在浏览器中访问,如图所以:

输入访问地址后,进入Druid监控页面,如图所示:

5
此时,在浏览器中输入需要监控系统页面网址,然后点击上个画面中的“SQL监控”即可,此时就可以看到每个SQL语句所用的时间,如下图所示:

㈦ 如何监控软件查询数据库sql语句

MYSQL中没有实时监控。 一般是通过查看普通查询日志来看执行了哪些SQL语句。当然也可以自己改写MYSQL的源代码以实时输出执行了什么SQL语句。

㈧ oracle 中怎么监控sql执行的进度

pl/sql tool session 找到相应的session 一般应用程序是 JDBC Thin Client 然后点下面的sqltext就可以看到执行到那句话了,可以不停刷新看sql变化

㈨ 如何实时监控mysql中的SQL语句的执行情况

首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。

pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:

1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;

2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。

而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。

三、使用

接着我们来看下如何使用这个工具。

pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。

触发条件相关的参数有以下几个:

  • function:

    ∘默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;

    ∘也可以设置为 processlist,代表监控 show processlist 的输出;

  • variable:

    ∘默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;

  • threshold:

    ∘默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;

    ∘监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;

  • cycles:

    ∘默认为 5,表示连续观察到五次满足触发条件时,才触发收集;

  • 连接参数:host、password、port、socket。

  • 其他一些重要参数:

  • iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。

  • run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。

  • sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。

  • interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。

  • dest:监控数据存放路径,默认为 /var/lib/pt-stalk。

  • retention-time :监控数据保留时长,默认 30 天。

  • daemonize:以后台服务运行,默认不开启。

  • log:后台运行日志,默认为 /var/log/pt-stalk.log。

  • collect:触发发生时收集诊断数据,默认开启。

    ∘collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。

    ∘collect-strace:收集跟踪数据,需要 strace 工具。

    ∘collect-tcpmp:收集 tcpmp 数据,需要 tcpmp 工具。

㈩ LoadRunner如何监控SQL数据库,数据库是SQL2005的.

一般需要监控以下指标:
1)
SQLServer资源监控中指标缓存点击率(Cache
Hit
Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。
2)
如果Full
Scans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。
3)
Number
of
Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。
4)
Lock
Requests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。