一个稍微复杂一点的复合 select 查询语句,因需要参数,因此写成存储过程。
但经测试,
直接在查询分析器中执行只要几秒钟,
写成存储过程后,在查询分析器中调用却几分钟都没有出来???
请问这是什么原因啊 ???
---------------------------------------------------------------
有这种可能,索引的问题.
---------------------------------------------------------------
把你的存储过程贴出来把
---------------------------------------------------------------
"查询所用到的条件都单独建了索引,且每个表都有主键"
这只能表明你的表中建立了索引,并不表明存储过程会用上索引(是否引用索引,是sql自行决定的,除非你强制指定索引)
你可以试试在存储过程的语句中强制指定索引.
--例如下面的
create table tb (a int)
create index idx_tb_a on tb(a)
go
select * from tb with(index(idx_tb_a)) --强制使用索引 idx_tb_a
go
drop table tb