第一篇:介绍    
    10g开始,查询优化器(Query optimizer)扩展成自动调整优化器(Automatic Tuning Optimizer).也就是扩展了功能。此时,我们就可以让它花更多时间来返回更优秀的执行计划。正常情况下,查询优化器要以最快的速度返回执行计划。与此不同的是,自动调整优化器可以花费较长的时间来产生一个高效的执行计划。它会用假设分析(what-if)来核实哪个才是最好的执行计划。sql概要其实也就是一系列的hint。

自动调整优化器是通过SQL调优建议器(SQL Tuning Advisor)来暴露给外界使用的。这个SQL调优建议器能创建一些建议,让Automatic Tuning Optimizer验证一下性能。比如建议收集遗漏或过时的对象统计,创建新索引,改变SQL语句或等。




  使用sql profile架构全图



第二篇:创建调优任务

--利用sql_id创建调优任务
set serveroutput on
declare
l_tuning_task varchar2(40);
begin
  l_tuning_task := dbms_sqltune.create_tuning_task(sql_id=>'b648tmaz9jshp');
  dbms_output.put_line(l_tuning_task);
end;
/
--利用sql文本
--利用AWR中的sql_id
--利用sql tuning set的名称--存储了一系列的SQL语句以及执行化境等信息的集合

第三篇:执行调优任务
-- 执行tuning task
begin
dbms_sqltune.execute_tuning_task('TASK_21822');
end;
/

第四篇:查看建议
select dbms_sqltune.report_tuning_task('TASK_262187') from dual;

第五篇:接受SQL概要
--有些sql概要接受不了,比如建议你加个索引,那这个建议你要接受就自己去建索引就是了,没必要在这里接受sql profile。
begin
sys.dbms_sqltune.accept_sql_profile(
task_name => 'TASK_262187',
task_owner => 'DBMGR',
name  => 'fir',
description =>'the first sql profile',
category =>'test',
replace =>true,
force_match=>true
);
end;
/
name与description是自己指定的sql概要名字与描述
category是处于管理的目的将一些SQL概要集中起来组成的一个类,默认值是default。
replace指定是否需要替换已有的sql概要,默认为false。
force_match指明文本标准化的方式,默认false。设置为true后,文本的大小写空格就不影响判断了。
无论哪个用户执行,格式化后文本一致就会自动重用已经接受的sql概要,也就是一系列的hint.

第五篇:更改SQL概要

--更改sql概要,name为sql概要名称,attribute_name可接受的值是name,descriptino,category,status
--下面的句子是disable一个sql profile,那么query optimizer就不会再用它了。
begin
dbms_sqltune.alter_sql_profile(
name => 'first_rows',
attribute_name => 'status',
value => 'disabled'
);



第七篇:激活SQL概要
要使用sql概要,
sqltune_category参数要设置,true时类别default的概要被激活,false时没有sql概要能用,或指定某类别名称。意味着一次只能用一个类别的sql概要
alter session set sqltune_category=true;
alter system set sqltune_category=true;


第七篇:移动SQL概要
从10gR2开始
创建舞台表
begin
dbms_sqltune.create_stgtab_sqlprof(
table_name =>'MYSTGTAB',
schema_name=>user,
tablespace_name=>'USERS');end;

从数据字典复制名为first_rows的SQL概要到舞台表:
dbms_sqltune.pack_stgtab_sqlprof(
profile_name =>'first_rows',
profile_category =>'TEST',
staging_table_name =>'MYSTGTAB',
staging_schema_owner=>user
);

再将sql概要复制回数据字典前必须改变它的名称,同时也对类别做改变。
dbms_sqltune.remap_stgtab_sqlprof(
old_profile_name => 'first_rows',
new_profile_name =>'first_rows_clone',
new_profile_category =>'CLONE',
staging_table_name =>'MYSTGTAB',
stging_schema_owner=>user
);

第六篇:删除SQL概要
--无论是否接受,不再需要tuning task后,最好drop掉。
dbms_sqltune.drop_tuning_task('TASK_262185');


第七篇:视图与解释

--查看sql profile。sql profile不属于某个特定的用户.
select * from dba_sql_profiles;


