Quancs-93 2020-03-18 16:12 采纳率: 0%
浏览 482

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

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

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 overleaf中论文编辑,报错`pages' is a missing field, not a string, for entry 4
  • ¥15 vhdl+MODELSIM
  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么