查看当前正在被执行的sql

由于在公司服务器上在某个时段查询某个sql执行比较慢,由来查询当前正在被执行的sql

Select t.text,SUBSTRING(t.text, (r.statement_start_offset/2) + 1,
((CASE statement_end_offset WHEN -1 THEN DATALENGTH(t.text)
ELSE r.statement_end_offset END-r.statement_start_offset)/2)+1) AS stext,
r.session_id,p.Blocked,p.ios,s.login_time,s.host_name,s.program_name,s.login_name,
s.last_request_start_time
From sys.dm_exec_requests r Cross Apply (Select * From sys.dm_exec_sql_text(r.sql_handle)) t
Join Sys.dm_exec_sessions s on r.session_id=s.session_id
JOIN (Select spid,sum(physical_io) as IOS,Max(blocked) as Blocked From master.dbo.sysprocesses Group By SPID) P ON r.session_id=p.spid
Where r.session_id<>@@SPID

时间: 2024-10-07 22:59:39

查看当前正在被执行的sql的相关文章

Yii查看(输出)当前页面执行的sql语句

在Yii框架下查看当前页面执行的所有sql语句的方法,主要是通过配置相关文件来达到调试sql的目的,具体方法如下: (1)修改 index.php 开启调试模式 在 index.php 文件内增加如下两行代码(如果不存在的话): 查看代码 打印 1 //开启调试模式 2 defined('YII_DEBUG') or define('YII_DEBUG',true); 3 //设置日志记录级别,YII_TRACE_LEVEL的数字越大,信息越清楚 4 defined('YII_TRACE_LEV

mysql通过查看跟踪日志跟踪执行的sql语句

在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: windows环境下的配置方法: 我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL)) 找到my.ini,我的是在“G:\Program Files (x86)\MySQL\MySQL Server 5.0”目录下,

MySQL 查看执行的SQL记录

我们时常会有查看MySQL服务端执行的SQL记录.在MySQL5.1之后提供了支持,通过在启动时加入-l 或者--log选项即可: mysqld -l mysqld --log 在后面的版本(5.1.2)中开始改用--general_log: mysqld --general_log 开启后会在数据目录下看到生成一个日志文件,默认格式为:主机名.log 可在配置文件中设置开启日志: [mysqld] general_log = 1 general_log_file = /path/to #日志文

MySql使用show processlist查看正在执行的Sql语句

今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命令查看了当前正在执行的sql语句,从而定位到了对应的程序,发现代码中有一个死循环在不停的查询导致cpu占用99%,原因找到了问题就好解决了. 这里简单的记录一下processlist的用法: processlist 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这

laravel中查看执行的SQL语句

今天想查看laravel框架中执行的SQL语句,百度了一圈,才找到,这文档真心看着不爽,下面上查看方法 DB::connection()->enableQueryLog(); $navObj = new NavModel(); $data = $navObj->where($where)->select($this->field)->orderBy('id', 'desc') ->get(); $log = DB::getQueryLog(); dd($log); di

查看正在执行的sql

简介  大家都知道使用sp_who2这个命令来查看当前正在的执行的SQL语句的spids.但是显示的信息有限.比如,它只显示执行SELECT,DELETE,UPDATE等.看不到实际的sql命令. 知道正在执行哪条sql语句对于我们debug程序,找出哪些语句花费很长时间,或是哪些语句产生堵塞来说非常重要.而且这个常用来查看存储过程执行到哪一步.执行到哪个语句. 所以我们需要一个比sp_who2更好的命令来做这些工作.这个命令使用SQL的动态管理视图 Dynamic Management Vie

Sql Server 查看当前正在执行的Sql 语句

查看Sql Server 当前正在执行的Sql 语句,可以使用 sys.sysprocesses 或 sys.dm_exec_requests,由于sys.sysprocesses是为了向后兼容而保留的,所以,推荐使用DMV:sys.dm_exec_requests 一,使用sys.sysprocesses Contains information about processes that are running on an instance of SQL Server. These proce

如何查看PostgreSQL正在执行的SQL

SELECT      procpid,      start,      now() - start AS lap,      current_query  FROM      (SELECT          backendid,          pg_stat_get_backend_pid(S.backendid) AS procpid,          pg_stat_get_backend_activity_start(S.backendid) AS start,        

Oracle查看正在执行的sql

1.查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username Oracle用户, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value; 2.查看正在执行