SQL profile纵览(10g)的更多相关文章

  1. Oracle 通过sql profile为sql语句加hint

    sql profile最大的优点是在不修改sql语句和会话执行环境的情况下去优化sql的执行效率,适合无法在应用程序中修改sql时.sql profile最常用方法大概是:--创建产生sql tuni ...

  2. SQL Profile 总结(一)

    一.前提概述 在介绍SQL Profile之前,不得不说的一个工具就是SQL Tuning Advisor:这个工具是从Oracle 10g開始引入,它的任务就是分析一个指定的SQL语句,并建议怎样使 ...

  3. SQL Profile (总结4)--使用演示示例

    前提:sql profile工具的相关视图 dba_sql_profile 10g: sys.sqlprof$attr  &  sqlprof$ 11g: sys.sqlobj$data  & ...

  4. 使用COE脚本绑定SQL Profile

    日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...

  5. 转 sql profile 绑定 litera and move profile to another db l for spa

    SQL TYPE 1:for bind value sql , first create a good plan with literal and with good  profile. then u ...

  6. 使用SQL Profile及SQL Tuning Advisor固定运行计划

    SQL Profile就是为某一SQL语句提供除了系统统计信息.对象(表和索引等)统计信息之外的其它信息,比方执行环境.额外的更准确的统计信息,以帮助优化器为SQL语句选择更适合的执行计划. SQL ...

  7. 固定执行计划-SQL PROFILE手工绑定

    固定(稳定)执行计划 你的应用的功能时快时慢,变化比较大,功能的性能能够保持一种稳定的状态,ORACLE 固定执行计划,采用以下这几种方式 oracle 9i使用 Outline oracle 10g ...

  8. 为什么需要SQL Profile

    为什么需要SQL Profile Why oracle need SQL Profiles,how it work and what are SQL Profiles... 使用DBMS_XPLAN. ...

  9. 转://SQL PROFILE

    我们经常会碰到一些线上的SQL问题,因为执行计划不对,可能需要添加HINT才能解决.但是添加HINT就意味着需要修改应用代码.一般一个应用代码的修改.测试及发布,可能需要两三个工作日才可完成.咱们数据 ...

随机推荐

  1. 找不好重现的bug的一个小技巧————守株待兔

    最近碰到一个问题就是数据库中偶尔出现一条没有id的数据,可恨的是怎么也找不到重现这个问题的原因,只好换种方式来找了,那么就是我标题所说的守株待兔方法. 因为我发现出现bug的数据库里面的数据有个字段为 ...

  2. C++ xmmp IM开发笔记(一)

    XMMP C++库采用 gloox (client) 下载地址:http://camaya.net/download/gloox-1.0.11.tar.bz2 glooxd (server) 下载地址 ...

  3. js调用.net后台事件,和后台调用前台等方法以及js调用服务器控件的方法

    http://blog.csdn.net/deepwishly/article/details/6670942  ajaxPro.dll基础教程(前台调用后台方法,后台调用前台方法) 1. javaS ...

  4. MVC OR API的接口

    MVC OR WEBAPI的接口安全 当我们开发一款App的时候,App需要跟后台服务进行通信获取或者提交数据.如果我们没有完善的安全机制则很容易被别用心的人伪造请求而篡改数据.所以我们需要使用某种安 ...

  5. g++的常用参数

    -c 编译成目标文件.o-o 指定输出文件名,输出文件名跟在-o后面,用空格分隔.如果不使用这个选项,缺省的输出文件名为a.out.-g 产生有调试信息的可执行文件-w 不产生警告信息-l 连接指定的 ...

  6. Nginx配置免费SSL证书StartSSL,解决Firefox不信任问题

    先在StartSSL上申请免费一年的SSL证书,具体过程网上很多教程.然后把申请到的key和crt文件上传到服务器,比如/usr/local/nginx/certs/. Nginx配置SSL证书 直接 ...

  7. jquery deferred

    http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html http:// ...

  8. cademy的Java习题做后感

    在cademy各种语言的hello world也做了不少,好像都差不多,先是数据类型,然后条件语句,之后面向对象,再上几个特殊对象. 以前都没有做笔记,导致ruby做完就忘光了,这次好歹写点什么,比如 ...

  9. OneAlert 入门(一)——事件流

    OneAlert 入门(一)--事件流 OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.它能以史上第 ...

  10. #ifdef __cplusplus extern c #endif 的作用

    #ifdef __cplusplus // C++编译环境中才会定义__cplusplus (plus就是"+"的意思) extern "C" { // 告诉编 ...