ADVISE_INDEX¶
说明¶
给定一条或多条SQL语句,生成推荐结果
返回值¶
若成功推荐索引,则返回TRUE;否则返回FALSE。
注解
1.通过 advise_index_result 函数查看具体推荐结果。
2.在一个环境中,只能执行一次advise_index函数。
3.若索引推荐失败,可通过ADVISE_INDEX_INFO视图中msg字段查看具体原因说明。
示例¶
-- 创建表
create table t1(a int, b int);
create table t2(a int, b int);
create table t3(a int, b int);
-- 创建推荐索引环境
select advise_index_begin(4, 8192);
ADVISE_INDEX_BEGIN
--------------------
t
(1 row)
-- 执行推荐索引命令
select advise_index('select * from t1 where a=1;select * from t2 where b = 3;select * from t3 order by a, b');
ADVISE_INDEX
--------------
t
(1 row)
-- 使用视图查看索引推荐的结果
select * from ADVISE_INDEX_RESULT;
ID | TABLE_SCHEMA | REL_NAME | COL_NAME | CREATE_SQL
----+--------------+----------+----------+------------------------------------------------
1 | SYSDBA | T3 | A,B | CREATE INDEX ADV_IDX_T3_A_B ON SYSDBA.T3(A,B);
2 | SYSDBA | T1 | A | CREATE INDEX ADV_IDX_T1_A ON SYSDBA.T1(A);
3 | SYSDBA | T2 | B | CREATE INDEX ADV_IDX_T2_B ON SYSDBA.T2(B);
(3 rows)
-- 清理推荐索引环境
select advise_index_end();
ADVISE_INDEX_END
------------------
t
(1 row)