oracle中执行存储过程比直接执行打印语句慢得多

因为调用的语句需要大量的条件,最初在写语句时,使用
WHERE (参数1 IS NULL OR T.条件1 = 参数1)
这种形式来写,但是条件一多的时候,发现大量的or会导致语句特别慢,后改用动态sql拼接条件,但是发现这种写法非常不稳定,经常会特别慢,有时候在sql后面拼接一个空格都会导致查询速度变化非常大。同样的语句,在存储过程里面执行,然后dbms打印出来之后再执行,速度差距在5倍以上,有没有大佬能告诉一下,这种情况要怎么优化,目前还没有找到什么办法。之前在拼接语句后面拼上" AND 1= 1 "后速度正常了两天,然后现在查询速度又变慢了,实在是没办法了

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问