SQL*PLUS下使用AUTOTRACE、sql顾问、实时sql监控
高级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监控的更多相关文章
- [转]ms sql 2000 下批量 附加/分离 数据库(sql语句)
这次公司要把MS SQL Server 2000 服务器上的数据库复制到新的服务器上面去,于是几百个数据库文件就交给我附加到新服务器上了 以前一直没接触过这方面的东西,于是果断谷歌了也百度了 找 ...
- SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@ ...
- Web安全学习笔记 SQL注入下
Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...
- Oracle 11g实时SQL监控 v$sql_monitor
Oracle 11g实时SQL监控: 前面提到,在Oracle Database 11g中,v$session视图增加了一些新的字段,这其中包括SQL_EXEC_START和SQL_EXEC_ID, ...
- 性能优化之永恒之道(实时sql优化vs业务字段冗余vs离线计算)
在项目中,随着时间的推移,数据量越来越大,程序的某些功能性能也可能会随之下降,那么此时我们不得不需要对之前的功能进行性能优化.如果优化方案不得当,或者说不优雅,那可能将对整个系统产生不可逆的严重影响. ...
- 59、Spark Streaming与Spark SQL结合使用之top3热门商品实时统计案例
一.top3热门商品实时统计案例 1.概述 Spark Streaming最强大的地方在于,可以与Spark Core.Spark SQL整合使用,之前已经通过transform.foreachRDD ...
- util包下的Date与sql包下的Date之间的转换
Java中的时间类型 java.sql包下给出三个与数据库相关的日期时间类型,分别是: Date:表示日期,只有年月日,没有时分秒.会丢失时间: Time:表示时间,只有时分秒,没有年月日.会丢失日期 ...
- PL/SQL Developer下设置“长SQL自己主动换行”
***********************************************声明*************************************************** ...
- EOS下控制台以及图形界面打印sql语句
EOS下控制台以及图形界面打印sql语句 场景需求:在eos中打印sql语句,包括数据实体,查询实体和命名sql的sql语句. 所需资源: P6spy:负责拦截sql,并打印. Sqlprofiler ...
随机推荐
- Quick Sort
class Program { static int[] a = new int[] { 6, 1, 2, 7, 9, 3, 4, 5, 10, 8 }; int n; static void Mai ...
- C# ref和out的区别
首先:两者都是按地址传递的,使用后都将改变原来参数的数值. 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所 ...
- C#中的委托,匿名方法和Lambda表达式
简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=.答案是6个Firs ...
- ORA-12518,TNS:listener could not hand off client connection
前几天在启动应用的时候,在控制台抛出了此异常信息!很明显是数据库方面的问题,不过具体是什么问题哪?百度了一下,网上关于此问题的信息还是有比较多,从异常的提示中我们也能看到是具体是和客户端的连接相关的问 ...
- c++回调
c++回调包含类函数回调和非类函数回调. 类函数回调,函数指针指向函数名称,需要带类作用域,调用时需要用到类指针. 如qt里面定义一个返回值为qbytearray的函数指针, typedef QByt ...
- yiStack平台维护
<一.> yiStack 二次封装 Iso通用发行版相关配置属性值替换1.1.yiStack AIO一体机环境根据部署子网替换修改示例如下:主要修改替换isolinux/ks-aio.cf ...
- WP8_ListBox的用法
在Windows Phone 7 Tips (5) 中曾经提到,在Windows Phone 7 中页面的布局一般分为:Panoramic.Pivot.List和Full Screen.而通常List ...
- Loadrunner:安装LR11时提示缺少vc2005_sp1_with_atl_fix_redist
[问题现象] 安装LR11时提示缺少vc2005_sp1_with_atl_fix_redist: [解决办法] 手动安装缺少的组件,LR安装包中已自带该组件,为何不自动捕捉异常去获取该自带的组件去安 ...
- leetcode 8
string类型转换为int类型,需要考虑不同的转换情况. “ 04” 转换结果 4: “ 4 43” 转换结果 4: “a@12 ” 转换结果 0: “12a” ...
- Spring MVC防御CSRF、XSS和SQL注入攻击
参考: http://www.myhack58.com/Article/html/3/7/2012/36142_6.htm http://blog.csdn.net/jasontome/article ...