有很多关于SQL Server中缓存执行计划如何消除存储过程的大部分性能优势而不是动态sql的信息.但是,我还没有发现Oracle数据库是否也是如此.有没有人有关于Oracle中动态SQL处理信息的信息或指针?最好是实际的性能数字,而不是一般的“sp是好的”/“sp是坏的”讨论.
解决方法
Oracle还有一个缓存执行工具.如果查询在哈希表上命中,则查询将被散列并与计划匹配.您还可以使用此机制强制执行特定查询的计划.与SQL Server一样,您需要使用参数化查询来执行此操作,而不是将值替换为字符串 – 因为后者将生成不同的哈希值.