自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

47522341的专栏

在去dba的路上

  • 博客(4)
  • 资源 (29)
  • 收藏
  • 关注

原创 Cache buffer latches的形成原因分析

Cache buffer latches的形成原因分析当一个数据块被读入SGA. 这些数据块所在缓冲区的头地址(buffer headers)被挂载到链列表上(LRU, LRUW).这些连列表被挂载在hash buckets上. Oracle定义了一些cache buffer chains latches来保护这种内存结构的数据一致性读取.如下表所示.一个进程在对数据块执行add, rem

2009-08-15 11:34:00 1367

原创 动态语句长度超过32K的解决方法

 Oracle的varchar2类型最大长度为4000, PLSQL的varchar2最大长度为32767就是32K, 这也是本地动态sql语句能够处理的最大长度.如果动态sql语句过长,就没有办法在一个varchar2变量中存储整个语句,导致execute immediate本地动态sql方式无法使用。但现实中,有些时候确实会碰到超长的动态sql语句,怎么办呢?解决办法就是,使用dbms

2009-08-12 17:25:00 5217

原创 增强plsql developer的session monitor工具

增强plsql developer的session工具... 1一, 过滤器... 11.1 all session. 21.2 user sessions. 21.3 active sessions. 31.4 所有session 的当前等待... 3二, 详细资料... 42.1 游标... 42.2 sql文本... 52.3 统计表... 52.4

2009-08-11 15:32:00 5850 1

转载 connect by start with详细用法

树结构查询ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表中的数据还呈现出树型结构的联系。例如,我们现在讨论雇员信息表EMP,其中含有雇员编号(EMPNO)和经理(MGR)两例,通过这两列反映出来的就是雇员之间领导和被领导的关系。有些雇员领导另一些雇员,有些雇员被领导,还有些雇员领导一些人又被别人领导,他们之间的这种关系就是一种树结构,图1.1表示了EMP表雇员间的这种树结构。

2009-08-06 16:08:00 4051

oracle的sql脚本优化实例

oracle的sql statement优化调整实例 分析了两种可行的优化方式及优化结果。 统计信息收集

2010-10-15

使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g

VMware Server 允许您在一台物理计算机上运行多个操作系统。每个虚拟机都是一个独立的操作环境,并带有一组自己的虚拟组件,如磁盘、处理器和内存。虚拟技术在计算环境中十分有用,它允许您在同一物理主机上独立地开发和测试软件以防止数据或软件损坏。VMware 软件广泛地用于服务器整合,以降低总拥有成本并加快应用程序开发和测试周期。

2010-03-17

使用VMWare server在Oracle Enterprise Linux上安装Oracle RAC 10g(RAW磁盘管理方式)

VMware Server允许用户在一台物理计算机上运行过个操作系统。每个虚拟机都是一个独立的操作环境,并带有一组自己的虚拟组件,如磁盘,处理器和内存。虚拟技术在计算环境中十分有用,它允许用户在同一物理主机上独立地开发和测试软件以防止数据或软件损坏。VMware软件广泛地用户服务器整合,以降低总成本并加快应用程序开发和测试周期。 在本指南中,您将了解如何安装和配置两个在Enterprise Linux和VMware Server上运行Oracle RAC 10g第二版的节点。注意,本指南仅用于教学和评估的目的,oracle和其他供应商不会为本指南提供支持。

2010-03-17

statspack完整使用手册

statspack完整使用指南: 包括: statspack的安装; statspack的自动数据收集; statspack的门限调整; statspack的报表自动产生与邮件发送(aix环境下); statspack的报表详细解析.

2009-12-11

oracle数据库迁移实例01

windows环境下, db_name和instance_name都不相同的情况下的数据库迁移. 通过镜像文件实现.

2009-09-22

oracle性能监控

随着应用的深入, oracle数据库的表对象, 过程sql等往往不再按照开发人员设计时的思路运行. 所以, DBA的一个重要工作就是定期监控, 分析评价oracle数据库的性能是否依然满足客户的应用需求. 分析评价oracle数据库性能主要有数据库吞吐量, 数据库用户响应时间两项指标. 数据库用户响应时间又可以分为系统服务时间和用户等待时间两项. 因此, 获得满意的用户响应时间有两个途径: 一个是减少系统服务时间, 即提高数据库的吞吐量; 二是减少用户等待时间, 即减少用户访问同一数据库资源的冲突率. Oracle数据库性能恶化的表现基本上都是用户响应时间比较长, 需要用户长时间的等待. 而性能恶化的原因却是多种多样, 下面我们就详细描述查找出影响性能的各种可能原因的方法.

