在MS SQL Server中怎么查看正在执行的SQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MS SQL Server中怎么查看正在执行的SQL相关的知识,希望对你有一定的参考价值。

有二种方式来查看正在执行的SQL语句

    使用SQL自带的SQL Server Profiler,以可视化界面的方式来查看。

    从开始=》所有程序=》Microsoft SQL Server 2008=》性能工具打开Profiler工具,也可以打开SQL Server Management Studio=》工具=》SQL Server Profiler。

    然后选择文件=》新建=》跟踪打开一个连接窗口,选择将要跟踪的服务器实例然后连接,并打开“跟踪属性”对话框,点运行即可看到正在执行的SQL语句。

    使用SQL语句来查看正在运行的语句,如下

        SELECT  [Spid] = session_id ,
                ecid ,
                [Database] = DB_NAME(sp.dbid) ,
                [User] = nt_username ,
                [Status] = er.status ,
                [Wait] = wait_type ,
                [Individual Query] = SUBSTRING(qt.text,
                                               er.statement_start_offset / 2,
                                               ( CASE WHEN er.statement_end_offset = -1
                                                      THEN LEN(CONVERT(NVARCHAR(MAX), qt.text))
                                                           * 2
                                                      ELSE er.statement_end_offset
                                                 END - er.statement_start_offset )
                                               / 2) ,
                [Parent Query] = qt.text ,
                Program = program_name ,
                hostname ,
                nt_domain ,
                start_time
        FROM    sys.dm_exec_requests er
                INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
                CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
        WHERE   session_id > 50 -- Ignore system spids.
                AND session_id NOT IN ( @@SPID ) -- Ignore this current statement.
    ORDER BY    1 ,
                2


参考技术A 用MSSQL自带的工具 SQL Server Profiler 可以看到。

SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:
图形化监视SQL Server查询;
在后台收集查询信息;
分析性能;
诊断像死锁之类的问题;
调试T-SQL语句;
模拟重放SQL Server活动;
参考技术B 首先你参照的软件用到的数据库SQL SERVER环境你有没有,如果有你可以监测SQL执行的情况,那样可以获取SQL执行的语句。不过现在很多程序都对SQL进行了封装,如果存储过程加密了,那还得费一翻功夫。本回答被提问者和网友采纳

有人知道怎么查看oracle,正在执行的语句吗?

查看数据库中某用户,正在运行什么SQL 语句?
根据MACHINE、USERNAME 或SID、SERIAL#,连接表V$SESSION 和V$SQLTEXT,可
查出。
SQL*PLUS 语句:
“SELECT SQL_TEXT FROM V$SQL_TEXT T, V$SESSION S WHERE
T.ADDRESS=S.SQL_ADDRESS
AND T.HASH_VALUE=S.SQL_HASH_VALUE
AND S.MACHINE='XXXXX' OR USERNAME='XXXXX' -- 查看某主机名,或用户名
/”
参考技术A 打个ed回车,就可以看到上次执行的语句追问

可能是我说的不清楚,我是想看下现在运行的程序在ORACLE中执行的什么语句。

以上是关于在MS SQL Server中怎么查看正在执行的SQL的主要内容,如果未能解决你的问题,请参考以下文章

在 MS Access 和 SQL Server 中处理图片

有人知道怎么查看oracle,正在执行的语句吗?

怎么查看sql server累计执行的sql次数

SQL server查看查询所用时间

如何查看SQL Server2000执行过的SQL语句

如何跟踪SQL SERVER 正在执行的语句