oracle 调优
文章平均质量分 87
bigclouder
专注于金融领域……
展开
-
表的在线重定义
一张表含有主键test,本来是存放在段空间手动管理的表空间上的,在表逐渐变大以后并发量增大以后,性能开始变差,我们就使用在线重定义的方法来重建这张表,并把这张表改造成分区表1、 准备实验环境HR@PROD> selectsegment_name,tablespace_name from user_segments where tablespace_name in('MSSM','ASSM原创 2014-05-04 09:12:07 · 809 阅读 · 0 评论 -
sqlt之一 安装篇
sqlt的安装14:44:22 sys@orcl> @/tmp/sqlt/install/sqcreate.sql14:44:37 sys@orcl> SET DEF ON ECHO ON TERM OFF null ""; zip warning: name not matched: *_sq*.logzip error: Nothing to do! (SQL原创 2015-03-27 20:28:51 · 1262 阅读 · 0 评论 -
oracle参数open_cursors和session_cached_cursor详解
我们先来看这几个参数的意义9:40:59 PM SQL> show parameter open_cursor NAME TYPE VALUE------------------------------------ ----------- ------------------------------o原创 2015-03-29 01:59:47 · 710 阅读 · 0 评论 -
优化学习之一 统计信息的放大
21:42:22 sys@skeyedb> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'TEST',estimate_percent=>100,cascade=>true,method_opt=>'for all columns size 1',no_invalidate=>false);PL/SQL proced原创 2015-03-17 22:00:54 · 522 阅读 · 0 评论 -
深入理解父游标,子游标的概念
父游标:保存HASH值,SQL文本--相同SQL语句,就只有一个父游标oracle内部是将SQL文本转化为ASCII值(大小写ASCII不同)并进行hash函数的运算父游标里主要包含两种信息:sql文本以及优化目标。父游标在第一次打开时被锁定,直到其他所有的session都关闭该游标后才被解锁。当父游标被锁定的时候是不能被交换出librarycache的,只有在解锁以后才能被交换出libr原创 2015-03-29 02:02:25 · 2883 阅读 · 0 评论 -
oracle 索引访问的几种方法
索引的全扫描跟索引的快速全扫描索引快速全扫描:从索引段头开始多块读HWM以下的所有根块、枝块、叶块,所以通过FFS读出来的数据读取顺序是由物理存储位置决定的、可能是无序的。因此在这类操作中,我们可以看到会话会大量的出现db file scattered read等待。索引全扫描:索引全扫描是根据叶节点链来进行的。进行索引全扫描首先要从根开始,找到叶节点链上的第一个数据块,然后沿着叶节点原创 2015-03-21 21:50:22 · 581 阅读 · 0 评论 -
逻辑读的概念
逻辑读的两种状态逻辑读指的就是从(或者视图从)Buffer Cache中读取数据块。按照访问数据块的模式不同,可以分为即时读(Current Read)和一致性读(Consistent Read)。注意:逻辑IO只有逻辑读,没有逻辑写。即时读即时读即读取数据块当前的最新数据。任何时候在Buffer Cache中都只有一份当前数据块。即时读通常发生在对数据进行修改、删除操作时。这时,进程原创 2015-03-28 20:56:29 · 1174 阅读 · 0 评论 -
理解full outer jion,union,union all
准备两张测试表09:41:52 kiwi@storedb1> select * from t1; ID1 I------------- - 1 A 2 B 3 CElapsed: 00:00:00.0009:41:56 kiwi@storedb1> select * from t2;I ID原创 2015-03-23 10:13:33 · 2020 阅读 · 0 评论 -
Adaptive Cursor Sharing(ACS)的研究
我们先来看看跟ACS相关的三个隐藏参数,是用来控制是否启用ACScol ksppinm for a30col ksppstvl for a20col ksppdesc for a35SELECT ksppinm, ksppstvl, ksppdescFROM x$ksppi x, x$ksppcv yWHERE x.indx = y.indx AND kspp原创 2015-03-31 22:05:22 · 713 阅读 · 0 评论 -
method_opt中参数 auto跟skewonly的区别
我们先来看官方文档中对这两个参数的解释- AUTO : Oracle determines the columns to collect histograms based on data distribution and the workload of the columns.- SKEWONLY : Oracle determines the columns to collect his原创 2015-03-31 23:51:48 · 2556 阅读 · 0 评论 -
dbms_sqltune.accept_sql_profile 中force_match的作用
dbms_sqltune.accept_sql_profile 中force_match的作用force_match的默认值为force,表示只有在sql文本完全一致的情况下才会应用sql_profile,这种情况下只要目标sql的sql文本发生一点改动,原来的profile将失去作用force_match的改为true,就相当于目标sql的where条件中的具体的输入值用绑定变量替换了原创 2015-03-26 22:53:15 · 3158 阅读 · 0 评论 -
sql_tune advisor的使用
我们现在创建一个测试表,看此时正确的执行计划13:11:53 scott@orcl> select * from t2 where empno=200;Elapsed: 00:00:00.01Execution Plan----------------------------------------------------------Plan hash value: 2原创 2015-03-26 22:16:29 · 1046 阅读 · 0 评论 -
基于rowid的表的在线重定义
在官方文档中的位置1、验证是否满足在线重定义的要求DBMS_REDEFINITION.CAN_REDEF_TABLE ( uname IN VARCHAR2, tname IN VARCHAR2, options_flag IN PLS_INTEGER := 1, part_name IN VARC原创 2014-03-23 23:53:53 · 949 阅读 · 0 评论 -
查看用户所拥有的所有权限的sql语句
select privilege from dba_sys_privs where grantee='OGG'unionselect privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='OGG' );原创 2014-06-18 15:29:21 · 4621 阅读 · 0 评论 -
我眼中的linux命令用于oracle的问题诊断——TOP命令
接触 linux 的人对于 top 命令可能不会陌生(不同系统名字可能不一样,如 IBM 的 aix 中叫 topas ),它的作用主要用来监控系统实时负载率、进程的资源占用率及其它各项系统状态属性是否正常,如下,便是一个比较繁忙的oracle生产系统的TOP截取top - 23:10:16 up 51 days, 16 min, 1 user, load average: 7.98, 9原创 2014-11-06 23:16:06 · 1542 阅读 · 0 评论 -
官方文档关于sqlt工具的介绍
215187.1 SQLTXPLAIN (SQLT) 11.4.5.3 2012 年 12 月 31 日帮 助诊断性能较差的 SQL 语句的工具SQLT 概览安全模式安 装 SQLT卸 载 SQLT升 级 SQLT常 见问题新 增功能! 主 要方法XTRACTXECUTEXTRXECXPLAIN原创 2014-10-29 09:46:08 · 3924 阅读 · 0 评论 -
生产上数据库大量的latch free 导致的CPU资源耗尽的问题的解决
中午的时候,我们生产上的某个数据库,cpu一直居高不下通过如下的sql语句,我们查看当时数据库的等待,争用的情况:select s.SID, s.SERIAL#, 'kill -9 ' || p.SPID, s.MACHINE, s.OSUSER, s.PROGRAM, s.USERNAME原创 2014-11-03 17:10:21 · 7834 阅读 · 0 评论 -
dbms_xplan函数包
dbms_xplan 函数包DISPLAY函数用户显示存储在PLAN_TABLE中的执行计划。此外,如果从视图v$sql_plan_statistics_all 可以获得该执行计划的相关统计数据。DISPLAY可以格式化输出这些数据参数描述:TABLE_NAME:存储查询计划的表名(不区分大小写),默认值为PLAN_TABLESTATEMENT_ID:SQL语句的ID。在PLAN_TABL原创 2015-01-20 16:18:46 · 627 阅读 · 0 评论 -
显示执行计划的一些方法
1、explain plan的方式显示sql语句的执行计划,不需要执行该sql,sql语句中可以包含绑定变量explain plan for select count(*) from seashell.paymentorder p, seashell.deal d where p.sequenceid = d.orderseqid and d.dealtype = 18 and p.order原创 2015-01-20 10:44:08 · 756 阅读 · 0 评论 -
手动生成sql_profile的方法
我们建立一个测试表,这是个数据分布极不均匀的表Elapsed: 00:00:00.1210:10:26 kiwi@orcl> select count(*) from test; COUNT(*)------------- 1380400Elapsed: 00:00:00.1510:12:22 kiwi@orcl> select count(*) from原创 2015-04-01 23:10:01 · 788 阅读 · 0 评论