博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

08 2012 档案

摘要:SELECT d.undo_size/(1024*1024) "ACTUAL UNDO SIZE [MByte]", SUBSTR(e.value,1,25) "UNDO RETENTION [Sec]", (TO_NUMBER(e.value) * TO_NUMBER(f.value) * g.undo_block_per_sec) / (1024*1024) "NEEDED UNDO SIZE [MByte]" FROM ( SELECT SUM(a.bytes) undo_size FROM v$datafile a, v$ta 阅读全文

posted @ 2012-08-31 15:08 徐正柱- 阅读(630) 评论(0) 推荐(0) 编辑

摘要:调整Oracle应用系统性能的原则和方法 转载 来源: 中国IT实验室 作者: 未知 摘要:通过探讨和研究Oracle服务器和Client/Server的特点和原理,阐述了提高、调整Oracle应用系统性能的一些原则和方法。 关键词:Oracle;客户/服务器;系统全程区;网络I/O;回滚段。 Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显著下降的问题,为了解决这个问题,从以下几个方面:数据库服务器、网络I/O、应用程序等对整个系统加以调整,充分发挥Oracle的效能,提高整个系统的性能。 1 阅读全文

posted @ 2012-08-31 14:32 徐正柱- 阅读(429) 评论(0) 推荐(0) 编辑

摘要:在实际工作中经常要看某个sql语句的执行计划,例如: 在sqlplus使用命令SET AUTOTRACE ON后,执行计划显示如下: SQL>set autotrace on SQL> select count(*) from emp; COUNT(*)---------- 12 Execution Plan---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 2 1 TABLE ACCESS (FULL) 阅读全文

posted @ 2012-08-29 17:48 徐正柱- 阅读(1239) 评论(0) 推荐(0) 编辑

摘要:本篇主要内容如下:1 触发器类型 1.1 DML触发器 1.2 替代触发器 1.3 系统触发器2创建触发器 2.1 触发器触发次序 2.2 创建DML触发器 2.3 创建替代(INSTEAD OF)触发器 2.3 创建系统事件触发器 2.4 系统触发器事件属性 2.5 使用触发器谓词 2.6 重新编译触发器3删除和使能触发器4触发器和数据字典5 数据库触发器的应用举例 触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。1触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要 阅读全文

posted @ 2012-08-29 15:41 徐正柱- 阅读(353) 评论(0) 推荐(0) 编辑

摘要:转摘:http://www.cnblogs.com/preftest/archive/2010/11/14/1876856.html1、监控等待事件select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*)from v$session_wait group by event order by 4;Lock wait occur when a session attempts to acquire a lock that is already held by another 阅读全文

posted @ 2012-08-27 16:48 徐正柱- 阅读(13058) 评论(2) 推荐(1) 编辑

摘要:Top 10 by Buffer Gets:set linesize 100set pagesize 100SELECT * FROM(SELECT substr(sql_text,1,40) sql, buffer_gets, executions, buffer_gets/executions "Gets/Exec", hash_value,addressFROM V$SQLAREA WHERE buffer_gets > 10000ORDER BY buffer_gets DESC)WHERE rownum <= 10;Top 10 by Physical 阅读全文

posted @ 2012-08-16 17:55 徐正柱- 阅读(807) 评论(0) 推荐(0) 编辑

摘要:Oracle Hint Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Oracle提供给DBA用来分析问题的工具 。在SQL代码中使用Hint,可能导致非常严重的后果,因为数据库的数据是变化的,在某一时刻使用这个执行计划是最优的,在另一个时刻,却可能很差,这也是CBO 取代RBO的原因之一,规则是死的,而数据是时刻变化的,为了获得最正确的执行计划,只有知道表中数据的实际情况,通过计算各种执行计划的成本,则其最优,才是最科学的,这也是CBO的工作机.. 阅读全文

posted @ 2012-08-11 17:05 徐正柱- 阅读(469) 评论(0) 推荐(0) 编辑

摘要:ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。有一点希望不要产生误解,开启ROW Movement并不会导致发生Row Migration时修改记录的Rowid。 ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。这一特性默认是关闭,只是在使用到一些特殊功能时会要求打开。除了之前提到的更新Partition Key,还有2个要求打开的ROW MOVEMENT的功能就是flushback table和Shrink Segment。所以,只有当使用到以上3个功.. 阅读全文

posted @ 2012-08-08 11:13 徐正柱- 阅读(2111) 评论(0) 推荐(1) 编辑

摘要:在Oracle 9i以上,Oracle有时候会选择将B-Tree索引进行BITMAP转换来进行SQL执行,从而导致极其恶劣的执行计划。该转换由隐藏参数_b_tree_bitmap_plans决定。如果该参数为true,则进行转换,否则不进行转换。而8i里,该参数缺省为false,所以只有存在bitmap索引时才会考虑将B树索引转换为bitmap; 而到了9i里,该参数缺省为true了,则对任何索引都有可能进行bitmap转换。解决办法有两个:1.通过过对_b_tree_bitmap_plans参数调整,禁用将B-tree索引转换成位图索引 alter system set "_b_t 阅读全文

posted @ 2012-08-06 10:32 徐正柱- 阅读(740) 评论(0) 推荐(0) 编辑

摘要:分区索引分为本地(local index)索引和全局索引(global index)。其中本地索引又可以分为有前缀(prefix)的索引和无前缀(nonprefix)的索引。而全局索引目前只支持有前缀的索引。B树索引和位图索引都可以分区,但是HASH索引不可以被分区。位图索引必须是本地索引。下面就介绍本地索引以及全局索引各自的特点来说明区别;一、本地索引特点:1.本地索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区说,一句话,本地索引的分区机制和表的分区机制一样。2.如果本地索引的索引列以分区键开头,则称为前缀局部索引。3.如果本地索引的列不是以分区键开头,或者不包含分区键列, 阅读全文

posted @ 2012-08-03 15:47 徐正柱- 阅读(319) 评论(0) 推荐(0) 编辑

摘要:2011-11-25 11:37 oracle 关闭和开启归档日志一 设置为归档方式1 sql> archive log list; #查看是不是归档方式2 sql> alter system set log_archive_start=true scope=spfile; #启用主动归档 sql> alter system set log_archive_dest=''location=/oracle/ora9/oradata/arch'' scope=spfile; #设置归档路径 sql> alter system set log_ 阅读全文

posted @ 2012-08-02 12:02 徐正柱- 阅读(731) 评论(0) 推荐(0) 编辑

摘要:在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统。Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就无法完成了。而且,对于被大量DML语句访问的表,幸运的是,Oracle从9i版本开始提供了在线重定义表功能,通过调用DBMS_REDEFINITION包,可以在修改表结构的同时允许DML操作。在线重定义表具有以下功能:修改表的存储参数;可以将表转移到其他表空间;增加并行查询选项;增加或删除分区;重建表以减少碎片;将堆表改为索引组织表或相反的操作;增加或删除一个列。调用DBMS_REDEF 阅读全文

posted @ 2012-08-01 18:18 徐正柱- 阅读(375) 评论(0) 推荐(0) 编辑

摘要:Oracle的普通表没有办法通过修改属性的方式直接转化为分区表,必须通过重建的方式进行转变,下面介绍三种效率比较高的方法,并说明它们各自的特点。方法一:利用原表重建分区表。步骤:SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY, TIME DATE);表已创建。SQL> INSERT INTO T SELECT ROWNUM, CREATED FROM DBA_OBJECTS;已创建6264行。SQL> COMMIT;提交完成。SQL> CREATE TABLE T_NEW (ID, TIME) PARTITION BY RANGE 阅读全文

posted @ 2012-08-01 15:41 徐正柱- 阅读(476) 评论(0) 推荐(0) 编辑

摘要:select rowid,dbms_rowid.rowid_object(rowid) data_object_id#,dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block#,dbms_rowid.rowid_row_number(rowid) row#,b.emp_id,B.EMP_NAMEfrom dim_employee b---where b.rowid='AAAQwWAAEAAAhvfAAD' 阅读全文

posted @ 2012-08-01 11:04 徐正柱- 阅读(401) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示