SQL Access Advisor in Oracle Database 10g
2017-07-03 22:07
567 查看
摘自:https://oracle-base.com/articles/10g/sql-access-advisor-10g
The SQL Access Advisor makes suggestions about indexes and materialized views which might improve system performance. This article describes how to use the SQL Access Advisor in Oracle 10g.
Enterprise Manager
DBMS_ADVISOR
Quick Tune
Related Views
Related articles.
SQL Access Advisor in Oracle Database 11g Release 1
The SQL Access Advisor is accessible from Enterprise Manager. Specific reports can be produced by clicking on the "Advisor Central" link, then the "SQL Access Advisor" link. The resulting page allows you to create a workload and a SQL Access Advisor task. Once
the task has completed you can view information about the findings and recommendations.
The
it is used to create, execute and display a typical SQL Access Advisor script for the current workload.
The value for the
If you just want to tune an individual statement you can use the
Any recommendations can then be displayed using the previous query with the correct task name specified.
The following views can be used to display the SQL Access Advisor output without using Enterprise Manager or the
For more information see:
DBMS_ADVISOR
SQL Access Advisor in Oracle Database 11g Release 1
Hope this helps. Regards Tim...
SQL Access Advisor in Oracle Database 10g
The SQL Access Advisor makes suggestions about indexes and materialized views which might improve system performance. This article describes how to use the SQL Access Advisor in Oracle 10g.Enterprise Manager
DBMS_ADVISOR
Quick Tune
Related Views
Related articles.
SQL Access Advisor in Oracle Database 11g Release 1
Enterprise Manager
The SQL Access Advisor is accessible from Enterprise Manager. Specific reports can be produced by clicking on the "Advisor Central" link, then the "SQL Access Advisor" link. The resulting page allows you to create a workload and a SQL Access Advisor task. Oncethe task has completed you can view information about the findings and recommendations.
DBMS_ADVISOR
The DBMS_ADVISORpackage can be used to create and execute any advisor tasks, including SQL Access Advisor tasks. The following example shows how
it is used to create, execute and display a typical SQL Access Advisor script for the current workload.
DECLARE l_taskname VARCHAR2(30) := 'test_sql_access_task'; l_task_desc VARCHAR2(128) := 'Test SQL Access Task'; l_wkld_name VARCHAR2(30) := 'test_work_load'; l_saved_rows NUMBER := 0; l_failed_rows NUMBER := 0; l_num_found NUMBER; BEGIN -- Create a SQL Access Advisor task. DBMS_ADVISOR.create_task ( advisor_name => DBMS_ADVISOR.sqlaccess_advisor, task_name => l_taskname, task_desc => l_task_desc); -- Reset the task. DBMS_ADVISOR.reset_task(task_name => l_taskname); -- Create a workload. SELECT COUNT(*) INTO l_num_found FROM user_advisor_sqlw_sum WHERE workload_name = l_wkld_name; IF l_num_found = 0 THEN DBMS_ADVISOR.create_sqlwkld(workload_name => l_wkld_name); END IF; -- Link the workload to the task. SELECT count(*) INTO l_num_found FROM user_advisor_sqla_wk_map WHERE task_name = l_taskname AND workload_name = l_wkld_name; IF l_num_found = 0 THEN DBMS_ADVISOR.add_sqlwkld_ref( task_name => l_taskname, workload_name => l_wkld_name); END IF; -- Set workload parameters. DBMS_ADVISOR.set_sqlwkld_parameter(l_wkld_name, 'ACTION_LIST', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.set_sqlwkld_parameter(l_wkld_name, 'MODULE_LIST', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.set_sqlwkld_parameter(l_wkld_name, 'SQL_LIMIT', DBMS_ADVISOR.ADVISOR_UNLIMITED); DBMS_ADVISOR.set_sqlwkld_parameter(l_wkld_name, 'ORDER_LIST', 'PRIORITY,OPTIMIZER_COST'); DBMS_ADVISOR.set_sqlwkld_parameter(l_wkld_name, 'USERNAME_LIST', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.set_sqlwkld_parameter(l_wkld_name, 'VALID_TABLE_LIST', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.import_sqlwkld_sqlcache(l_wkld_name, 'REPLACE', 2, l_saved_rows, l_failed_rows); -- Set task parameters. DBMS_ADVISOR.set_task_parameter(l_taskname, '_MARK_IMPLEMENTATION', 'FALSE'); DBMS_ADVISOR.set_task_parameter(l_taskname, 'EXECUTION_TYPE', 'INDEX_ONLY'); DBMS_ADVISOR.set_task_parameter(l_taskname, 'MODE', 'COMPREHENSIVE'); DBMS_ADVISOR.set_task_parameter(l_taskname, 'STORAGE_CHANGE', DBMS_ADVISOR.ADVISOR_UNLIMITED); DBMS_ADVISOR.set_task_parameter(l_taskname, 'DML_VOLATILITY', 'TRUE'); DBMS_ADVISOR.set_task_parameter(l_taskname, 'ORDER_LIST', 'PRIORITY,OPTIMIZER_COST'); DBMS_ADVISOR.set_task_parameter(l_taskname, 'WORKLOAD_SCOPE', 'PARTIAL'); DBMS_ADVISOR.set_task_parameter(l_taskname, 'DEF_INDEX_TABLESPACE', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.set_task_parameter(l_taskname, 'DEF_INDEX_OWNER', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.set_task_parameter(l_taskname, 'DEF_MVIEW_TABLESPACE', DBMS_ADVISOR.ADVISOR_UNUSED); DBMS_ADVISOR.set_task_parameter(l_taskname, 'DEF_MVIEW_OWNER', DBMS_ADVISOR.ADVISOR_UNUSED); -- Execute the task. DBMS_ADVISOR.execute_task(task_name => l_taskname); END; / -- Display the resulting script. SET LONG 100000 SET PAGESIZE 50000 SELECT DBMS_ADVISOR.get_task_script('test_sql_access_task') AS script FROM dual; SET PAGESIZE 24
The value for the
SET LONGcommand should be adjusted to allow the whole script to be displayed.
Quick Tune
If you just want to tune an individual statement you can use the QUICK_TUNEprocedure as follows.
BEGIN DBMS_ADVISOR.quick_tune( advisor_name => DBMS_ADVISOR.SQLACCESS_ADVISOR, task_name => 'emp_quick_tune', attr1 => 'SELECT e.* FROM emp e WHERE UPPER(e.ename) = ''SMITH'''); END; /
Any recommendations can then be displayed using the previous query with the correct task name specified.
Related Views
The following views can be used to display the SQL Access Advisor output without using Enterprise Manager or the get_task_scriptfunction:
DBA_ADVISOR_TASKS- Basic information about existing tasks.
DBA_ADVISOR_LOG- Status information about existing tasks.
DBA_ADVISOR_FINDINGS- Findings identified for an existing task.
DBA_ADVISOR_RECOMMENDATIONS- Recommendations for the problems identified by an existing task.
For more information see:
DBMS_ADVISOR
SQL Access Advisor in Oracle Database 11g Release 1
Hope this helps. Regards Tim...
相关文章推荐
- SQL Access Advisor in Oracle Database 10g
- PL/SQL Enhancements in Oracle Database 10g
- oracle 10g:ADDM 和 SQL Tuning Advisor
- Oracle SQL Access Advisor 说明
- [bbk4979]第06集 - Chapter 04- Interacting with Oracle Database Server:SQL Statements in PL/SQL Programs(01)
- 在Oracle 10gR2中为单条sql运行SQL Access Advisor
- Scheduler in Oracle Database 10g
- 95 The SQL Tuning Advisor configuration has default settings in your database instance. Which recomm
- (转)Fine-Grained Access to Network Services in Oracle Database 11g Release 1
- Top 10 steps to optimize data access in SQL Server: Part IV (Diagnose database performance problems)
- 10g Manual Database Creation in Oracle (Single Instance and RAC) (文档 ID 240052.1)
- Advanced SQL Functions in Oracle 10g, Richard Earp
- Oracle SQL Access Advisor 说明
- Automatic SQL Tuning in Oracle Database
- SAA-sql access advisor使用(oracle 11.2后版本)
- Top 10 steps to optimize data access in SQL Server: Part V (Optimize database files and apply partitioning)
- Access Remote Database Table in ABAP Program Via DBLink of ORACLE
- Oracle SQL Access Advisor 说明
- Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor )
- DML Error Logging in Oracle 10g Database Release 2