有时我们的开发人员会编写一个使用游标的查询,但不会明确关闭它们。我正在尝试在我的生产数据库中生成一个活动对象列表,这些活动对象使用游标但没有明确关闭/取消分配它们。为此,我编写了一个简单的语句来完成这项工作,但速度非常慢:
select distinct name,
definition
from SYS.SQL_MODULES
inner join SYS.OBJECTS O
on SQL_MODULES.OBJECT_ID = O.OBJECT_ID
where SQL_MODULES.DEFINITION like '%open%'
and SQL_MODULES.DEFINITION like '%declare % cursor%'
and ( SQL_MODULES.DEFINITION not like '%close%'
or SQL_MODULES.DEFINITION not like '%deallocate%' )
目前,这大约需要 3 分钟才能运行。有没有更好的方法来获取我正在寻找的信息?