行列转换
drop table test;create table test(name varchar2(10),val varchar2(10));insert into test values('aaa',20);insert into test values('aaa',30);insert into test values('aaa',40);insert into test values('aaa',50);insert into test values('aaa',60);insert into test values('bbb',15);insert into test values('bbb',25);insert into test values('bbb',35);insert into test values('ccc',12);insert into test values('ccc',22);select * from test;select Name,sum(decode(tmp.rn,1,val)) val1,sum(decode(tmp.rn,2,val)) va
采用oracle10g的impdp定时同步两数据库
两台数据库服务器,机器名为SMSA和SMSB,一台阵列。由于阵列容量挺大,因此划分为两个区,分别连到两台主机,供两台主机使用。其中,备机SMSB做为报表数据库服务器,并且需要每天同步一次。服务器操作系统都为redhat5,数据库都为oracle10g(10.2.0)。以下介绍如何报表服务器一天同步一次数据。所有的执行文件将存放到<span lang="EN-US" style="FONT-SIZE: 12pt; LINE- [@more@]
oracle10g全文索引
一、验证是否有ctxsys用户和ctxapp角色登录oracle检查ctxsys用户:$sqlplus /nologsql>conn / as sysdbasql>select username from all_users;如果没有该用户则,根据第二部安装选配件。如果已经有了这个用户,而如果是锁定状态的话,则把该用户解锁。二、安装选配件如果没有ctxsys用户,则在oracle用户中使用dbca安装选配件:1,打开dbca,选择Configure Database Options$dbca 2,在以下界面中选择所有数据库组件 3,点击Next进行安装。 三、安装成功后则可以查看到有ctxsys用户和ctxapp角色四、使用ctxsys用户登录后,授予sms用户
采用全文索引解决模糊查询速度慢的问题
众所周知,使用 like 进行模糊查询速度极差,包括 like 'AAA%' ,like '%AAA',like '%AAA%',like '%A%A%'以及采用“_”进行单字符匹配的那些模糊查询。网上有很多文章讲到如何提高like查询,提到 like 'AAA%'能够使用到索引,而like '%AAA' ,使用创建反向函数的索引来提高查询效率。但一般情况下,是无法约定客户端采用哪种like查询,难道说把所有的这些情况都进行if判断吗?为这个事情脑袋疼了无数次。最近,一客户“无理”要求对用户地址模糊查询速度太慢。在数十万的用户记录下查询,要求5秒之内必须查询到记录。想破脑袋还是找不到
重建temp表空间
shutdown immediatestartupcreate TEMPORARY tablespace TEMP2 TEMPFILE 'D:ORADATASMSDBTEMP02.DBF' size 5M reuse autoextend on next 10M;ALTER DATABASE DEFAULT TEMPORARY TABLESPACE "TEMP2";DROP TABLESPACE TEMP;host del D:ORADATASMSDBTEMP01.DBF;create TEMPORARY tablespace TEMP TEMPFILE 'D:ORADATASMSDBTEMP01.DBF' size 512M reuse autoextend on next 10M;ALTER DATABASE DEFAULT TEMPORARY TABLESPACE "TEMP";DROP TABLESPACE TEMP2;host del D:ORADATASMSDBTEMP02.DBF;[@more@]
IBM P570 小型机AIX5.3系统安装ORACLE9i
IBM P570 小型机AIX5.3系统安装ORACLE9i (图略) 数据库系统安装概叙 本文写在Oracle安装完后,根据实际安装情况写的操作小节。详细叙述了安装过程中的每一个步骤。 硬件系统为 IBM P570 小型机,配两块硬盘; 阵列为IBM DS4300 2T 7块硬盘,每块146G,其中6块做raid5,另一块待机;操作系统为AIX5.3;数据库为 Oracle9201; 一、查看现有物理卷,显示与存储磁盘的对应关系#lspv注:这里列举的是已经安装好了的数据库机器中的信息,其中小型机上有两块硬盘,为hdisk0和hdisk1,而hdisk2为阵列。 二、查看卷组,显示
重建UNDO表空间
UNDO表空间会在大表导入数据时变的很大,有时候会霸占着大量的磁盘空间。为了有效利用系统资源,可以重建UNDO表空间:SQL>conn sys/sms@smsdb as sysdba SQL>create undo tablespace UNDOTBS2 datafile 'C:oracleoradatasmsdbUNDOTBS02.DBF'size 1M extent management local;SQL>alter system set undo_tablespace=UNDOTBS2;SQL>drop tablespace UNDOTBS1 including contents;SQL>shutdown immediateSQL>host del C:oracleoradatasmsdbUNDOTBS01.DBF;SQL>startupSQL>create undo tablespace UNDOTBS1 datafile 'C