外键列索引缺失的潜在性能问题一例
在实际开发过程中,外键约束帮助我们维护数据库层面完整性。虽然很多新开发的系统将这部分验证转移到应用系统层面进行,但是无论从执行效率还是代码可靠性上看,适度的外键约束设置是有益无害的。 Ora...
Version Count数目过多诊断的方法
Oracle SQL调优是我们进行应用系统调优的一个重要方面。一个SQL的书写方式、执行计划和执行时间会显著的影响到系统的投产性能。本篇我们主要聊一下SQL version count数目过多,子游标过多的问题诊断。 ...
两个小问题的实验拾零
Oracle有很多的知识细节,是需要我们平时敏于发现、勤于思考、善于积累的。这些知识看似零碎,但是是我们学习的一个重要方面。本篇权当记录两个有意思的实验。 1、远程对象依赖关系 在笔者之前...
聊聊Oracle Optimizer相关的几个参数(下)
最后我们介绍几个可能影响到Optimizer的系统参数。 7、优化参数5——optimizer_index_caching 参数optimizer_index_caching的含义在于一个估算值,就是告诉优化器当进行索引路径检索的时候,特...
聊聊Oracle Optimizer相关的几个参数(中)
我们继续来介绍可以影响Oracle Optimizer工作的若干参数。 4、优化器参数2——cursor_sharing Cursor_sharing是Oracle优化器的另一个重要参数,可能也是我们日常讨论较多的一个参数。最开始的c...
Oracle 10g数据表压缩的一些细节(下)
下面我们通过几个极端情况实验,继续分析10gR2的Compression。 3、极端情况实验(1) 那么,上面我们验证数据compress选项切换无效,是不是和我们已经分配过的记录有关系呢?我们首先建立一张...
Oracle 10g数据表压缩的一些细节(上)
在Oracle 11g中,Advanced Compression是一个重要引入的新特性。Advanced Compression针对OLTP下的数据对象、Dataguard Redo Log等进行了较大程度的优化。在笔者之前的文章中,也针对此项特性进行了浅析。&n...
从视图看Oracle对象依赖机制
在Oracle中,很多对象之间是存在着依赖关系的。比如:视图view与其包括的数据表、存储过程与其内部使用的方法等。Oracle对于对象的依赖关系,是有专门的管理机制流程的。在本篇中,我们一起来探讨这种依赖关...
高水位线HWM到底在哪儿?
高水位线是Oracle段对象的一个重要参数。对Oracle Segment对象而言,HWM(High Water Mark)标记着数据使用过的最高位置,有时也称为格式化过的数据位置。 当Oracle数据表进行FTS(全表扫描)操作的时...
手工生成AWR运行期对比报告记录
AWR(Automatic Workload Repository)报告是Oracle 10g之后推出的重要性能诊断工具。AWR是作为Statspack报告的一种有力延伸。借助AWR,我们可以方便的对Oracle数据库的特定工作时间段进行性能分析评价,最终...
Oracle 11g DRCP连接跟踪配置
数据驻留连接池(Database Resident Connection Pool)是Oracle 11g推出的新特性。借助DRCP,Oracle Database Server可以向前端应用或者前段中间件提供高效的连接访问。在前端不具有条件使用数据库连接池,并...
Oracle 11g DRCP配置与使用(下)
上篇中,我们探讨了基本配置DRCP的方法和使用细节。本篇我们继续来探讨配置参数细节和各方面指标内容。 4、配置DRCP关键参数 在dba_cpool_info视图中,我们可以查看到相应的参数...
Oracle 11g DRCP配置与使用(上)
Oracle 11g推出了驻留连接池(Database Resident Connection Pool)特性,提供了数据库层面上的连接池管理机制,为应对高并发、短会话前端应用进行有益的尝试。 DRCP的配置很简单,本篇中让我们一起来...
Oracle Sequence不设置cache参数的几个潜在问题
在Oracle中,我们没有MYSQL和SQL Server可以使用的自增数据类型。大部分场景下,如果我们需要生成业务无关的(Business-Independent)主键列,序列Sequence对象是我们最方便的选择。 定义Sequence是很...
从一种强制停库方法到Oracle NFS文件锁
今天在QQ技术群中,一个朋友介绍了一种快速停库重启的方法。笔者感觉有必要研究重演一下,供来日不时之需。 1、问题简介 事情的起源是这样,一个朋友需要修改processes参数,重新启动数据库。...
浅述Oracle分布式事务概念
随着系统的复杂性不断增加,我们所面对的分布式系统渐渐增加。分布式文件系统、分布式消息队列系统等等层出不穷,在一些行业特别是互联网行业应用广泛。分布式数据库也是目前使用比较常用的分布式系统之一。...
从ITL到Undo前镜像提取实验
“多版本一致读”是Oracle数据库的一个重要特性。Oracle中,一个数据行,如果正在进行数据块修改操作,而且尚未提交。其他会话的用户select的数据是该事务修改之前的数据行数据,也就是其“前镜像”。这样,O...
从Dump数据块看ITL
在Oracle中,数据块block上存在记录事务信息的ITL(Interest Transaction List)。当一个数据库事务涉及到数据块对应的数据时,就会在当前数据块块头(block head)后面的ITL中记录上相应的信息。 本...
判断符合条件记录是否存在SQL若干
在实际开发中,我们会遇到各种访问数据表的需求。简单、高效一直是我们编写SQL语句的一个重要标准。如何用最少的系统开销,实现功能需求是我们需要关注的一个重要方面。 一个朋友问笔者:判断符合条件...
浅谈DML阻塞(下)
上面我们提到了关于普通DML操作(insert,update和delete)连带的一些blocking情况。本篇中,我们继续介绍两种连带由于DML操作引起的blocking情况。 ü 各...