Oracle RAC Load Balance
1. 客户端负载均衡配置方法是在客户端tnsnames.ora文件中设置LOAD_BALANCE=YES,当客户端发起连接时,会从地址列表中随机选取一个,把连接请求随机分散给各个实例。这个技术的最大缺点在于不能根据各个实例...
执行计划不稳定的原因分析
CBO主要的输入有3种:统计信息、环境变量和SQL语句。上面任何一种发生变化,执行计划都有可能发生变化。1. 统计信息的变化在10g和11g中,在默认情况下都有一个在晚上运行的后台job收集新的统计信息,如果没...
大话Oracle null
-->null与in:null值不会包含在in的结果集中。A105024@O02DMS1>select * from test; ID NAME---------- -------------------- &nb...
索引全扫描和索引快速全扫描的区别
1. 索引全扫描索引全扫描将会逻辑的顺序访问各个索引节点,结果集已经按照索引键值顺序排序,不需要单独排序。2. 索引快速全扫描索引块通过多块进行读取,结果集是无序的。...
Oracle直接路径加载
Oracle提供两种类型的插入语句:常规插入(conventional insert)和直接路径插入(direct-path insert),直接路径插入的目的是为了高效地加载大量的数据,它以牺牲部分功能为代价,因此受到很多的限制...
行预取(raw prefecting)和聚簇因子(clustering_factor)
行预取是指当需要从同一个数据块中读取多行时,Oracle数据库引擎只通过一次逻辑读就可以同时获取多行数据,以提高性能。一次行预取读取的行数由arraysize指定。聚簇因子表明索引中多少相邻的索引键...
游标共享(cursor_sharing)
游标共享是用来解决由于应用程序没有使用绑定变量导致游标无法共享,产生大量硬解析的问题,对应的参数是cursor_sharing,默认值是exact,即不启用游标共享特性。如果设为force,对于只有字面量不同的SQL语...
Oracle获取执行计划的方法
1. Explain planExplain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出存储到计划表中,方法如下:explain plan for select * from t;select * from table(...
Oracle查询优化器的相关参数
1. optimizer_mode该参数有两个取值,一个是all_row,适合一次性把所有结果返回的查询语句;另一个是first_rows_n,适合先返回前n行的查询语句。2. optimizer_features_enable通过配置该参数可以使升级后的...
Oracle dbms_stats包和analyze 的比较
从9i开始,Oracle推荐使用dbms_stats来收集统计信息,原因如下:1. dbms_stats可以并行运行,性能较佳;2. 对于分区表,虽然analyze有表一级的统计信息(global statistics),但是该统计信息是由分区或...
Oracle Datapump 学习
近段时间要做一个使用datapump做数据迁移的项目,正好利用这个机会复习一下datapump。1. exp/imp 于 expdp/impdp 的对比1)性能对比-- exp/imp默认采用传统路径(Conventional path)方式加载数据,性能...
Oracle11g新特性 - 快速在线新增not null字段
问题:某电信系统业务,其中有一张表有上亿条信息记录,而且很重要;要求在不停库和不锁表的情况下;对该表增加一个新的字段,如何实现。在11g以前,在表中新增一个NOT NULL字段是件十分痛苦的事情,尤其是在表...
DBMS_METADATA
1. 获取一般对象的DDL:SELECT DBMS_METADATA.GET_DDL(upper('&OBJECT_TYPE'),upper('&OBJECT_NAME'),upper('&OWNER')) from dual;2. 获取表空间的DDL:SELECT DBMS_METADATA.GET_DDL('TABLESPACE','&TABLESPACE_NAM...
Oracle内存分配经验法则
1. 在一个专用的服务器上,一般可将80%的内存分配给Oracle,而剩余20%的内存留给操作系统。2. 对于OLTP系统,一般将80%的Oracle内存分配给SGA,20%分配给PGA;对于OLAP系统,一般将50%的Oracle内存...
AWR报告
AWR的数据主要有两部分组成:1)保存在内存中的系统负载和性能统计数据,主要通过v$视图查询;2)mmon进程定期以快照(snapshot)的方式将内存中的AWR数据保存到SYSAUX表空间中,主要通过DBA_*视图访问。1...
一个利用传输表空间和分区交换技术进行数据迁移的案例
1. 案例背景Product:生产交易数据库,存放当月交易数据。其中,关键交易表按天分区。DW:交易历史数据库(数据仓库),存放历史交易数据,其中,关键交易表是按月分区。功能需求:在每个月末,将Product的交易表数...
Oracle的分区索引技术
在Oracle中,和表一样,索引也可以分区。有两种类型的分区索引,局部分区索引和全局分区索引。1. 局部分区索引局部分区索引使用LOCAL关键字创建,其分区边界与表相同,即与每个表分区相关联的都有一...
Oracle表分区技术概述
1. 范围分区(Range)范围分区是Oracle最早、最经典的分区算法,一般比较适用于按时间周期进行数据存储的表,通过范围分区,我们知道哪些数据是存在哪个分区里的,因此比较方便大规模的数据操作,如删除指定时...
一次因磁盘竞争引起的性能问题
App抱怨说OGG Hang住了,数据没有从源端及时复制到目标端,我到OGG里一看,发现有14个小时的lag,重启replicat也不行,登陆到数据库后才发现数据库中存在大量的log file sync等待事件,隐约记得引起该事件的...
复合索引的前缀性和可选性
1. 前缀性(Prefixing)复合索引的前缀性是指只有当复合索引的第一个字段出现在SQL语句的谓词条件中时,该索引才会被用到。如复合索引为(ename,job,mgr),只要谓词条件中出现第一个字段ename,就可以用复合索...