zoukankan      html  css  js  c++  java
  • sqlserver 查看数据库正在执行的命令

    在SQL中有时候我们需要查看现在正在SQL Server执行的命令。在分析管理器或者Microsoft SQL Server Management Studio中,我们可以在"管理-SQL Server日志-活动监视器"中查看。今天我们主要利用master..sysprocesses系统表来查看。

    先看看sysprocesses系统表的相关信息。
    sysprocesses:存放有关在 Microsoft SQL Server 实例中运行的进程的信息,这些进程可以是客户端进程或系统进程。

    查询示例:
    select * from master..sysprocesses


    我们看看查询出来的列的含义。
    因为该系统表的列数比较多,我们只讲解比较有用的列含义。
    spid--SQL Server进程的ID。

    kpid--Microsoft Windows线程的ID。

    dbid--当前正由进程使用的数据库ID。

    uid--执行命令的用户ID。如果用户数和角色数超过 32,767,则会溢出或返回 NULL。

    cpu--进程的累计占用CPU的时间。

    physical_io--进程的累计磁盘读取和写入。

    memusage--当前分配给该进程的过程缓存中的页数。一个负数,表示进程正在释放由另一个进程分配的内存。

    login_time--客户端进程登录到服务器的时间。对于系统进程,将存储 SQL Server的启动时间。

    last_batch--客户端进程上次执行远程存储过程调用或EXECUTE语句的时间。对于系统进程,将存储 SQL Server 的启动时间。

    open_tran--进程的打开事务数。

    status--进程ID的状态。例如,运行或者睡眠。

    sid--用户的全局唯一标识符 (GUID)。

    nt_username--进程的 Windows 用户名(如果使用 Windows 身份验证)或可信连接的 Windows 用户名。

    loginame 执行该进程的登录名。


    这样,我们就可以查到所有执行命令的进程ID了,如果要查看该进程的具体的SQL语句,可以利用以下语句查看:
    dbcc inputbuffer(进程号)
    例如:
    dbcc inputbuffer(56)


    如果我们要终止(杀死)该进程,可利用以下语句:
    kill 进程号
    例如:
    kill 70
  • 相关阅读:
    (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
    UVA 230 Borrowers (STL 行读入的处理 重载小于号)
    UVA 12100 打印队列(STL deque)
    uva 12096 The SetStack Computer(STL set的各种库函数 交集 并集 插入迭代器)
    uva 1592 Database (STL)
    HDU 1087 Super Jumping! Jumping! Jumping!
    hdu 1176 免费馅饼
    HDU 1003 Max Sum
    转战HDU
    hust 1227 Join Together
  • 原文地址:https://www.cnblogs.com/8765h/p/2373631.html
Copyright © 2011-2022 走看看