重建索引可能带来的问题(一)
问题一;重建后索引使用空间增大,如下测试:SQL> desc bowie Name &nb...
使用dbms_space.space_usage
记在这里,方便查找:set serveroutput on size 10000;declarev_unformatted_blocks number;v_unformatted_bytes number;v_fs1_blocks number;v_fs1_bytes number;v_fs2_blocks number;v_fs2_bytes number;v_fs3_bl...
timestamp类型转换导致不走索引的测试
在生产库上遇到一个sql走的是FTS,在一个选择性比较好的列上创建了索引后,但一直没有走索引,经过检查发现在执行计划里始终有个内部的数据类型转换的操作,(INTERNAL_FUNCTION("B")=.........,基本可以判定是由于这...
何为buffer sort?
buffer sort is an optimization -- in this case, it is buffering the resultsofthat full scan so as to avoid having to perform. LIOS on the data over andoverand over in the cartesian join. the data may ...
latch 获取失败时为什么要spin(转)
3.3.1.1 Why spin? The idea of spinning is that another process executing on another CPU may release the latch, thereby allowing the spinning process to proceed. Of course, it makes no sense to spin o...
关于一致性读的一个疑问
有个疑问,当一个session a 对block中的一行数据update后,没有commit,此时另外一个session b去读取该行数据,则session b应该是去回滚段中读取,那么这个session b是如何定位该block中是哪一行被update且没有被提...
模拟试验--延迟块清除
1.何为延迟块清除: 简单的说,在oracle的block上都有活动事务的标志的,如果一个事务commit后,由于某些block在commit之前已经写回datafile, 或者事务影响到的block数过多,则commi的时候...
限制rman备份速度
生产库在备份时占用了大量的IO资源,导致业务受到部分影响,考虑对rman的备份速度进行限制,查了一下文档,如下:I/O Read Rate of BackupsBy default, RMAN uses all available I/O bandwidth to read/write to d...
关于v$session_longops的一篇好文章(转)
在网上看到一篇介绍此视图的文章,学习一下:http://www.gplivna.eu/papers/v$session_longops.htm
version_count增加的原因(2)
当用dbms_stats对表作统计信息收集时,其中有个no_invalidate的参数,该参数有三种设置:(1)true。与该表相关的sql永不失效。(2)false。与该表相关的sql立即失效。(3)DBMS_STATS.AUTO_INVALIDATE。由oracle决...
version_count增加的原因(1)
当使用绑定变量时,如果绑定变量列的为varchar2类型,且长度变化较大时,将产生过多的version_count:SQL> create table t1(col1 varchar2(4000));Table created.SQL> declare 2 v_col1 varchar2(400...
块内行链接
在oracle 的block中,列的数量是用一个字节来表示的中,因此,一个字节所记录的最大列数为255,当超过255列时,一行记录将分成2个row piece,这就是块内行链接,参照杨版主的帖子,做了一遍Intra-Block Chaining的试...
行链接模拟及dml操作对行链接的影响
1.创建测试表,模拟行链接:SQL> create table test(a char(2000),b char(2000),c char(2000),d char(2000));Table created.SQL> insert into test values('a','b','c','d');1 row created.SQL> commit;Commit ...
outline的创建与使用
1.授权。赋予用户scott创建及执行outline的相应权限SQL> GRANT CREATE ANY OUTLINE TO SCOTT;Grant succeeded.SQL> GRANT EXECUTE_CATALOG_ROLE TO SCOTT;Grant succeeded.2. 创建outline,以下创建一个名为tes...
Transitivity
Transitivity,所谓的传递性,如下:SQL> select ... from T1, T22 where T1.col1 = T2.col13 and T1.col1 = 100;等价于:SQL> select ... from T1, T22 where T1...
STANDBY_FILE_MANAGEMENT
standby_file_management如果设置为auto,则primary端创建表空间或添加数据文件时,standby端将自动添加,反之如果设置为manual,则必须要重建standby端的控制文件SQL> create tablespace test datafile '/oracle/o...
收集直方图信息的一个注意点
先查看一下deptno列的值的情况:SQL> select deptno,count(*) from test group by deptno; DEPTNO COUNT(*)---------- ----------  ...
优化器相关环境变量
1. 查看数据库中与优化器环境相关的视图SQL> select table_name from dict where table_name like '%OPTIMIZER%';TABLE_NAME------------------------------DBA_HIST_OPTIMIZER_ENVV$SYS_OPTIMIZER_ENVV$SES_OPTIM...
用dbms_sql包以及errorstack观察cursor的处理过程
使用dbms_sql包来模拟cursor的open、parse、bind、execute、fetch、close,结合errorstack level 3,可以看到具体的cursor信息:1. openSQL> variable c1 numberSQL> variable c2 numberSQL> variable c3 numberSQ...
关于enq: TX - index contention 等待的探讨与测试
最近生产库上遭遇短时间的enq: TX - index contention 等待,导致数据库hang住:这个等待事件解释如下:Waits for TX in mode 4 also occur when a transaction inserting a row in an index has to wait for the en...