oracle access advisor,SQL Access Advisor的使用
环境:
OS:Red Hat Linux As 5
DB:10.2.0.4
SQL Access Advisor是伴随着10G出现的一个优化工具,提供对表分区,物化视图,索引,物化视图日志优化建议.下边通过对单个SQL的执行,查看Oracle给出的建议.
1.建表并生成测试数据
SQL> connect scott/scott
Connected.
SQL> drop table tb_test;
SQL> create table tb_test(id number not null,name varchar2(30));
Table created.
SQL> create index idx_tb_test on tb_test(id);
Index created.
SQL> declare
begin
for i in 1 .. 100000 loop
insert into tb_test values (i, 'test');
commit;
end loop;
end;
2.分析表
connect / as sysdba
begin
dbms_stats.gather_table_stats(ownname => 'SCOTT', tabname => 'TB_TEST',cascade => true);
end;
3.使用dbms_advisor.quick_tune生成优化建议
connect / as sysdba
declare
l_task_name VARCHAR2(255);
l_sql_stmt VARCHAR2(4000);
begin
l_sql_stmt := 'select /*+ full(t) */ * from scott.tb_test t where t.id = :1';
l_task_name := 'MY_FULL_ACCESS_TEST';
DBMS_ADVISOR.QUICK_TUNE(DBMS_ADVISOR.SQLACCESS_ADVISOR,
l_task_name,
l_sql_stmt);
exception when others then dbms_output.put_line(sqlerrm);
end;
我们这里造一个走全表扫描的索引,很明显走索引才是正确的,这里的目的主要是看oracle会给出什么样的建议.
4.查看优化建议
SQL> set serveroutput on;
SQL> set long 999999999;
SQL> begin
show_recm('MY_FULL_ACCESS_TEST');
end;
=========================================
Task_name = MY_FULL_ACCESS_TEST
Action ID: 1
Command : RETAIN INDEX
Attr1 (name) : "SCOTT"."IDX_TB_TEST_N1"
Attr2 (tablespace):
Attr3 : "SCOTT"."TB_TEST"
Attr4 : BTREE
Attr5 :
----------------------------------------
=========END RECOMMENDATIONS============
PL/SQL procedure successfully completed.
从以上输出可以看出oracle给出的建议是走索引.
show_recm过程如下:
CREATE OR REPLACE PROCEDURE show_recm (in_task_name IN VARCHAR2) IS
CURSOR curs IS
SELECT DISTINCT action_id, command, attr1, attr2, attr3, attr4
FROM dba_advisor_actions
WHERE task_name = in_task_name
ORDER BY action_id;
v_action number;
v_command VARCHAR2(32);
v_attr1 VARCHAR2(4000);
v_attr2 VARCHAR2(4000);
v_attr3 VARCHAR2(4000);
v_attr4 VARCHAR2(4000);
v_attr5 VARCHAR2(4000);
BEGIN
OPEN curs;
DBMS_OUTPUT.PUT_LINE('=========================================');
DBMS_OUTPUT.PUT_LINE('Task_name = ' || in_task_name);
LOOP
FETCH curs INTO
v_action, v_command, v_attr1, v_attr2, v_attr3, v_attr4 ;
EXIT when curs%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Action ID: ' || v_action);
DBMS_OUTPUT.PUT_LINE('Command : ' || v_command);
DBMS_OUTPUT.PUT_LINE('Attr1 (name) : ' || SUBSTR(v_attr1,1,30));
DBMS_OUTPUT.PUT_LINE('Attr2 (tablespace): ' || SUBSTR(v_attr2,1,30));
DBMS_OUTPUT.PUT_LINE('Attr3 : ' || SUBSTR(v_attr3,1,30));
DBMS_OUTPUT.PUT_LINE('Attr4 : ' || v_attr4);
DBMS_OUTPUT.PUT_LINE('Attr5 : ' || v_attr5);
DBMS_OUTPUT.PUT_LINE('----------------------------------------');
END LOOP;
CLOSE curs;
DBMS_OUTPUT.PUT_LINE('=========END RECOMMENDATIONS============');
END show_recm;
-- The End --
oracle access advisor,SQL Access Advisor的使用相关推荐
- oracle advisor权限,Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor )
在Oracle数据库出现性能问题时,使用Oracle本身的工具包,给出合理的调优建议是比较省力的做法.将一条或多条SQL语句做为输入内容 在Oracle数据库出现性能问题时,使用Oracle本身的工具 ...
- oracle sqladvisor,Oracle 11 sql tuning advisor sql access advisor关闭以及job查看与停止
Oracle11g自动维护任务 参考博客:http://blog.itpub.net/12798004/viewspace-1247636/ # 自动收集优化器统计信息 收集数据库所有schema没有 ...
- oracle access advisor,使用Oracle SQL Access Advisor改善数据库索引与物化视图
当针对表集增加物化视图(materialized view)和索引时,理论上这些表的查询性能会得到改善.但事实上并不一定能达到理想的状态,因此Oracle推出了SQL Access Advisor工具 ...
- oracle access advisor,oracle11g新特性-SQL Access Advisor
SQL Access Advisor 获得有关基于实际频率和使用类型(而非数据类型)进行分区.索引和创建物化视图以改进模式设计的建议. g 提供了大量帮助程序(或"顾问程序"),可 ...
- oracle中慢sql优化思路
参考资料:官方文档SQL Tuning Guide https://docs.oracle.com/en/database/oracle/oracle-database/12.2/tgsql/sql- ...
- Oracle SQL Access Advisor 说明
一.说明 1.1 相关内容 在如下官方文档中提到了一些优化工具的说明: Monitoring and Tuning the Database http://docs.oracle.com/cd/E11 ...
- oracle sqladvisor,Oracle SQL Access Advisor 说明
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 --Task recommendation 是一个范围,从简单的建议到复杂的解决方案.当advisortask 执行时, ...
- 使用dbms_advisor来执行sql access advisor
使用dbms_advisor来执行sql access advisor主要有以下几个步骤: 1.创建任务 2.定义工作量 3.生成建议 4.查看与实现建议 步骤1 创建任务 在任务建议被生成之前,必须 ...
- Oracle SQL Tuning Advisor 测试
如果面对一个需要优化的SQL语句,没有很好的想法,可以先试试Oracle的SQL Tuning Advisor. SQL> select * from v$version;BANNER ---- ...
最新文章
- JAVA语言教学重点_《JAVA语言》教学大纲
- 联想正遭遇第四道坎 柳传志对症下药
- 怎样查看was的服务器信息,WAS 查看服务状态
- #pragma once与 #ifndef的区别为了避免同一个文件被include多次
- 数据挖掘提分三板斧!
- 3 描述android的组件,Android基础------Intent组件
- CentOS6.4将MySQL5.1升级至5.5.36
- 【VS2010学习笔记】【编程实例】 (含有类的动态链接库的封装和调用)
- 【华为_数通】常用命令备忘
- 一文看尽 2020 年谷歌 AI 重大突破
- 项目上线工作流程梳理
- go语言处理html文件,go语言操作文件实例笔记
- word将空格替换为逗号
- 火灾自动报警系统 切换模块
- codeforces 1293 A. ConneR and the A.R.C. Markland-N(思维)
- android 设置视频大小,android – 调整视频大小
- EF的基本了解(一)
- 前端面试题——计算机网络 高频
- tarjan算法与无向图的连通性(割点,桥,双连通分量,缩点)
- 洛谷P1460 健康的荷斯坦奶牛
热门文章
- 斯坦福cs224d(深度学习在自然语言处理上的应用)Lecture 2
- winscp下载很慢_winscp使用教程 两台电脑间传文件,winscp使用教程 两台电脑间传文件,软件介绍...
- CDA Level Ⅲ 模拟题(一)
- android 汉字拼音排序,Android拼音排序
- SWAT模型(建模方法、实例应用、高级进阶)技能提升
- 笔记:菜鸟教程-JavaScript
- Cocos2d-x 3.2 大富翁游戏项目开发-第五部分 单机游戏-关卡选择ScrollView
- 吉利发布新出行科技品牌“礼帽出行” 定位高品质定制化出行
- 怎样把一个价值5毛钱的苹果卖到100万?
- C语言 双色球 红蓝球出现概率模拟