可能因为内容太多和oracle优化器的沿革、改进进程等,内容条理些有些拼凑,但结论部分还是值得品味的。例如:
绑定变量窥视
绑定变量非常适合于OLTP系统,因为它能共享SQL最大化,使CPU耗费和锁争用最小化。
但是绑定变量有时会导致基数计算完全混乱。因此,oracle9i 针对这一问题引入了绑定变量窥视。
一组SQL语句第一次被优化时,优化器(通常)会检查所有绑定变量的实际值,并利用这些值今昔优化器计算,这意味着优化器能为首次执行选择最优的计划。
接下来的操作,将针对SQL语句今昔语法分析以检查出共享的部分,无论绑定变量的值是否发生变化,都将采用相同的执行计划。(此处有一个例外,就是当绑定变量是字符串的形式时,如果其长度发生较大的变化,那么执行计划可能会有所变化)
在DSS系统中,通常情况下要避免出现绑定变量,这样就不会对看起来一致但所执行的任务迥然不同的语句采用相同的执行计划了。