几种ASM与File System数据文件转移方法
Oracle从10g引入ASM全新的文件管理系统。进入11g之后,ASM+RAC+DG成为标准MAA的配置结构。简单的说,ASM就是一种软件的实现的分布式存储结构,和传统的文件系统有一定差距。 在实践中,我们会遇到ASM与File System之间文件转储过程。同文件系统不同,ASM是不能够直接访问的。本篇介绍几种实现ASM...
使用Sar实现系统监控
持续的性能监控,是进行运维、调优工作的重要环节。优质的监控工具应该具备两个层面的特性:其一是诊断的全面性,监控项目包括CPU、内存、网络等多个方面,细粒度的诊断。另一个层面是性能层面,要求监控工具对系统运行影响最小,不能由于性能监控工具带来过量负载。目前一种常用的做法,是使用操作系统自...
Oracle约束Constraint对于CBO优化器的作用
进入CBO优化器时代之后,成本计算值决定执行计划的选取已经成为主流。一条性能良好的执行计划建立在尽可能“贴切”的统计量基础上。CBO内部又经历了两个时代——IO Cost和CPU Cost,两者的区别就在于系统统计量(System Statistical)的应用。RBO时代,执行计划其实也是有评估的。RBO的执行计划评定级别不...
由于版本升级引发的SQL语句故障(续)
在之前的文章《由于版本升级引发的SQL语句故障》一文中,笔者介绍了由于版本从9i上升到10g,引起原先报表group by语句行为差异问题和解决方法。一个朋友提出另一种策略,笔者也在这里面讨论一下。 1、索引分组列 笔者文章中介绍的方法,其实大都是通过修改SQL语句或者隐含参数的策略...
由于版本升级引发的SQL语句故障
Oracle作为目前市场占有率最高的数据库服务器产品,其发展是稳定且快速的。每一个版本的变化,都会带来很多新特性、新功能。我们在使用这些特性的同时,同样也面对一个升级和迁移的问题。就SQL语句而言,这种现象是比较明显的。Oracle每一个版本都会提出一些新的函数、方法。同时,一些过去的功能也在细节...
使用append+nologging引起恢复故障实验
Oracle的nologging属性是非常容易被滥用的。在我们之前的文章中,探讨过append+nologging对于Redo Log的影响。从文章的结论看:如果我们使用append配合nologging,的确是可以减少Redo Log的生成的。但是,这样做真的有好处吗?希望减少Redo Log生成的思路无非是:Redo Log生成量少了,这样在LGWR写入的...
聊聊Append、nologging和Redo Log
刚刚接触Oracle的时候,Append+Nologging可以减少Redo Size的说法在网络上讨论的很广。各种流言频出,混淆了很多人的概念体系。之后,一些牛人自此着手,澄清了很多的概念和观点。老实说:我们不是Oracle的设计者,也没有机会研读源代码。实验看看是一种最简单、也是最直接的验证手段。本篇就一起将archive...
聊聊分区Partition——我们为什么要分区(下)
我们继续来讨论分区的动机。分区技术Partition已经脱离了原有的性能出发点,而更多的关注海量数据管理问题。本篇会集中在管理中的数据转移、生命周期管理和备份几个角度。 7、数据转移 海量数据一个很常见的模式就是ETL动作。数据分析的基础就是一系列的group汇总,针对交易业务数据...
聊聊分区Partition——我们为什么要分区(中)
上篇我们介绍了Oracle分区表在性能方面的优势,本篇集中在管理层面,讨论下管理层面的优势。 4、管理便捷性 相对于一个大数据对象(数据表、索引),分区化首先给我们带来的就是管理便捷。一个很大的数据表,无论是进行数据表重构,还是存储位置操作,都会面临连带负载问题。在生产...
聊聊分区Partition——我们为什么要分区(上)
一直想系统的聊聊分区。网络上Oracle技术中,讨论的最多的话题之一就是Partition。各种分区类型、分区组合和随之而来的各种优缺点,一直被大家讨论。但是,实际中,我们往往看到很多以偏概全、舍本逐末的分区使用现象。各种分区类型和创建语句,是很多文章探讨的中心。一些开发设计人员,甚至是DBA也感觉分区成...
Oracle中如何更新一张大表记录
SQL语句是一种方便的语言,同样也是一种“迷惑性”的语言。这个主要体现在它的集合操作特性上。无论数据表数据量是1条,还是1亿条,更新的语句都是完全相同。但是,实际执行结果(或者能否出现结果)却是有很大的差异。笔者在开发DBA领域的一个理念是:作为开发人员,对数据库、对数据要有敬畏之心,一个语...
Oracle 11g的新特性分区:System Partition
Partition分区是Oracle一直以来推出的性能、管理优化技术。在Oracle数据库技术体系中,Partition是归属在DW(Data Warehouse)体系中,也就是Oracle官方认定的处理大数据策略。 单就Partition技术本身而言,11g是一个重要的版本。一些自动化分区技术、增强策略在11g中推出。比如应用分区(Reference Partit...
Oracle 11g中的Native PL/SQL代码编译
Oracle环境中,PL/SQL是我们进行业务逻辑实现的最佳手段,同时也是和Oracle数据库本身结合的最好的语言。使用好PL/SQL本身功能,可以大幅度提高我们的工作效率。我们从最开始学习计算机和编程开始,就接触到一个概念叫做“二进制程序码”。计算机可以直接进行二进制代码的执行,就目前而言,二进制是计算机...
聊聊Forall使用的几个细节问题
Oracle PL/SQL是我们进行数据库应用开发极其方便的工具。PL/SQL的提出,是给面向集合操作的SQL和过程化程序结构之间提供一种过渡衔接。同其他程序设计语言一样,PL/SQL也存在基本的顺序、条件和循环语句结构。Forall作为For循环结构的一种变体,在PL/SQL程序优化过程中占到了很大的比重。Forall的优势在笔...
PL/SQL与DDL语句
PL/SQL是我们在Oracle环境下进行数据处理的好工具。相对于集合操作方式的SQL语句,PL/SQL则是面向过程化的开发语言,实际工作中的便利性更好。在PL/SQL代码里面,我们可以同时使用SQL语句和过程化的PL/SQL代码,两者交替使用。Oracle在处理PL/SQL代码过程中,也是使用SQL引擎和PL/SQL引擎交替处理。...
从一个小程序脚本看DB Time
从Oracle 10g开始,Oracle数据库开始进入性能度量收集、自诊断、智能调整阶段。应该说,就数据库本质特性而言,9i奠定了基础结构,之后一直到11g,Oracle的体系结构就没有发生本质性的变化。各种Oracle10g新特性中,笔者认为比较吸引人的特性是ASMM和AWR基础信息库。ASMM(Automatic Shared Memory Ma...
Rollback和Segment Allocation
在笔者刚开始写Blog的时候,花了很多精力在HWM高水位线上,也写了几篇浅显的文章。前几天又有一个朋友遇到了类似的问题,突然想到几个相关问题。实验之后,略有收获,仅供分享。 1、环境介绍 ...
从10046 Trace RAW File看Cursor
游标共享Cursor是Oracle学习过程中的一个重点和难点。Oracle的Cursor是建立在对SQL解析Parse消耗的优化上的。根据不同的内存缓存结构,我们经常可以听到诸如:硬解析Hard Parse、软解析Soft Parse和软软解析...
使用Oracle TRCA分析10046 Trace RAW文件
Oracle 10046是我们常用的一种性能诊断工具。它可以将SQL执行过程中,每个步骤操作的内容、时间和对象等细节信息记录在Trace文件里面。 10046直接生成的Trace文件我们称为RAW格式文件,RAW格式记录了...
TRCA-Trace Analyzer