Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor
在Oracle数据库出现性能问题时,使用Oracle本身的工具包,给出合理的调优建议是比较省力的做法。
tuning advisor 是对输入的sql set的执行计划进行优化
accsee advisor 是对sql set当前如果引入索引、分区的话,性能有多大的提升,给出建议。
sql tuning advisor是从一方面给出的建议,access advisor可以针对一个表或者多个表的所有操作给出分析建议,比如说对于select语句他会建议增加索引,而会降低DML的性能,sql access advisor则针对所有的操作包括select,DML等总体的综合分析
下面两种包的介绍及具体做法。
SQL Tuning Advisor 粒度最小的调整工具.
将一条或多条SQL语句做为输入内容,分析所有访问路径,然后生成改进SQL语句的建议,并提出索引,物化视图和分区方案来提高应用程序的总体性能。
另外,在维护窗口中,Oracle也会针对Automatic Workload Repository(AWR) 来确定和记录的高负载语句自动化运行SQL Tuning Advisor
SQL Access Advisor
它涉及工作量中所有SQL语句,并提出索引,特化视图和分区方案来提高应用程序的总体性能。
小区别:
SQL Tuning Advisor 分别调整每条SQL语句
SQL Access Advisor 同时调整所有SQL语句
SQL Tuning Advisor :
1. 在匿名PL/SQL块中,为SQL 语句定义调整任务。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
declare tune_task_name varchar2(30) ; bad_sql_stmt clob;begin bad_sql_stmt := 'select distinct id from demo.txcl'; tune_task_name := dbms_sqltune.create_tuning_task ( sql_text => bad_sql_stmt, user_name => 'DEMO', scope => 'COMPREHENSIVE', time_limit => 60, task_name => 'xcl_sql_tuing_task', description => 'See what is wrong with the SELECT' ) ;end;/ |
2. 设置任务时指定的时限值是60分钟.
|
1
2
3
4
5
6
7
8
|
begin dbms_sqltune.set_tuning_task_parameter (task_name => 'xcl_sql_tuing_task', parameter => 'TIME_LIMIT', value => 30 );end;/ |
3. 使用EXECUTE_TUNING_TASK过程启动调整任务
|
1
2
3
4
5
|
begin dbms_sqltune.execute_tuning_task (task_name => 'xcl_sql_tuing_task');end;/ |
4. 通过连接DBA_ADVISOR_TASKS和V$ADVISOR_PROGRESS来查任务状态
|
1
2
3
|
select task_name,status,sofar,totalwork
from dba_advisor_tasks join v$advisor_progress using(task_id) where task_name = 'xcl_sql_tuing_task'; |
5. 查看调整任务给出的建议
|
1
|
select dbms_sqltune.report_tuning_task('xcl_sql_tuing_task') from dual; |
SQL Access Advisor:
使用 dbms_advisor.quick_tune来对单个SQL语句进行调整
它的执行很像SQL Tuning Advisor,但执行的分析层次却深入得多,生成的建议也更多。
1. 指定一个存放输出文件的目录
|
1
2
|
--输出文件目录create directory tune_scripts as '/demo/tune_scripts'; |
2.采集,分析并给出建议
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
declare v_task_name VARCHAR2(255); v_sql_stmt VARCHAR2(4000); v_tune_sql_filename VARCHAR2(255); v_cfile_directory VARCHAR2(255);begin v_sql_stmt := 'select * from demo.txcl t where t.id = :1 '; v_task_name :='tune_demo_txcl'; v_tune_sql_filename := 'tune_demo_txcl.sql'; v_cfile_directory := 'TUNE_SCRIPTS'; dbms_stats.gather_table_stats( ownname => 'DEMO', tabname => 'TXCL', cascade => true); --dbms_advisor.reset_task(v_task_name); --分析并得到建议 dbms_advisor.quick_tune(DBMS_ADVISOR.SQLACCESS_ADVISOR, v_task_name, v_sql_stmt); --将建议输出到指定文件中 -- select * from dba_advisor_actions where task_name ='tune_demo_txcl' ; -- select * user_advisor_sqla_wk_stmts where task_name ='tune_demo_txcl' ; dbms_advisor.create_file( dbms_advisor.get_task_script(v_task_name), v_cfile_directory, v_tune_sql_filename ); --删除任务 dbms_advisor.delete_task(v_task_name); exception when others then dbms_output.put_line(sqlerrm);end;/ |
常见错误:
ORA-13600: error encountered in Advisor
QSM-00794: the statement can not be stored due to a violation of the invalid table reference filter
原因是dbms_advisor.quick_tune不支持为SYS和SYSTEM两个用户的表的顾问功能,所能要分析的表不要用这两个用户建。
Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor的更多相关文章
- 怎样使用oracle 的DBMS_SQLTUNE package 来执行 Sql Tuning Advisor 进行sql 自己主动调优
怎样使用oracle 的DBMS_SQLTUNE package 来执行 Sql Tuning Advisor 进行sql 自己主动调优 1>.这里简单举个样例来说明DBMS_SQLTUN ...
- Oracle自带工具sql优化集-SQL Tuning Advisor (使用心得体会)
如何有效的诊断和监控高负载的SQL对于DBA来说并非是件容易的事情,对SQL语句手工调优需要很多的经验和技巧, 结合个人经验常见如下问题: . 对SQL语句本身进行优化以便获得更优的 ...
- Oracle 10G强大的SQL优化工具:SQL Tuning Advisor
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; orphans: 2; widow ...
- Oracle SQL Tuning Advisor 测试
如果面对一个需要优化的SQL语句,没有很好的想法,可以先试试Oracle的SQL Tuning Advisor. SQL> select * from v$version; BANNER --- ...
- [terry笔记]Oracle SQL 优化之sql tuning advisor (STA)
前言:经常可以碰到优化sql的需求,开发人员直接扔过来一个SQL让DBA优化,然后怎么办? 当然,经验丰富的DBA可以从各种方向下手,有时通过建立正确索引即可获得很好的优化效果,但是那些复杂SQL错综 ...
- ORACLE SQL TUNING ADVISOR 使用方法
sql tunning advisor 使用的主要步骤: 1 建立tunning task 2 执行task 3 显示tunning 结果 4 根据建议来运行相应的调优方法 下面来按照这个顺序来实施 ...
- 使用ORACLE SQL Tuning advisor快速优化低效的SQL语句
ORACLE10G以后版本的SQL Tuning advisor可以从以下四个方面给出优化方案 (1)为统计信息丢失或失效的对象收集统计信息 (2)考虑优化器的任何数据偏差.复杂谓词或失效的统计信 ...
- Oracle 11g 禁用 SQL Tuning Advisor 与 auto space advisor
生产上有一套11g数据库alert.log报错ORA-16957: SQL Analyze time limit interrupt. 查询MOS相关文档Troubleshooting: ORA-1 ...
- SQL Tuning 基础概述08 - SQL Tuning Advisor
SQL调优顾问 SQL Tuning Advisor的使用案例: 1.构建测试表T 2.定义调整任务 3.修改调整任务参数 4.执行调整任务 5.监控调整任务 6.查看调整任务建议 7.删除调整任务 ...
随机推荐
- 学用纯CSS打造可折叠树状菜单
随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习.但是历史告诉我们,好的东西必将盛行,CSS3也终将也会替代CSS2,下面就和大家分享一个 ...
- angular url 传参
1.路由里配置参数operation 2.页面A跳转时带上参数 $scope.goPage = function (op) { $state.go("app.productConfigadd ...
- 二进制安装 kubernetes 1.12(五) - 运行测试实例
检查集群状态 # 在 master 上 kubectl get node kubectl get cs 注册登录阿里云容器仓库 因国内无法获得 google 的 pause-amd64 镜像,我这里使 ...
- 架构师成长之路-基于android fragment通信的面向对象的万能接口
前言 开发一个app时,常用Activity和Fragment,由于操作方便Fragment越来越受欢迎,这样就避免不了Activity和Fragment.Fragment和Fragment之间的通信 ...
- LeetCode题解之 Find the Town Judge
1.题目描述 2.问题分析 使用map set数据结构. 3.代码 int findJudge(int N, vector<vector<int>>& trust) { ...
- ERP承接新后台优惠规则问题
一.后台在哪配置优惠规则? 1.设置优惠时间段: 2.添加优惠活动: 关于自动和手动: 自动:创建后,ERP同步数据后即生效. 点餐,活动会自动生效,自动计算金额. 手动:创建后,ERP需要手 ...
- spring4笔记----UrlResource访问网络资源读取xml内容
package com.ij34.bean; import java.util.Iterator; import java.util.List; import org.dom4j.Document; ...
- [20190212]删除tab$记录的恢复3.txt
[20190212]删除tab$记录的恢复3.txt --//春节前几天做了删除tan$记录的测试,链接:http://blog.itpub.net/267265/viewspace-2565245/ ...
- iis 6,7 ftp 进行用户隔离进行权限控制,不同用户查看不同文件夹
iis 6 配置点击链接 http://www.jb51.net/article/20676.htm iis 7配置 1.建立文件夹 C:\ftp, 并增加 目录 localuser(这个是必须的名字 ...
- python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式)
python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式) 思路: 1.首先找到一个自己想要查看天气预报的网站,选择自己想查看的地方,查看天气(例:http://www.tianqi ...