- 博客(150)
- 资源 (29)
- 收藏
- 关注
原创 PL/SQL性能优化工具profiler的部署和使用
<br />摘要... 2<br />PL/SQL性能优化工具profiler的部署和使用... 2<br />产品名称,产品版本... 2<br />适用平台... 2<br />创建及维护日期... 2<br />引言... 2<br />执行环境:... 2<br />访问权限:... 3<br />用法... 3<br />简介... 3<br />描述... 3<br />先决条件... 3<br />附录1 调用范例... 4<br />测试过程创建... 4<br />调用过程脚本... 5<
2010-08-10 10:53:00
4936
原创 事务的锁定和阻塞机制
事务的锁定和阻塞机制... 21,oracle锁的分类与产生... 21.1 oracle的锁类型... 21.2 悲观封锁和乐观封锁... 21.3 阻塞... 31.4 TM锁的类型... 31.5 TX锁的类型... 52,锁相关的数据字典... 62.1 关于v$lock. 62.2 其他相关视图说明... 93,锁相关的sql statement
2010-04-06 14:19:00
3871
转载 oracle中多行聚合成字符串
CREATE TABLE t_row_str(ID INT,col VARCHAR2(10));INSERT INTO t_row_str VALUES(1,a);INSERT INTO t_row_str VALUES(1,b);INSERT INTO t_row_str VALUES(1,c);INSERT INTO t_row_str VALUES(2,a);INSERT I
2010-02-06 11:03:00
1767
1
转载 oracle的escape转义字符
定义:escape关键字经常用于使某些特殊字符,如通配符:%,_转义为它们原来的字符的意义,被定义的转义字符通常使用/,但是也可以使用其他的符号。实例:SQL> select * from t11 where name like %_%;NAME----------aa_aaaaSQL> select * from t11 where name like %/_%
2010-01-18 09:52:00
1748
原创 一个隐式转换引起的性能故障问题的解决过程
今天开发人员过来说一个每天执行上千次的procedure速度比较慢,希望能调整一下但不知如何下手。于是过去瞅了一眼,本来以为事情会比较简单。 因为思路很清晰嘛。执行步骤如下。1, 在plsql developer中新开一个sql窗口;2, 设置10046跟踪事件3, Tkprof解析跟踪结果4, 定位到故障sql后根据需要实施优化。但没想到事情还是起了点周折,前面几
2010-01-13 15:37:00
1567
转载 2008 中国首届Oracle数据库精英工程师评选电子试题
2008 中国首届Oracle数据库精英工程师评选电子试题 和答案(2008年9月3日) =========================================================== 2008 中国首届Oracle数据库精英工程师评选电子试题 和答案(2008年9月3日)作者: zhulch(http://zhulch.itpub.net)发表于: 200
2010-01-06 09:24:00
1910
转载 行迁移和行链接
转载:行迁移和行链接上一篇 / 下一篇 2009-02-13 11:29:25 / 个人分类:转载 查看( 128 ) / 评论( 0 ) / 评分( 0 / 0 ) row chain:When a row is too large to fit into any block, row chaining occurs. In this case, the Oracle d
2009-11-20 15:06:00
1274
翻译 linux环境下升级9204-9208
第一步 下载安装文件... 21.1 确认系统版本... 21.2 下载补丁... 2二, 升级准备... 4三, 升级配置... 53.1 identify the oracle9i installation. 53.2 阅读升级注意事项... 63.3 上传升级包并解压... 63.4 确认环境变量ORACLE_SID和ORACLE_HOME设置. 6
2009-11-10 15:17:00
1933
原创 connect by rownum造表
之前需要递增的数据都是使用如下的示例方式.select rownumfrom dba_objects , dba_objectswhere rownum 效率相对较差. 今天突然发现有哥们使用了如下方式, 眼前一亮.select rownumfrom dualconnect by rownum
2009-11-03 17:13:00
1382
原创 数据库迁移方案01
环境描述:源数据库Oracle服务器版本: Oracle9.2.0.8数据库名称 db_name = oradb instance_name=oradb操作系统版本: windows 2003实例安装位置: $oracle_base = e:/oracle 目标数据库Oracle服务器版本: Oracle9.2.0.8数据库名称 db_name = orc
2009-09-22 14:43:00
2668
1
原创 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
1381
原创 动态语句长度超过32K的解决方法
Oracle的varchar2类型最大长度为4000, PLSQL的varchar2最大长度为32767就是32K, 这也是本地动态sql语句能够处理的最大长度.如果动态sql语句过长,就没有办法在一个varchar2变量中存储整个语句,导致execute immediate本地动态sql方式无法使用。但现实中,有些时候确实会碰到超长的动态sql语句,怎么办呢?解决办法就是,使用dbms
2009-08-12 17:25:00
5308
原创 增强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
5894
1
转载 connect by start with详细用法
树结构查询ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表中的数据还呈现出树型结构的联系。例如,我们现在讨论雇员信息表EMP,其中含有雇员编号(EMPNO)和经理(MGR)两例,通过这两列反映出来的就是雇员之间领导和被领导的关系。有些雇员领导另一些雇员,有些雇员被领导,还有些雇员领导一些人又被别人领导,他们之间的这种关系就是一种树结构,图1.1表示了EMP表雇员间的这种树结构。
2009-08-06 16:08:00
4092
原创 dba 监控脚本
一直以来都希望能有一个合适的监控脚本,在每晚固定的时候搜集整理oracle的运行状态(比如, 日志异常, tablespace剩余空间, 运行过程中的alert信息, 以及某个时间段内的io, cpu, memory等的使用情况. 有兴趣的哥们还可以随便往里添加一些你觉得重要的内容), 并自动发送邮件给哥们. 原因无他, 首先哥们懒, 其次, 就算不懒, 每日执行重复但还颇为
2009-07-27 17:07:00
2689
原创 五, 监控oracle的等待事件
五, 监控oracle的等待事件select event, sum(decode(wait_Time, 0, 0, 1)) "Prev", sum(decode(wait_Time, 0, 1, 0)) "Curr", count(*) "Tot" from v$session_Wait group by event order by 4;5.1 等待
2009-07-22 14:49:00
15930
4
原创 六, 监控当前数据库的活动session
六, 监控当前数据库的活动session6.1 监控session的执行语句6.1.1 通过动态性能视图查找活动session的执行语句select a.SID,a.USERNAME,a.machine,a.TERMINAL,b.PIECE,b.SQL_TEXTfrom v$session a, v$sqltext bwhere b.ADDRESS = decode(a.SQL
2009-07-22 14:47:00
4116
原创 AIX进程监控与管理
AIX进程监控与管理... 2一, PS命令... 21.1 显示10个消耗cpu最多的进程... 21.2 显示10个消耗存储空间最多的进程... 31.3 按顺序显示系统中受罚的进程: 31.4 按照优先级顺序显示系统中的进程... 51.5 按处理时间为顺序显示系统中的前十个进程... 51.6 按实际内存使用的多少顺序显示系统中的前十个进程... 61.7
2009-07-18 11:20:00
7568
2
原创 AIX系统Memory性能评估
AIX系统Memory性能评估... 2一, VMM的管理简介... 21.1 空闲列表维护... 21.2 文件占用内存的比率维护... 21.3 vmstat命令显示内存中的数据页数... 3二, 使用vmstat确定内存的使用情况... 32.1 faults故障... 42.2 memory(内存) 42.3 page磁盘交换... 4三, svmon命
2009-07-18 11:18:00
3241
原创 四, 监控使用系统资源较多的用户信息
四, 监控使用系统资源较多的用户信息下述语句监控当前活动用户中, 使用cpu,逻辑读, 物理读, 解析次数较多的session的相关信息. 报表结果包括, session id, 系统pid, session状态, 正在执行的sql语句等.select se.r1, se.sid, se.spid, se.status, se.name,
2009-07-18 11:15:00
1646
原创 三, 监控用户锁
三, 监控用户锁数据库的锁有时候是比较耗费资源的, 特别是发生锁等待的时候, 我们必须找到发生等待的锁, 有可能的话, 杀掉该进程. 下面的语句将找到数据库中所有的DML语句产生的锁, 还可以发现, 任何DML语句其实产生了两个锁, 一个是表锁, 一个是行锁. 可以通过alter system kill session ‘sid, serial#’来杀掉会话.SELECT /*+ rule
2009-07-17 17:32:00
2342
原创 监控sql语句的重载率
二, 监控sql语句的重载率Sql的重载率, 就是相同的语句, 由于无法使用共享池里已经保存的执行计划而不得不重新将代码载入后执行分析,建立查询树后再进行执行的一个过程. 极端糟糕的情况下, 重载率可能接近于1 , 就是说,每一个语句都需要载入后重新执行.2.1 oracle库缓存Oracle的库缓存是内存的一个区域, 是共享池里的三个组成部分之一. 库缓存由共享SQL工作区, P
2009-07-17 15:01:00
1748
原创 一, 监控缓冲区的命中率
一, 监控缓冲区的命中率1.1 oracle的内存结构内存结构(SGA system global area)是oracle为一个实例分配的一组共享内存缓冲区, 它包含该实例的数据和控制信息. SGA在实例启动时被自动分配, 当实例关闭时被收回. 数据库的所有数据操作都通过SGA来进行. SGA中内存根据存放信息的不同, 可以分为如下几个区域.数据库缓冲区(Buffer Cac
2009-07-16 14:41:00
4566
1
原创 AIX进程监控与管理
AIX进程监控与管理... 2一, PS命令... 21.1 显示10个消耗cpu最多的进程... 21.2 显示10个消耗存储空间最多的进程... 31.3 按顺序显示系统中受罚的进程: 31.4 按照优先级顺序显示系统中的进程... 51.5 按处理时间为顺序显示系统中的前十个进程... 51.6 按实际内存使用的多少顺序显示系统中的前十个进程... 61.7
2009-07-15 16:35:00
2474
原创 AIX系统Memory性能评估
AIX系统Memory性能评估 2一, VMM的管理简介 21.1 空闲列表维护 21.2 文件占用内存的比率维护 21.3 vmstat命令显示内存中的数据页数 3二, 使用vmstat确定内存的使用情况 32.1 faults故障 42.2 memory(内存) 42.3 page磁盘交换 4三, svmon命令 53.1 memory段 63.2
2009-07-15 16:33:00
1708
1
原创 AIX系统CPU监控与评估
AIX系统CPU监控与评估... 2一, VMSTAT命令(CPU) 21.1 cpu. 31.2 kthr(内核等待) 31.3 faults故障... 41.4 memory(内存) 41.5 page磁盘交换... 5二, iostat命令... 5三, Sar命令... 53.1 实时采样和显示... 63.2 sar –P(报告每个处理器的信息)
2009-07-15 16:29:00
4499
原创 AIX交换磁盘空间
AIX交换空间管理与查看... 2一, 交换磁盘空间概念... 21.1 虚拟内存... 21.2 虚拟内存管理器(VMM) 21.3 交换(分页)空间概念... 31.4请求分页... 3二, 查看交换磁盘空间... 42.1 lsps命令... 42.2 使用vmo命令检查AIX如何处理分页空间分配... 42.3 vmstat监视分页控件的颠簸... 5
2009-07-13 14:36:00
6817
原创 oracle口令管理
1, 口令文件信息查询口令文件中存储着拥有sysdba或者sysoper权限的用户. 这里我们首先检查一下每个系统中有哪些用户拥有管理权限. 使用语句select * from v$pwfile_users可以完成这步操作.USERNAME SYSDBA SYSOPERSYS TRUE TRUECTLKF TRUE FALSE2, 查询用户的资源信息select du.us
2009-07-13 10:47:00
7022
原创 AIX系统磁盘IO性能评估
AIX系统磁盘IO性能评估... 2一, 对磁盘IO的性能考虑, 裸设备优缺点分析... 21.1 对磁盘IO的性能考虑... 21.2 裸设备的优点... 21.3 裸设备的缺点... 2二, IOSTAT工具使用... 32.1 参数与用法... 32.2 iostat报告解析... 6三, sar –d看... 7四, 使用lslv –l lvname估
2009-07-10 14:18:00
5961
原创 分析函数ratio_to_report的使用
Ratio_to_report函数Syntax 分析函数RATIO_TO_REPORT 用来计算当前记录的指标expr占开窗函数over中包含记录的所有同一指标的百分比. 这里如果开窗函数的统计结果为null或者为0,就是说占用比率的被除数为0或者为null, 则得到的结果也为0. 开窗条件query_partition_clause决定被除数的值, 如果用户忽略了这个条件, 则计
2009-06-24 09:10:00
7382
原创 oracle的多表insert操作
在一般操作中,我们可能会碰到一些相同或者雷同的数据源要插入到不同的数据表中的情况. 在oracle9i之前的版本中, 我们必须执行多次insert语句, 因此, 为了填充不同的表, 就在源表上添加了一些不必要的IO操作. Oracle9i引入了多表insert操作, 采用以下三个形式.Unconditional(无条件的): 没有任何限制地向多个表中插入给定表的数据;Pivoting: 用
2009-06-11 10:58:00
4142
转载 独家:程序员五大层次,你属于哪一层?
独家:程序员五大层次,你属于哪一层?本文发表于 2009-06-10 09:08 |8490次阅读 | 共有评论(53)条 发表评论关键词:新闻资讯 | 感谢max_yuki的提供 | 收藏这篇新闻<!--show_ads_zone(13);--><!---->软件界一个无可争议的事实是,不同程序员的效率有差别,而且差别很大。许多专家将优秀程序
2009-06-10 15:35:00
1465
原创 索引的特性与优化
一, 索引的概念... 1二, 索引的文件存储... 12.0 转储索引结构... 32.1 索引头内容分析... 42.2 索引root节点分析... 62.3 索引叶子节点分析... 7三, 如何建立最佳索引... 9何时使用索引... 9什么是最佳索引... 10最佳索引的参数(CF) 10有效使用索引的几个问题... 11四, 导致索引无效的情况
2009-06-10 15:31:00
2623
1
原创 在pldeveloper中输出超过255个的字符串
Oracle编程人员经常会在pl/developer界面中打印输出超过255个长度的字符, 正常使用dbms_output.put_line(&out_str)会产生错误提示. declare out_str varchar2(2000);begin out_str := lpad(001,1000,*); dbms_output.put_line(out_str);end;
2009-06-10 15:29:00
1455
原创 借助内存表处理复杂的oracle查询要求
借助内存表处理复杂的oracle查询要求.在日常业务处理过程中,我们经常会碰到一些非常规的查询需求, 这些需求我们或者可以借助动态语句,或者其他现有的oracle函数完成查询结果, 但效率往往差强人意. 假设我们有一个客户订单业务表{订单号, 订单客户, 订单日期, 数量, 金额}存储了订单的往来明细数据,订单表中保存最近3个月的往来明细共1000w条记录, 其中客户总量约500000.
2009-06-10 15:27:00
11360
原创 用户管理的和基于RMAN的不完全恢复
用户管理的和基于RMAN的不完全恢复执行不完全的数据库恢复操作,需要理解重做日志和archivelog进程/oracle数据库的同步和允许执行不完全恢复使用的选项.不完全恢复是出现某些类型的错误时,唯一可以使用的恢复方法.理解何时以及怎样使用不完全恢复方法是很重要的.在任何时候,只要出现了一个可以导致你不能恢复到改变以前的数据库状态的错误,就需要使用下面几种不完全恢复方法之一.Canc
2009-02-27 15:53:00
2072
1
原创 一个数据库完全一致恢复的测试实例
一个oracle数据库的恢复测试1,关闭数据库完全备份SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down. $ cp *.dbf backup1$cp control01.ctl backup12,创建表并插入数据SQL> startup
2009-02-26 17:05:00
2113
原创 RMAN冗余备份概念与方法
冗余备份概念RMAN提供了一种更谨慎的备份策略:duplexed方式备份,其实质就是在生成备份集的同时,向指定位置copy指定份数(最大不超过4)的备份集复制,以避免在灾难性事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。RMAN有三种方式的duplexed备份。在RMAN中执行backup命令时指定copies参数RMAN> backup copies 2 tab
2009-02-18 17:23:00
3352
1
转载 RMAN未使用catalog备份丢失控制文件的恢复方法
情况描述客户报告数据库故障,新来的系统管理员误操作。删掉了一些文件。具体情况是:删掉了所有重要数据文件、所有控制文件。数据库原来是归档模式,用rman备份数据,而rman 使用控制文件。幸运的是,最后一次 rman full 备份是包括了控制文件在内。系统没有设定自动备份控制文件。现在状况是数据库无法启动。 不用说,客户的备份方案不够完善,但是这时候再去说这些话责备用户有事后诸葛亮之嫌,"
2009-02-16 17:06:00
1294
原创 RMAN的配置configure
RMAN配置作用RMAN中具有一些列的默认配置,这些配置决定了备份和恢复时的一些选项,比如自动分配通道的配置;备份保留时间的配置;备份集大小的限制;启用或禁用备份优化功能;镜像复制的备份数量;是否将某个表空间排除在备份之外。修改配置是通过CONFIGURE命令。如果想恢复某项设置,我们执行如下命令configure …clear。大部分配置项的值都是To后面的内容,
2009-02-16 16:15:00
2408
使用VMWare server在Oracle Enterprise Linux上安装Oracle RAC 10g(RAW磁盘管理方式)
2010-03-17
statspack完整使用手册
2009-12-11
oracle DBA 的职责
2009-08-15
cache buffers chain形成原因分析
2009-08-15
AIX系统CPU监控与评估
2009-08-14
AIX 系统交换磁盘空间的监控与管理
2009-08-14
AIX系统磁盘IO监控与评估
2009-08-14
一个释放临时表空间实例
2009-02-11
一个回滚段清理的实例
2009-02-11
Oracle的回滚段存储内容分析
2009-02-11
深入解析oracle的回滚段
2009-02-11
Oracle的列转行问题
2009-02-11
Oracle数据文件收缩实例
2009-02-11
Logminer应用实例
2009-02-11
从三个方面讲解如何适当优化sql
2008-12-03
索引监控设置及查看所有用户的unused indexes
2008-12-03
使用over函数实现递归汇总计算
2008-11-25
oracle的tuning技术总结
2008-11-24
oracle的10053事件
2008-11-24
trunc函数应用实例
2008-11-24
从执行计划和索引结构优化查询语句
2008-11-24
使用hint强制基于规则的查询优化
2008-11-24
Oracle中的package对象
2008-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人