![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Thomas Kyte
事后诸葛亮
深入浅出!
展开
-
9i10g11g编程艺术——并发与多版本控制
1、解释热表上超出期望的I/O在生产环境中在一个大负载条件下,一个查询使用的I/O比你在测试或开发系统时观察到的I/O要多得多,而你无法解释这一现象。然后,你再在测试环境中恢复这个生产实例,却发现I/O又降下来了。先从一个非常小的表开始:u1@ORCL> create table t ( x int );表已创建。u1@ORCL> insert into t原创 2013-05-02 17:42:29 · 831 阅读 · 0 评论 -
9i10g11g编程艺术——索引
1、B*树索引如果在一个数字列上有一个索引,那么从概念上来讲这个结构可能如图:B*树索引中不存在非唯一条目。在一个非唯一索引中,oracle会把rowid作为一个额外的列追加到键上,使得键唯一。例如,如果有一个CREATE INDEX I ON T(X,Y)索引,从概念上讲,它就是CREATE UNIQUE INDEX I ON T(X,Y,ROWID)。在一个唯一索引中,根据原创 2013-05-11 09:43:15 · 910 阅读 · 0 评论 -
9i10g11g编程艺术——过程并行化
你可能经常看到,设计为串行执行的应用(一般是批处理应用)往往类似于以下过程:create or replace procedure serialisbegin for x in (select object_id id, object_name text from big_table) loop insert into t2 (id, text原创 2013-05-21 17:20:58 · 867 阅读 · 0 评论 -
9i10g11g编程艺术——数据类型
1、字符串CHAR是定长字符串,VARCHAR2是变长字符串。u1@ORCL> create table t 2 ( char_column char(20), 3 varchar2_column varchar2(20) 4 );表已创建。u1@ORCL> insert into t values ( 'Hello Wo原创 2013-05-14 15:47:45 · 824 阅读 · 0 评论 -
9i10g11g编程艺术——锁和闩
1、锁类型oracle中主要有3中类型锁:DML锁(DML lock):DML代表数据操作语言。一般来讲,这表示select、insert、update、merge和delete语句。DML锁机制允许并发执行数据修改。例如,DML锁可能是特定数据行上的锁,或者是锁定表中所有行的表级锁。DDL锁(DDL lock):DDL代表数据定义语言,如create和alter语句等。DDL原创 2013-04-30 17:05:45 · 1288 阅读 · 0 评论 -
9i10g11g编程艺术——事务
1、在循环中提交这样做的两个主要原因是:频繁的提交大量小事务比处理和提交一个大事务更快,也更高效。没有足够的undo空间。a、性能影响u1@ORCL> drop table t;表已删除。u1@ORCL> create table t as select * from all_objects;表已创建。u1@ORCL> exec db原创 2013-05-07 11:30:05 · 681 阅读 · 0 评论 -
9i10g11g编程艺术——redo与undo
1、查看undo生成的具体情况(1)创建一个空表。(2)对它做一个全表扫描,观察读表所执行的I/O数量。(3)在表中填入许多行(但没有提交)。(4)回滚这个工作,并撤销。(5)再次进行全表扫描,观察所执行的I/O数量。u1@ORCL> alter session set deferred_segment_creation = false;原创 2013-05-09 15:15:05 · 863 阅读 · 0 评论 -
9i10g11g编程艺术——分区
一、表分区机制行移动的开销比正常的update昂贵得多。因此,如果构建的系统会频繁修改分区键,而且这种修改会导致分区移动,这实在是一个糟糕的设计决策。1、区间分区分区区间是严格小于某个值而不是小于或等于某个值。CREATE TABLE range_example( range_key_column date , data varchar原创 2013-05-21 17:18:13 · 963 阅读 · 0 评论