游标共享(cursor_sharing)
游标共享是用来解决由于应用程序没有使用绑定变量导致游标无法共享,产生大量硬解析的问题,对应的参数是cursor_sharing,默认值是exact,即不启用游标共享特性。如果设为force,对于只有字面量不同...
·
游标共享是用来解决由于应用程序没有使用绑定变量导致游标无法共享,产生大量硬解析的问题,对应的参数是cursor_sharing,默认值是exact,即不启用游标共享特性。
如果设为force,对于只有字面量不同的SQL语句来说,只有第一个SQL语句进行硬解析(产生执行计划,变量窥视等),后续的语句都重用第一个SQL语句生成的执行计划。自然地,这可能导致后续的执行计划并不是最优的,因此为了避免这个问题,可以将该参数设置为similar,如果直方图存在,将会为后续的SQL语句创建一个新的子游标,如果直方图不存在,就重用已有的子游标。
总之,如果应用程序没有使用绑定变量,游标共享设为similar,那么它的行为将取决于直方图是否存在,如果存在,和exact情况类似,如果不存在,和force情况类似。
注意:游标共享特性非常的不稳定,存在大量bug,在开启游标共享之前,应先在测试库上测试。
如果设为force,对于只有字面量不同的SQL语句来说,只有第一个SQL语句进行硬解析(产生执行计划,变量窥视等),后续的语句都重用第一个SQL语句生成的执行计划。自然地,这可能导致后续的执行计划并不是最优的,因此为了避免这个问题,可以将该参数设置为similar,如果直方图存在,将会为后续的SQL语句创建一个新的子游标,如果直方图不存在,就重用已有的子游标。
总之,如果应用程序没有使用绑定变量,游标共享设为similar,那么它的行为将取决于直方图是否存在,如果存在,和exact情况类似,如果不存在,和force情况类似。
注意:游标共享特性非常的不稳定,存在大量bug,在开启游标共享之前,应先在测试库上测试。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26277071/viewspace-715035/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26277071/viewspace-715035/
更多推荐




所有评论(0)