Search results for: “cost”

  • 在Oracle中如何让SELECT查询绕过UNDO

    是否有想过如何在Oracle中实现脏读(dirty read),在Oracle官方文档或者Asktom的时候显然会提到Oracle是不实现脏读的, 总是有undo来提供数据块的前镜像(before image)以维护一致性Consistent, 通过正常途径我们几乎不可能破坏Oracle中查询的一致性来实现脏读。   如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638   QQ号:47079569    邮箱:[email protected]   是否真的无计可施? 非也,非也,Oracle作为一个高度复杂而又可控的RDBMS,仍是有很多空子可以钻的。   我们先来介绍以下的2个隐藏参数: _offline_rollback_segments or _corrupted_rollback_segments 这2个隐藏参数对于熟悉Oracle数据库异常恢复或者解决ORA-600[4XXX]问题有经验的同学来说肯定不陌生,因为这2个参数是针对Undo存在Corruption讹误时忽略问题的有力工具,而大家对这2个参数实际起到的作用有多少认识呢?   我们可能在以下几种场景中用到_offline_rollback_segments 和 _corrupted_rollback_segments 这2个隐藏参数: 强制打开数据库(FORCE OPEN DATABASE) 控制一致性读和延迟块清除(consistent read & delayed block cleanout) 强制删除某个rollback segment回滚段   但是请注意:千万不要在没有Oracle专家建议的情况下,在产品环境设置以上这2个隐藏参数,可能造成数据逻辑讹误等影响!!   _offline_rollback_segments 和 _corrupted_rollback_segments 均会造成的实例行为变化: 以上2个参数所列出的Undo Segments(撤销段/回滚段)将不会被在线使用online 在UNDO$数据字典基表中将体现为OFFLINE的记录 在实例instance的生命周期中将不会再给新的事务分配使用 参数所列出的Undo Segments列表上的活跃事务active transaction将即不被回滚亦不被标记为dead以便SMON去回滚(了解你所不知道的SMON功能(五):Recover Dead transaction)…

  • 11g新特性:RDBMS Component TRACE

    11g新特性UTS TRACE是比10g中引入的KST TRACE更强力内部诊断工具, 有了UTS和KST这2现代化个debugger工具, 我们差不多可以扔掉gdb和dtrace的拐杖了。   今后会继续介绍UTS和KST TRACE的使用方法,让任何人都有机会了解Oracle的内部运行原理。   以下是UTS trace events 的列表,可以利用oradebug doc component rdbms列出:   SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE    11.2.0.3.0      Production TNS for Linux: Version 11.2.0.3.0 – Production NLSRTL Version 11.2.0.3.0 – Production SQL>…

  • 【Oracle CBO优化器】视图合并View Merging技术 _complex_view_merging & _simple_view_merging

    Oracle CBo优化器中 各优化模块如下: 相关参数了   _complex_view_merging 和 _simple_view_merging kkqvm  contains functions for merging simple SPJ, outer-joined SPJ, and complex (distinct or group by) views.   其中视图合并View Merging 主要分成2种: SPJ   Merge simple views that contains Select , Project and Join only (referred as SPJ views) CVM  views containing grouping, aggregation, distinct and outer join   •Recursively…

  • Mysql存储引擎特性比较

    下表列出了Mysql 主要数据引擎架构(如myisam、innodb Storage Engine )的特性比较:   Feature MyISAM NDB Archive InnoDB Memory Storage Limits No Yes No 64TB Yes Transactions No Yes No Yes No Locking granularity Table Row Row Row Table MVCC snapshot read No No No Yes No Geospatial support Yes No Yes Yes No Data caches No Yes No Yes NA Index…

  • Oracle中比对2张表之间数据是否一致的几种方法

    大约是2个星期前做一个夜班的时候,开发人员需要比对shareplex 数据同步复制软件在 源端和目标端的2张表上的数据是否一致,实际上后来想了下shareplex 本身应当具有这种数据校验功能, 但是还是希望从数据库的角度得出几种可用的同表结构下的数据比对方法。   注意以下几种数据比对方式适用的前提条件:   1. 所要比对的表的结构是一致的 2. 比对过程中源端和 目标端 表上的数据都是静态的,没有任何DML修改   方式1: 假设你所要进行数据比对的数据库其中有一个版本为11g且该表上有相应的主键索引(primary key index)或者唯一非空索引(unique key &not null)的话,那么恭喜你! 你可以借助11g 新引入的专门做数据对比的PL/SQL Package dbms_comparison来实现数据校验的目的,如以下演示:     Source 源端版本为11gR2 : conn maclean/maclean SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE…

  • ORA-00600:[1112]内部错误&ROW CACHE ENQUEUE LOCK一例

    一套AIX 上的9.2.0.6 2节点RAC系统出现了ORA-00600: internal error code, arguments: [1112], [], [], [], [], [], [], []内部错误伴随有ROW CACHE ENQUEUE LOCK并引发clusterware split-brain resolution,详细的日志及ass.awk输出如下:   ALERT LOG ============= Sun Jun 19 09:06:24 2011 >>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! pid=24 Sun Jun 19 09:06:29 2011 Errors in file /s01/admin/prod/udump/prod2_ora_1061088.trc: ORA-00600: internal error code, arguments: [1112],…

  • SQL调优:带函数的谓词导致CBO Cardinality计算误差

    今天处理了这样一问题,where条件中存在函数fun(date)<to_date(‘9999-01-01′,’YYYY-MM-DD’)这样的无实际意义谓词,导致CBO计算基数时cardinality远小于实际情况,导致优化器认为2个源数据集的基数都不大,从而选择了HASH JOIN Right SEMI+SORT ORDER BY的执行计划,但是由于实际基数远大于computed 计算值所以变成了大的数据集做HASH JOIN并全数据排序,而实际该SQL只要求返回几十行数据而已,使用NESTED LOOP SEMI JOIN可以立即返回排序的前20行数据。 这里就需要解释带函数的谓词时CBO如何计算基数,我们通过下面的例子来说明:     create or replace function check_date( RDATE in date) return date is begin IF rdate< to_date(‘2099-01-01′,’YYYY-MM-DD’) then return rdate; ELSIF rdate >=to_date(‘2099-01-01′,’YYYY-MM-DD’) then return to_date(‘2000-01-01’); end if; end check_date; / SQL> select check_date (sysdate) from dual; CHECK_DAT ——— 06-DEC-12 drop table tab1;…

  • 有哪些功能是DBMS_STATS无法实现而Analyze命令可以做到的?

    今天有同行问我DBMS_STATS与Analyze的区别, 我简单地介绍了一下DBMS_STATS提供了更丰富的功能,从8i开始推荐使用DBMS_STATS来完全替代Analayz Table/Index/Cluster 命令收集数据库中对象的统计信息。   之后他又问起我有那些功能是Analyze 命令可以做到,反而DBMS_STATS做不到的?   这个问题我倒是没有很系统地去考虑过, 闪过脑子的2个念头就是Analyze Table/Index validate structure 和  Analyze Table list chained rows into chained_rows 这2个命令。   Google了一下相关的信息,发现Asktom对这个已经讨论过了,从8i以后analyze被提名为具备”validate”验证功能的命令,主要负责验证表和索引的结构以及链式行(chained and migrated rows)信息; 而DBMS_STATS包负责统计信息的管理。   analyze is slated to do this and this alone at some time in the future.  analyze is destined to be the “validate” thing — analyze validate…

  • Oracle Database常见存储用语Terms

    Oracle Database常见存储用语Terms,如下: ACD = Active Change Directory ACFS = ASM Cluster File System ADDM = Automatic Database Diagnostic Monitor ADR = Automatic Diagnostic Repository ADVM = ASM Dynamic Volume Manager AIO = Asynchronous I/O AMDU = ASM Metadata Dump Utility AMM = Automatic Memory Management ARC = Archive process ASH = Active Session History ASM…

  • Exadata:Smart Scan(二) FAST FULL SCAN

    实测了以下Exadata smart scan对于INDEX STORAGE FAST FULL SCAN似乎实际并不生效,详见以下测试。不仅普通的B*tree index也包括compressed index、reverse key index等类型。 Why is my Exadata smart scan not offloading? Exadata Smart Scan and Index Access  上面2篇文章介绍了了类似的XD offload 对index fast full scan不生效的问题, 相关的BUG有: Bug 8257122 – Exadata smart scan caching does not work for INDEX FAST FULL scan (Doc ID 8257122.8)   以下测试了对NORMAL INDEX和bitmap index fast…