使用准备好的陈述有缺点吗?

Sco*_*ott 13 sql prepared-statement

我一直在读很多关于准备好的陈述,在我读过的所有内容中,没有人谈到使用它们的缺点.因此,我想知道是否有人会忽视的"有龙"斑点?

Qua*_*noi 8

Prepared语句只是一个经过解析和预编译的SQL语句,只等待提供的绑定变量才能执行.

任何执行的语句迟早都会准备好(需要对其进行解析,优化,编译然后执行).

准备好的语句只是重用解析,优化和编译的结果.

通常,即使您不自己使用准备好的查询,数据库系统也会使用某种优化来节省查询准备时间.

Oracle例如,在解析查询时,首先检查库缓存,如果已经解析了相同的语句,则使用缓存的执行计划.

  • 我认为这个答案缺少准备好的陈述的关键问题,例如.查询计划根据准备查询时存在的数据统计进行优化,并且在执行查询时可能在将来不是最佳的.所以这是准备好的声明的缺点. (3认同)