高级SQL优化(三) 常用优化工具 ——《12年资深DBA教你Oracle开发与优化——

高级SQL优化(一) ——《12年资深DBA教你Oracle开发与优化——性能优化部分

1 autotrace

set autotrace on

2 使用SQL调优顾问

删除掉bigtab和smalltab上的所有索引:

declare

my_task_name varchar2(30);

my_sqltext clob;

begin

my_sqltext := 'select count(*) from bigtable a, smalltable b where a.object_name=b.table_name';

my_task_name := DBMS_SQLTUNE.create_tuning_task(

sql_text => my_sqltext,

user_name => 'ZJ',

scope => 'COMPREHENSIVE',

time_limit => 60,

task_name => 'bigtable_jointo_smalltab_sql',

description => '优化smalltable 和 bigtable连接的例子');

Dbms_Sqltune.execute_tuning_task(task_name => 'bigtable_jointo_smalltab_sql');

end;

创建完成后验证是否完成:

select task_name,status from user_advisor_log where task_name = 'bigtable_jointo_smalltab_sql';

也可以通过SQL语句来查看结果,此方法是我们最喜欢的方法:

select dbms_sqltune.report_tuning_task('bigtable_jointo_smalltab_sql') from dual;

/*  依据优化结果创建索引*/

create index idx_smalltable_tablename on smalltable(table_name) tablespace users;

create index idx_bigtable_tablename on bigtable(object_name) tablespace users;

3  实时SQL监视

实时SQL监视(real-time SQL Monitorning)是Oracle 11g的另外一个新功能,其作用是允许用户监视正在执行的SQL。默认情况下,当使用并行查询、或者当SQL执行的CPU或I/O超过5秒钟时会自动启动。

也可以使用优化提示强制使用实时SQL监视功能,如下:

select /*+ monitor */

count(*)

from bigtab a, smalltab b

where a.object_name = b.table_name

如果要强制不使用实时SQL监视功能,则也可以使用优化提示:

select /*+ no_monitor */

count(*)

from bigtab a, smalltab b

where a.object_name = b.table_name

与实时SQL监视相关的系统视图包括:

uV$SQL_MONITOR

uV$SQL_PLAN_MONITOR

uV$ACTIVE_SESSION_HISTORY

uV$SESSION

uV$SESSION_LONGOPS

uV$SQL

uV$SQL_PLAN

对于刚刚监视的结果,可以使用DBMS包读取:

select dbms_sqltune.report_sql_monitor from dual;

SQL*PLUS下使用AUTOTRACE、sql顾问、实时sql监控的更多相关文章

  1. [转]ms sql 2000 下批量 附加/分离 数据库(sql语句)

    这次公司要把MS SQL Server 2000 服务器上的数据库复制到新的服务器上面去,于是几百个数据库文件就交给我附加到新服务器上了   以前一直没接触过这方面的东西,于是果断谷歌了也百度了  找 ...

  2. SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据

    ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@ ...

  3. Web安全学习笔记 SQL注入下

    Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...

  4. Oracle 11g实时SQL监控 v$sql_monitor

    Oracle 11g实时SQL监控: 前面提到,在Oracle Database 11g中,v$session视图增加了一些新的字段,这其中包括SQL_EXEC_START和SQL_EXEC_ID, ...

  5. 性能优化之永恒之道(实时sql优化vs业务字段冗余vs离线计算)

    在项目中,随着时间的推移,数据量越来越大,程序的某些功能性能也可能会随之下降,那么此时我们不得不需要对之前的功能进行性能优化.如果优化方案不得当,或者说不优雅,那可能将对整个系统产生不可逆的严重影响. ...

  6. 59、Spark Streaming与Spark SQL结合使用之top3热门商品实时统计案例

    一.top3热门商品实时统计案例 1.概述 Spark Streaming最强大的地方在于,可以与Spark Core.Spark SQL整合使用,之前已经通过transform.foreachRDD ...

  7. util包下的Date与sql包下的Date之间的转换

    Java中的时间类型 java.sql包下给出三个与数据库相关的日期时间类型,分别是: Date:表示日期,只有年月日,没有时分秒.会丢失时间: Time:表示时间,只有时分秒,没有年月日.会丢失日期 ...

  8. PL/SQL Developer下设置“长SQL自己主动换行”

    ***********************************************声明*************************************************** ...

  9. EOS下控制台以及图形界面打印sql语句

    EOS下控制台以及图形界面打印sql语句 场景需求:在eos中打印sql语句,包括数据实体,查询实体和命名sql的sql语句. 所需资源: P6spy:负责拦截sql,并打印. Sqlprofiler ...

随机推荐

  1. [ Office 365 开发系列 ] 开发模式分析

    前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...

  2. CISCO动态VLAN配置

    一.基于VMPS的动态VLAN配置实例 网络中VLAN实现分为静态 VLAN和动态VLAN.静态VLAN又被称为是基于端口的VLAN.顾名思义,就是明确指定各端口属于哪个VLAN的设定方法,交换机中某 ...

  3. Android基础总结(12)——XML和JSON解析

    XML和JSON解析 在网络上传输数据时最常用的格式有两种:XML和JSON.本文主要就是学习如何对这两种常用的数据格式进行解析. 1.XML和JSON的定义 XML:扩展标记语言 (Extensib ...

  4. 使用SurfaceView播放RGB原始视频-2016.01.22

    1 程序代码 使用Android中的SurfaceView播放RGB视频数据,SufaceView播放代码如下: package com.zhoulee.surfaceviewdemo; import ...

  5. sql server 2008 R2 配置开启远程访问

  6. dell N1500 安全配置

    http://www.dell.com/Support/Article/us/en/19/HOW10832 Setting a management IP address A reachable IP ...

  7. WP_图片管理机制/异步读取网络图片

    项目有这样的需求, 要求窗口加载一揽子图片,为了不让UI阻塞太久,采用异步读取后绑定显示的方案. 图片的下载应该采用并发的过程(等待网络响应会很耗时,一张一张的下载,等待时间太长) 图片的下载不能占用 ...

  8. leetcode 8

    string类型转换为int类型,需要考虑不同的转换情况. “   04”  转换结果   4: “   4   43”  转换结果  4: “a@12 ”   转换结果    0: “12a”   ...

  9. [my]_ubuntu12.10_/etc/apt/sources.list

    deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb-src http://mirror ...

  10. poj3692_Kindergarten

    这题目大意是:男孩互相认识,女孩互相认识,一部分男女之间认识,老师要选一部分人,要求这部分人必须都相互认识. 这是一个二部图,先求出补图,在补图中G‘左右两点有连线说明在G中两者不认识,反之成立. 所 ...