环境:
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 --
参考至:http://blog.chinaunix.net/uid-77311-id-3233477.html
如有错误,欢迎指正
邮箱:czmcj@163.com
相关推荐
Oracle 11G的自动SQL调优功能,如SQL Tuning Advisor和SQL Access Advisor,提供了综合、自动且经济高效的解决方案,可以显著减少调整时间,降低管理成本。 **手动SQL调优的挑战** 手动调整SQL面临多方面的挑战。...
此PPTX文件主要探讨了Oracle公司的自我管理数据库中自动SQL调优的功能,包括SQL Tuning Advisor和SQL Access Advisor。这两个工具为数据库管理员(DBA)提供了集成、自动和经济高效的SQL调整解决方案,显著减少了手动...
在【自我管理数据库-自动的SQL调优.ppt】中,主要探讨了Oracle 10g中的自动SQL调优工具,如SQL Tuning Advisor和SQL Access Advisor。 **手动调整的挑战** 手动SQL调优通常需要数据库管理员(DBA)具备SQL优化、...
这个话题涉及到Oracle公司的自我管理数据库解决方案,特别是SQL Tuning Advisor和SQL Access Advisor。 SQL Tuning Advisor是Oracle 10g引入的一种自动化工具,它的目标是减少SQL调整的时间和成本,最高可达80%的...
综上所述,自动SQL调整通过SQL Tuning Advisor和SQL Access Advisor等工具,显著减轻了DBA的工作负担,提高了数据库管理的效率和性能。通过自动统计数据分析和SQL配置文件的使用,数据库能够更好地适应不断变化的SQL...
《产品管理总管数据库可管理性》的讨论主要集中在数据库的自我管理和SQL调整上,...通过使用SQL Tuning Advisor和SQL Access Advisor等工具,数据库管理员可以更有效地监控和优化SQL负载,确保系统的稳定性和高效运行。
通过使用 SQL Access Advisor 分析查询模式和数据分布情况,确定了创建复合索引的最佳方案,从而大幅减少了查询时间。 #### 案例三:使用 SQL Tuning Advisor 自动优化 在一个复杂的应用系统中,由于频繁修改 SQL ...
创建SQL Profile的方法包括使用`DBMS_SQLTUNE`包或通过SQL Access Advisor。 #### 5. SQL Access Advisor SQL Access Advisor是Oracle 10g提供的一种工具,用于建议如何改进SQL语句的性能。它可以识别出性能不佳的...
- **课程目标**:本课程旨在帮助学员掌握如何利用Oracle Enterprise Manager监控数据库性能、使用SQL Tuning Advisor优化SQL语句、利用SQL Access Advisor改进数据访问策略、启用自动共享内存管理(ASSM)、使用...
10. **数据库调优工具与策略**:如SQL Tuning Advisor、Database Replay、SQL Access Advisor等工具的使用。 通过书中提供的代码示例,读者可以亲手操作,体验各种优化技巧的实际效果。这些代码可能包括各种性能...
- **SQL模式分析**:SQL Tuning Advisor支持,Access Advisor不支持。 - **STA* (Statistics Advisor)**:SQL Tuning Advisor支持。 - **Access Path: Materialized View Logs**:SQL Tuning Advisor支持。 #### 八...
12. **SQL Access Advisor**:此工具可以帮助优化访问路径选择,提供关于何时使用索引、表分区和并行执行的建议。 通过学习"D79995GC10_sg1.pdf"、"D79995GC10_sg2.pdf"和"D79995GC10_ag.pdf"中的Student Guide和...
- **SQL Access Advisor和SQL Tuning Advisor**:使用这些工具自动建议优化策略。 8. **并发控制与锁** - **理解事务与锁定机制**:避免死锁和资源争抢,提高多用户并发性能。 9. **性能优化最佳实践** - **...
SQL Tuning Advisor专注于优化SQL执行计划,而SQL Access Advisor则帮助优化数据访问路径。 自动SQL调整通过一系列步骤进行,包括增加丢失的索引、修改SQL结构、创建SQL配置文件、分析SQL结构、访问路径和统计数据...
此外,Oracle还提供了自动SQL调优机制,如SQL Tuning Advisor和SQL Access Advisor,它们能自动执行上述的调优步骤,帮助管理员快速定位问题并提出优化建议。 总结来说,Oracle SQL调优是一个涉及多个层面的系统...
SQL Access Advisor是Oracle 10g的一个自动化工具,它可以分析查询工作负载,推荐索引、分区策略或物化视图等,以改善整体SQL性能。通过这个工具,数据库管理员可以获取到具体的SQL调优建议,从而针对性地进行优化。...