在OBCPV4的材料中关于outline绑定有个疑问
有两个方法绑定outline
1.根据sqlid绑定outline,每个sql有不同的sqlid,即使sqlA和sqlB仅参数不同,sqlA绑定了outline1也不会影响sqlB原有的执行计划。
2.使用SQL_TEXT创建的outline,需要提供一个带hint和原始参数的sql,并进行参数化处理,如果sql参数化后与stmt去掉hint的文本相同则绑定,如果结尾没有指定 <target_stmt> ;是不是和format outline一样了,都是根据sql进行模糊匹配的?理论上这种绑定应该是精确匹配才对吧
举个例子比如
CREATE OUTLINE otl1 ON SELECT/+ INDEX(t1 idx_c2)/ * FROM t1 WHERE c2 = 1;
去掉hint的参数化文本是
CREATE OUTLINE otl1 ON SELECT * FROM t1 WHERE c2 = ?;
那我执行
SELECT/+ INDEX(t1 idx_c2)/ * FROM t1 WHERE c2 = 2时是不是也走了这个执行计划?是我理解的有问题吗
