zoukankan      html  css  js  c++  java
  • 获取进程正在执行的SQL语句

    这是在工作中遇到的一个实际问题,当时Sybase的日志空间总是会满,而且无法清空,只能重启Sybase服务。
    经过观察发现,总是有一个进程会长时间的占用日志空间,无法释放,只能杀掉该进程,为了找到该进程是哪个客户端程序,故整理如下方法来获取该进程正在执行的SQL语句。
    通过返回的SQL语句,定位了故障程序,解决了一个大bug

    第一步,打开sybase central,在左边视图中,双击数据库服务器名称,然后双击登录文件夹,在右边的视图中选择增加登录。新建一个登录,输入登录名:ts,设置口令,然后单击下一步,直到完成。


    第二步,在新建好的登录名上单击鼠标右键,选择属性选项。


    第三步,在属性窗口中选择角色页,点击增加角色按钮。


    第四步,在弹出窗口中选中sa_rolesybase_ts_role两个角色(按住ctrl键来多选),点击“确定”按钮保存设置。


    第五步,打开SQL Advantage,用该用户名登陆。


    第六步,输入语句select * from syslogshold,如果有记录返回,则记住第三个字段(spid)的值。


    第七步,输入SQL语句:

    dbcc traceon(3604)

    dbcc sqltext(上一步中第三个字段的值)

    执行,输出结果即为该进程正在执行的SQL语句



    第八步,执行SQL语句:dbcc traceoff(3604)


  • 相关阅读:
    .NetCore教程之 EFCore连接Mysql DBFirst模式
    .Net EF6+Mysql 环境搭建
    SQL实用
    前端文章分享
    mac怎样运行vue项目
    Cadence 操作技巧总结3:拼板技巧总结
    TCL语言控制Modelsim仿真 2
    TCL语言控制Modelsim仿真 1
    Cadence 操作技巧总结2:模块化布局
    Cadence 操作技巧总结1:测试点的生成1
  • 原文地址:https://www.cnblogs.com/Jasmin/p/591446.html
Copyright © 2011-2022 走看看