2009-08-15

oracle DBA 的职责

ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控: (1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据 库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。 (2). 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。 (3). 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。

2009-08-15

Oracle.Wait.Interface 性能调整与优化指导

Oracle.Wait.Interface 性能调整与优化指导

2009-08-15

cache buffers chain形成原因分析

当一个数据块被读入SGA. 这些数据块所在缓冲区的头地址(buffer headers)被挂载到链列表上(LRU, LRUW).这些连列表被挂载在hash buckets上. Oracle定义了一些cache buffer chains latches来保护这种内存结构的数据一致性读取.如下表所示. 一个进程在对数据块执行add, remove, search, inspect, read 或者modify之前需要首先获得cache buffers chains latch. 有两条规则跟oracle访问数据块时的cache buffers chains相关.  每一个logical read都会造成一个latch和cpu时间.  Oracle必须获得期望的latch才能执行下一个步骤.

2009-08-15

AIX系统CPU监控与评估

中央处理器是系统最快的组件之一. 在某一个时间单位内对单个程序来说保持100%的CPU占用率(也就是说空闲0%, 等待0%)超过几秒钟是很少见的. 如果监视器长时间地显示CPU占用率为100%, 则很有可能是某个程序陷入了死循环. 即使程序仅仅是占用较多资源而不是崩溃了, 也需要将他们识别出来并进行处理.

2009-08-14

AIX 系统交换磁盘空间的监控与管理

系统究竟需要多大的交换空间? 首先, 我们认为将分页空间的大小设置为RAM的两倍(以前的基本原则). 通常来说, 如果我的系统拥有超过4GB的内存, 我会按照RAM的大小来创建分页空间.在投入运行之后, 要经常监视系统, 如果看到分页空间的利用率从来都没有接近过百分之五十, 就不需要添加额外的空间. Oracle为AIX提供的文档推荐设置交换空间为RAM大小的一半加上4GB, 但是上限为32GB.

2009-08-14

AIX系统磁盘IO监控与评估

一般来说, 高的%iowait表明系统存在一个应用程序问题, 缺少内存问题或低效的IO子系统配置. 例如, 应用程序的问题可能是由于过多的IO请求而不是处理许多数据. 理解IO瓶颈并且要清楚解决瓶颈问题的关键在于提高IO子系统的效率.

2009-08-14

一个释放临时表空间实例

Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。 网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。 临时表空间的主要作用: 索引create或rebuild Order by 或 group by Distinct 操作 Union 或 intersect 或 minus Sort-merge joins analyze

2009-02-11

一个回滚段清理的实例

日前在整理数据库表空间的是否,发现最大的数据文件来自回滚段。回滚段文件undotbs1的数据文件已经达到23G。 希望清理这部分数据,但一时又无从下手。于是决定深入了解一下这部分内容。

2009-02-11

Oracle的回滚段存储内容分析

事务在执行DML操作时,会首先将相关的数据块写入数据缓冲区中,数据缓冲区中存储的是DML操作相关的完整数据块,比如我们对表中的某一个记录执行update操作,oracle会将记录所在的数据块读入数据缓冲区中。 在执行update操作之后,oracle后台进程会首先将修改前的内容(包括数据块中其他记录内容)以及scn,块信息等写入回滚段中,但这里写的时候不仅仅只是简单的块复制,而是将原来的数据块顺序写入回滚段的数据块。测试表明,在源表数据块占用空间较少的情况下(比如设置pctfree为99),对源表两个数据块中记录的修改只占用一个回滚段中的数据块(因为这时回滚段的数据块pctfree值是默认的,相对较小,一个回滚块可以存储更多的源数据块)。但如果设置源表占用空间较大,比如设置默认或者设pctfree为1,则对源表的两个数据块内容修改时,会占用回滚段中的两个数据块。 同时会将修改记录的前后内容都写入重做日志文件中(这里只写入修改前后的该记录的信息,数据块中的其他记录将不会写入重做日志)。 一旦用户对该操作执行了commit或rollback操作,回滚段内容会理解清空。 现在我们来作个测试验证上面的说法。

2009-02-11

深入解析oracle的回滚段

  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。

2009-02-11

Oracle的列转行问题

Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。 日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久没有发现很合适的方法。网络一般推荐使用union all实现。这样的一个重要问题在于会造成对数据表的重复访问,性能是个重要问题。 基于此,作者设想了另外一种实现可能性。实践证明,这种方法有效提供了查询性能。

2009-02-11

Oracle数据文件收缩实例

近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。 缩略语: ASSM:auto segement space management HWM:high water mark DBA:data block address OLTP:online transaction process OPS:oracle parallel server

2009-02-11

Logminer应用实例

Oracle logminer是oracle从8i之后提供的一个非常有用的分析工具,使用该工具可以轻松获得oracle重做日志文件中的具体内容。该工具可以分析出所有对于数据库的DML语句,9i后可以分析DDL语句,另外还可以分析得到一些必要的回滚SQL语句。 其中一个最重要的用途就是不用全部恢复数据库就可以恢复数据库的某个变化。特别适用于调试、审计或者回退某个特定的事务。

2009-02-11

从三个方面讲解如何适当优化sql

许多人在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结:

2008-12-03

索引监控设置及查看所有用户的unused indexes

首先,详细描述了索引监控的设置方法; 然后,给出了一种可以同时查看所有用户没有使用过的索引的方法。 信息全部来自metalink

2008-12-03

使用over函数实现递归汇总计算

Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。

2008-11-25

oracle的tuning技术总结

关于Oracle的性能调整,一般包括两个方面,一是指Oracle数据库本身的调整,比如SGA、PGA的优化设置,二是连接Oracle的应用程序以及SQL语句的优化。做好这两个方面的优化,就可以使一套完整的Oracle应用系统处于良好的运行状态。

2008-11-24

oracle的10053事件

Oracle 为RDBMS 提供了多种的诊断工具,诊断事件(Event)是其中一种常用、好用的方法,它使DBA 可以方便的转储数据库各种结构及跟踪特定事件的发生.

2008-11-24

trunc函数应用实例

trunc函数在日期比较和事务执行中是经常要使用到的一个函数,以前使用比较多的是忽略参数fmt的应用,这时默认返回的是距离当前最近的上一个整数日期.比如语句select trunc(sysdate) from dual;就可以返回当天的整数时间. 日前系统中有个业务处理,需要定时每小时执行一次预定义事务,开始时定义下一个执行时间为 sysdate +1/24,后来发现下一次的执行时间,oracle是在事务执行完成之后才进行计算的.本来我设想是在每个整点执行过程,结果由于事务需要执行1分钟,这样每次执行时间间隔就变成了一个小时零一分钟,顺延. 有点不爽,于是找了下资料,发现原来我们还可以使用带fmt参数的trunc函数解决这个问题,于是将执行时间修改为trunc(sysdate,'HH')+1/24于是问题解决. 下面顺便整理一下oracle文档中关于这个函数的解释.

2008-11-24

从执行计划和索引结构优化查询语句

我们知道,一般在查询语句出现性能瓶颈,需要对其进行优化时,一个比较有效的手段就是DBA通过调整sql语句的执行计划,或者建立有效索引以达到数据执行时间最短的效果.

2008-11-24

使用hint强制基于规则的查询优化

Oracle从9i开始默认的优化规则设置为choose,这时,如果对关键数据表的analyze数据不准确或者数据不存在,则可能导致oracle选择错误的执行路径,导致执行效率低下.笔者所参与的系统中,曾碰到在几个数百万条记录的表进行关联时,结果集在1000条记录之内时,执行时间超过20分钟.这种检索速度是灾难性的. 其中一个可以选择的优化方式是dba通过分析表的结构,数据量,索引结构等信息,通过hint/*ordered*/和索引hint/*index(table_name index_name)*/强制oracle的执行路径.极端情况下,这种优化可以提高的查询速度是非常可观的. 下面我们根据具体的查询来给出两种查询方式的异同.

2008-11-24

Oracle中的package对象

Oracle中的package对象是其他数据库中所不存在的特性之一,这是oracle面向对象编程的一种体现.我们可以像定义面向对象语言的对象一样定义oracle的package.并为package定义对应的属性(全局变量)和方法(function,procedure). package的全局变量在oracle编程过程中有很多有趣并非常实用的作用.比如,我们可以利用这个特性定义带参数的视图,以增加特定情况下(无法通过普通视图完成数据的筛选过程)程序的可维护性. 本文利用几个测试简单描述package的全局变量特性和用法.

2008-11-24

Oracle数据库业务优化心得

做了一大半年的业务数据库优化了,有一点感想,写出来自励一下。

2008-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除