Oracle Base
文章平均质量分 77
出埃及
Oracle DBA’s Road!
展开
-
CBO之半连接
半连接的定义 A semi-join is a join between two sets of data (tables) where rows from the first set are returned, based on the presence or absence of at least one matching row in the other set. The main原创 2012-05-16 23:02:47 · 345 阅读 · 0 评论 -
DML操作oracle在内部实现
对与DML操作oracle在内部按如下顺序执行: 1,相应事务分配回滚段(undo segment). 2,分配回滚段后,在回滚段头上创建事务表slot(transaction table slot). 3.创建事务表后会生出TXID(TransactionID),再将TXID分配给当前事务。这个值 指向分给事务的回滚段头上存在的事务表的准确位置。 4.事务对象的数据块载入到高速缓冲原创 2012-05-16 23:34:18 · 548 阅读 · 0 评论 -
用Partition Exchange(分区交换)卸载数据
我们有个应用每天操作相关的一张核心表t_ms_mdeia_task,此表是按天来做的List分区,分区键为monthday,列值类似于‘mmdd’,共有366个分区。 每天的数据量在3千万以上,应用的要求是只保存31天,之前的全部迁移到历史表中,用于查询。也就是说每天要把31天前那一天的数据迁移到hist表里面, 当然hist表也是分区的。 应用侧原先通过存储过程来大批量的进行删除和inse原创 2012-06-12 20:56:21 · 814 阅读 · 0 评论 -
遇到一次dead lock
遇到一次dead lock: ERROR at line 1: ORA-12801: error signaled in parallel query server P022 ORA-00060: deadlock detected while waiting for resource Current SQL statement for this session: create ta原创 2012-07-18 08:52:43 · 566 阅读 · 0 评论 -
关于数据清理时Global and Local index
此小文不讨论分区索引的其它方面如:本地非前缀索引和本地前缀索引,以及分区裁剪和分区索引的主键问题,我们看看清理数据时需要注意的地方。 经常需要清理数据,而这些表中基本都是分区表。那么,我们如何来确定那些表分区可以清理(本地索引,partition可以truncate),如果有global索引,如何确定: 创建测试表: create table test_par (vid number ,原创 2012-08-30 22:12:56 · 965 阅读 · 0 评论 -
再次遭遇cursor:pin S wait on X
采集数据画图,验证10ms bug:原创 2012-08-16 20:25:21 · 954 阅读 · 0 评论 -
How to export data to text
经常有需求,需要导出数据到文本文件,使用spool要刷屏,比较慢,那么使用utl_file是个不错的选择,可以通过如下脚本: CREATE OR REPLACE PROCEDURE expdata(filename varchar2,lsql varchar2) AS vFileName VARCHAR2(256); vFile原创 2012-08-31 22:49:31 · 646 阅读 · 0 评论 -
How to log on when SYSDBA can't connect the db?
有时候应用打电话,数据库已经Hang了,我们以DBA角色去登录的时候都无法登录,这时候该怎么办。通常,比如当归档异常,普通用户或者具有DBA角色的用户都无法登录, 这是因为通常当新的session创建一个connection的时候,会产生审计记录,那么就需要更新SEQ$表。那么这时候任何DML都将被阻塞,除非归档异常被解决或者正常。 但是,SYSDBA用户是任然能够登录,这是因为SYSDBA连原创 2012-09-06 19:06:20 · 757 阅读 · 0 评论