Oracle 对共享 SQL 语句采用严格匹配策略,要求语句完全相同(包括空格、换行符)。要实现共享,语句必须满足以下条件:

  1. 字符级比较:待执行语句与共享池中的语句必须完全一致。
  2. 对象相同:语句操作的数据库对象必须相同。
  3. 绑定变量相同:语句中必须使用相同名称的绑定变量。

例如,以下第一组语句可以共享,而第二组语句则不行,即使在运行时绑定变量的值相同:

可共享组:

- select pin, name from people where pin = :blk1.pin

- select pin, name from people where pin = :blk1.pin

不可共享组:

- select pin, name from people where pin = :blk1.ot_jnd

- select pin, name from people where pin = :blk1.ov_jnd