在范围分区表上分区维护操作对全局及本地索引状态的影响(2)
5,SPLIT PARTITION5.1分区内无数据(从未插入)alter table test split partition p8 at (750) into (partition p81,partition p82);select index_name,index_type,table_name,status,partitioned fro...
在范围分区表上分区维护操作对索引状态的影响(1)
测试结论:针对范围分区索引:(1)ADD PARTITION==>增加分区不影响本地、全局索引状态(2)DROP/TRUNCATE PARTITION==>在分区内无数据时不影响本地、全局索引状态;==>在分区内有数据时全局索引unusable,本地索引...
关于在线维护
虽然部分ddl操作有online选项,但仍然可能持有较高级别的锁,只是缩短持有时间,在系统负载较高时风险较高。特别是在线操作使用相对较少,碰到bug的机会大大增加。 原则是,不到迫不得已,不可使...
like运算符是否能使用反转索引
在白鳝的《像ORACLE一样思考》中提到,like '%A' 并不能使用反转索引,验证如下。--版本select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g En...
表上新增列持有的TM锁
问题:如果表中数据量太大,在表上新增/删除列时将耗费较长时间(阻塞表的正常dml操作).对于alter table add(x int default 0),优化的方案是分三步执行:第一步,先添加列,alter table add(x int),可以在很短时间内完...
维护表上外键持有的TM锁
问题:如果表中数据量太大,在创建外键时将耗费较长时间(阻塞子表/父表上的正常dml操作).优化的方案是分两步执行:第一步先创建novalidate的外键,可以在很短时间内完成;第二步将该外键validate,虽然耗时较长,由于...
Oracle11.2新特性之listagg函数
Oracle11.2新增了LISTAGG函数,可以用于字符串聚集,测试如下:1,版本SQL> select * from v$version; BANNER--------------------------------------------------------------------------------Oracle Databa...
索引维护时持有表上的TM锁
在维护索引过程中,需要获取表上的TM锁,情况如下:* create index/alter index rebuild操作: 持有表上mode=4的TM锁* create index online/alter index rebuild online操作: 依次获取表上如下TM锁:mo...
数据块内事务槽不足导致数据块锁
在数据块内事务槽不足或没有空间扩展时,对同一个数据块内数据行的dml操作将表现为“数据块锁”,等待事件为“enq: TX - allocate ITL entr”,验证如下。1,测试表准备[oracle@bnet95 udump]$ sqlplus mh/mhSQL*P...
使用treedump事件查看索引结构
可以使用如下事件获取索引结构:alter session set events 'immediate trace name treedump level obj#';测试如下:[oracle@bnet95 udump]$ sqlplus mh/mhSQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 19 ...
直接路径插入持有表上的排他锁
在直接路径插入时,会持有表上的排他锁;表上的排他锁,会严重影响系统并发操作。持有排他锁验证如下。1,测试数据准备[oracle@bocnet95 udump]$ sqlplus mh/mhSQL*Plus: Release 10.2.0.1.0 - Production on Mon F...
使用全表扫描缓存大表的相关问题
问题:有一个批量操作,需要依次更新一个大表的大部分数据,而数据库buffer cache足够大,可以容纳该表.是否可以通过并行全表扫描(db scattered read)将该表读入buffer cache,避免单块读取(db sequential read)导致...
没有索引的外键
在更新或删除父表主键时,如果外键上无索引,会导致子表上应用一个mode=4的表级锁(仅在语句执行期间存在,与事务无关);而如果外键上有索引,只会在子表上应用一个mode=2的表级锁。下面通过10704事件跟踪验证。1,...
DBMS_FGA简介
Oracle FGA介绍:全称是Fine-Grained Audit ,是Audit的一种特殊方式.使用FGA只要调用Oracle的包DBMS_FGA.ADD_POLICY创建一些policy(审计策略)就行.每个policy只能针对一个表或视图,建好策略后所以对表或视图的DML...
影响检查点频率的参数
影响检查点频率的参数有多个,介绍如下:1,log_checkpoint_interval该参数通过指定增量检查点与最后一次重做日志写之间的重做日志块个数,控制检查点频率.这里的块指操作系统物理块,而不是数据库块.无论该参数如何设...
初始化参数archive_lag_targe
archive_lag_target控制日志切换/归档最长时间间隔/频率的参数。* 该参数通过指定最长日志切换时间间隔,限制最大可丢失日志数据,达到增加备库(standby database)的可用性的目的.* 设置为0关闭了该特性.* 该参数单位...
sqlplus注释问题
问题:投产脚本中如下sql没有执行:update test set x=2; --abc经分析为注释导致的问题。测试验证如下:1,使用sqlplus执行[bnet@SHPAM013:/bnet]$ sqlplus bnet303/bnet303@orau10gSQL*Plus: Release 10.2....
关于v$db_object_cache
关于对象缓存大小的视图有多个,介绍如下.1,DBA_OBJECT_SIZE给出了各种PL/SQL对象的大小.SQL> select * from v$version; BANNER----------------------------------------------------------------Oracle Data...
rename导致的library_cache_pin
1,现象:执行rename a to b时,如果a不存在时,系统挂起。Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as bnet@DEV95SQL> alter table payee_act_cor rename to tmp_payee...
rename导致的library_cache_pin
1,现象:执行rename a to b时,如果a不存在时,系统挂起。Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as bnet@DEV95SQL> alter table payee_act_cor rename to tmp_payee...