sql server如何从存储过程中查找指定的内容
今天公司系统异常的慢,通过数据库监测发现是由于一段查询所引起。不过由于系统庞大,很难去定位这段sql查询是系统里那里的执行代码。那么如何去从这拥有400多张表,100多个存储过程的数据库中找到是哪个存储过程,或者函数引起的呢?
要在数据库中查找指定的查询语句,只能是在存储过程,或者函数中搜索了,有三个方法去快速查找:
1.通过sql server management studio导出存储过程,函数脚本,然后通过ctrl+F去完成搜索,不过这个方法比较低效。
2.编写下面的查询语句,直接在数据库INFORMATION_SCHEMA.ROUTINES表中查找
SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%text%' AND ROUTINE_TYPE='PROCEDURE'
3.同样也可以通过sysobjects o, syscomments两个表,查询到
select name from sysobjects o, syscomments s where o.id = s.id and text like '%text%' and o.xtype = 'P'
可以看出,要快速的在数据库中查询指定的内容,还是通过sql查询更快速,灵活。