CREATE OUTLINE

说明

创建绑定计划

语法

create_outline ::=

参数

outline_name

绑定计划名称,需要唯一,不可重复。

示例

示例1: 创建绑定计划

-- 切换到 SYSDBA 用户
CONNECT sysdba/szoscar55;

-- 启用outline
set ENABLE_USE_OUTLINE = TRUE;

-- 清理环境
DROP TABLE T1 CASCADE;
DROP OUTLINE OUT1;

-- 创建环境
CREATE TABLE T1(A INT);
CREATE INDEX IDX1 ON T1(A);


-- 创建outline前走索引扫描
EXPLAIN SELECT /*+ index(t1) */ * FROM T1;
QUERY PLAN(text)      
----------------------
Index Scan using IDX1(
Fast Index Scan) on T
1  (cost=0.00..82.92 
rows=8192 width=4)    
总数目:1

-- 创建Outline
CREATE OUTLINE OUT1 ON SELECT /*+ full(t1) */ * FROM T1 MATCH SELECT /*+ index(t1) */ * FROM T1;


-- 再次查看计划
EXPLAIN SELECT /*+ index(t1) */ * FROM T1;
QUERY PLAN(text)      
----------------------
Seq Scan on T1  (cost=
0.00..89.92 rows=8192
 width=4)             
Note: use outline OUT1
总数目:3


-- 查询系统表
SELECT OUTLINE_NAME,OUTLINE_DATA FROM SYS_OUTLINE;
OUTLINE_NAME(name)      |OUTLINE_DATA(text)      |
------------------------------------------------
OUT1                    |/*+ FULL(@SEL$1 SYSDBA.T|
                        |1@SEL$1) */             |
总数目:1

-- 清理环境
DROP OUTLINE OUT1;
DROP TABLE T1;
RESET ENABLE_USE_OUTLINE;