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

关于存储过程--一个reads近百万cpu却为0的存储过程
ASP环境下   用ADO   OLEDB   连接sql   2000
直接写的sql语句   但数据库却调用了自身的存储过程来执行
也不知道是不是这样,反正我在事件跟踪里见到的是这样的

declare   @P1   int
set   @P1=180150000
declare   @P2   int
set   @P2=1
declare   @P3   int
set   @P3=1
declare   @P4   int
set   @P4=59530
exec   sp_cursoropen   @P1   output,   N 'select   id,url,qymc       from   table   where   dq   like   ' '3302% ' '   and   (Field= ' 'A ' '   or   Field= ' 'B ' ')       order   by   id   desc ',   @P2   output,   @P3   output,   @P4   output
select   @P1,   @P2,   @P3,   @P4

原始代码是这样的
sql=“select   id,url,qymc       from   table   where   dq   like   '3302% '   and   (Field= 'A '   or   Field= 'B ')       order   by   id   desc”
rs。open   sql,conn,1,1


请高手讲解下   为什么我传过去的是sql语句却调用了存储过程
系统有哪些常用的存储过程
特别是取得数据集的存储过程

------解决方案--------------------
能不能提供以下你的其他代码??我是说,关于调用这个存储过程得其他代码,尽量全一些。
------解决方案--------------------
rs.open sql,conn,1,1 会以游标的方式访问
可以用command对象来运行,将调用sp_executesql存储过程运行,效率高些