日期:2014-05-18  浏览次数:20484 次

【100分】超难的问题!!如何拦截某些语句,令其不执行!!!
如题,维护的系统很庞杂,
近期反复出现了某个很占数据库服务器资源的统计语句,
导致服务器暴卡,
但又查不到是那个程序发行的SQL语句。
因此想通过拦截该语句,令其不执行,
来缓解服务器压力,
同时也便于我们查找来源。

查了许多资料也没有找到好方法,
请各位大神不吝赐教,
指条明路

------解决方案--------------------
2K5以上可以利用动态管理视图查看。
跟踪器也可以。
找到后你再进行优化。拦截的话,可以进行数量限制
------解决方案--------------------
探讨
引用:

2K5以上可以利用动态管理视图查看。
跟踪器也可以。
找到后你再进行优化。拦截的话,可以进行数量限制

怎么进行数量限制
没办法通过写脚本限制吗?

------解决方案--------------------
探讨
晕菜了。。。。
我就是找不到这个语句是那个程序里发行的,
才想拦截撒。。。。

甚至不排除是恶意攻击。。。。。

------解决方案--------------------
2K 的话用 时间探查器 跟踪下
2005以上 用 SQL Server Profiler 工具查看下吧
------解决方案--------------------
写个触发器,触发后就立即禁止执行
------解决方案--------------------
探讨
看过了,不然也不会知道是什么语句有问题撒,
但查看器只能查到是那台服务器,那个用户,什么时候,发行的什么语句。

但我这个服务器这个用户下有很多页面程序,
数据库不可能知道是那个页面发行的,
而我在页面代码里又搜索不到该语句,
用各种方法搜,都没搜到,
才想到拦截的
别把我想象得神马都没做好不

------解决方案--------------------
探讨
看过了,不然也不会知道是什么语句有问题撒,
但查看器只能查到是那台服务器,那个用户,什么时候,发行的什么语句。

但我这个服务器这个用户下有很多页面程序,
数据库不可能知道是那个页面发行的,
而我在页面代码里又搜索不到该语句,
用各种方法搜,都没搜到,
才想到拦截的
别把我想象得神马都没做好不

------解决方案--------------------
通过 SQL Server Profiler 来跟踪。然后关注并分析 Applicationname(从哪个应用程序传过来的)
LoginName(使用的登录名)
------解决方案--------------------
看着好像又是程序中拼接的SQL语句执行的问题。