使用Oracle分析函数去除重复记录
1、创建个实验表create table t (a number);insert into t values(1);insert into t values(1);insert into t values(1);insert into t values(2);insert into t values(2);insert into t values(3);commit;2、可以使用下列SQL去除重复记录delete t where rowid in( select rowid,a,b from ( select a,lead(a,1) over (partition by a order by a) as b from t ) where a=b);[@more@]
数据库从文件系统转移至ASM实验记录
实验环境:WinXP SP2数据库版本:10.2.0.1准备迁移的数据库实例名:TESTASM实例名:+ASMASM磁盘组:+TEST创建ASM实例和磁盘组的步骤这里不再重复,请参考:http://woodnan.itpub.net/post/37055/458037 注:由于itpub的blog会屏蔽反斜杠,以下反斜杠都用斜杠代替了[@more@]Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:/WINDOWS>set ORACLE_SID=testC:/WINDOWS>sqlplus "/as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on Thu Mar 27 20:56:54 2008Copyright (c) 1982, 2005, O
使用普通文件创建ASM实例
平台:WinXP SP2数据库版本:10.2.0.1注:由于itpub的blog会屏蔽反斜杠,以下反斜杠都用斜杠代替了实验需要perl建立文件来模拟asm磁盘,perl解析器可以从下面的地址下载http://www.skycn.com/soft/1211.html1、建立以下perl脚本,创建4个200m的文件模拟4块asm磁盘,脚本保存为h:/asmdisk.txt[@more@]my $s='0' x 2**20;open(DF1,">h:/asmdisks/_file_disk1") || die "Cannot create file - $!n";open(DF2,">h:/asmdisks/_file_disk2") || die "Cannot create file - $!n";open(DF3,"&
Oracle10g BIGFILE表空间带来的好处
Oracle10g引进了一个新的表空间类型(BIGFILE)。它不像传统的表空间那样最多由1022个文件组成;一个BIGFILE表空间只包含一个数据文件,根据选择的块的大小,最大从32TB至128TB。BIGFILE带来的最大好处就是管理上的简化,可以使用alter tablespace进行表空间的管理,比如:[@more@]SQL>create bigfile tablespace test_big datafile 'F:ORACLEPRODUCTORADATATESTtest_big.dbf' size 10m;Tablespace created.SQL>alter tablespace test_big resize 1m;Tablespace altered.普通(SMALLFILE)表空间是不可以这样管理的SQL>alter table
使用dbms_stats但不生成histogram的方法
由于应用开发的问题,数据库存在大量的SQL硬解析,性能出现很大问题。考虑设置参数cursor_sharing=similar解决硬解析问题,但是10g在自动收集统计值会默认收集histogram,依然会影响SQL的解析性能。此问题可以使用下列方法解决:修改默认收集模式,依然使用10g自动收集统计值的功能exec dbms_stats.set_param('method_opt','for columns null');[@more@]
Oracle常用dump命令
Oracle常用dump命令,记录一下备查[@more@]一.Memory Dumps1).Global AreaALTER SESSION SET EVENTS 'immediate trace name global_area level n';1 包含PGA2 包含SGA4 包含UGA8 包含indrect memory2).Library CacheALTER SESSION SET EVENTS 'immediate trace name library_cache level n';1 library cache统计信息2 包含hash table histogram3 包含object handle4 包含object结构(Heap 0)3).Row CacheALTER SESSION SET EVENTS 'immediate trace name row_cache level n';1 row cache统计信息2 包含hash table histogram8 包含object结
List of X$ Tables and how the names are derived
X$表名太不容易记忆了,记录一下备查[@more@][K]ernel Layer [2]-Phase Commit [G]lobal [T]ransaction [E]ntry X$K2GTE - Current 2PC tx X$K2GTE2 - Current 2PC tx [C]ache Layer [B]uffer Management Buffer [H]ash X$BH - Hash Table Buffer LRU Statistics X$KCBCBH - [C]urrent [B]uffers (buckets) - lru_statistics X$KCBRBH - [R]ecent [B]uffers (buckets) - lru_extended Buffer [WAIT]s X$KCBWAIT - Waits by block class X$KCBFWAIT - Waits by File [W]orking Sets - 7.3 or higher X$KCBWDS - Set [D]escriptors [C]ontro
Truncate table对x$bh的影响
今天在做实验的时候发现:truncate table后x$bh不会再记录对此table块的访问,具体实验如下:[@more@]SQL>create table t3 ( a number);Table created.SQL>select object_id from dba_objects where object_name='T3';OBJECT_ID ---------- 51560 SQL>select obj,tch,dbarfil,dbablk from x$bh where obj=51560;OBJ TCH DBARFIL DBABLK ---------- ---------- ---------- ---------- 51560 2 1 60465 SQL>insert into t3 select level from dual connect by level<=1000;1000 rows created.SQL>select obj,tch,dbarfil,