自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

事后诸葛亮的程序人生(微信:zq9017197)

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

  • 博客(38)
  • 资源 (10)
  • 收藏
  • 关注

原创 Enqueue (队列等待)

Enqueue (队列等待):Enqueue是一种保护共享资源的锁定机制。该锁定机制保护共享资源,以避免因并发操作而损坏数据,比如通过锁定保护一行记录,避免多个用户同时更新。Enqueue采用排队机制,即FIFO(先进先出)来控制资源的使用。在Oracle 10g之前,Enqueue事件是一组锁定事件的集合,如果数据库中这个等待事件比较显著,我们还需要进一步来追踪是哪个类别的锁定引发了数据

2013-11-29 15:55:57 2061

转载 Oracle内存全面分析(12)

4.   Dump内存解析下面以shared pool为例,解释一下dump出来的内存结构。SQL> conn sys/sys as sysdbaConnected.SQL> oradebug setmypidStatement processed.SQL>  oradebug dump heapdump 2Statement processed.SQL> 

2013-11-28 16:13:44 838

转载 Oracle内存全面分析(11)

3.   内存错误处理Oracle中最常见的内存错误就是4030和4031错误。这两个错误分别是在分配PGA和SGA时,没有足够内存分配导致的。经过我们以上对Oracle内存的了解以及对内存管理机制的浅析,可以总结在这两种错误发生时,我们该如何分析和处理。3.1.            分析、定位ORA-40304030错误是由于oracle进程在内存扩展时,无法从OS获取到所需的内存

2013-11-28 16:13:14 682

转载 Oracle内存全面分析(10)

2.4.            Oracle在windows下的内存管理 2.4.1.  Windows内存系统概述Windows NT使用一个以页为基础的虚拟内存系统,该系统使用32位线性地址。在内部,系统管理被称为页的4096字节段中的所有内存。每页的物理内存都被备份。 对于临时的内存页使用页文件(pagefile),而对于只读的内存页,则使用磁盘文件。在同一时刻,最多可以有16个

2013-11-28 16:11:47 773

转载 Oracle内存全面分析(9)

2.2.            Oracle的内存的分配、回收Oracle中的共享内存区的分配都是以chunk为最小单位的。Chunk不是一个固定值,它是一个扩展段(extent)中一块连续的内存。而Oracle的内存(其他存储,如磁盘也是)的增长是以扩展段为基础的。2.2.1.   空闲列表和LRU链表空闲的chunk按照大小来组织在相应的空闲列表(Free List)中。而未pin

2013-11-28 16:11:10 730

转载 Oracle内存全面分析(8)

2.   Oracle的内存管理在这部分章节中,我们将从更底层的角度来了解Oracle的内存管理。当然,涉及到内存管理,就不可避免的要了解OS对内存的管理,在这以章节中,将谈到不少关于OS内存的管理知识。如果概念记得不清除了,可以找一本《操作系统》的书看看先。 2.1.            Oracle内存管理基础要了解内存管理,首先需要知道虚拟内存。而要了解虚拟内存,就先要知道

2013-11-28 16:10:22 689

转载 Oracle内存全面分析(7)

1.3.            UGA (The User Global Area)PGA是一段包含一个Oracle服务或后台进程的数据和控制信息的内存。PGA的大小依赖与系统的配置。在专用服务(Dedicated Server)模式下,一个服务进程与一个用户进程相关,PGA就包括了堆空间和UGA。而UGA(User Global Area 用户全局区)由用户会话数据、游标状态和索引区组成。在

2013-11-28 16:09:32 633

转载 Oracle内存全面分析(6)

1.2.            PGA (The Process Global Area)PGA(Program Global Area程序全局区)是一块包含一个服务进程的数据和控制信息的内存区域。它是Oracle在一个服务进程启动是创建的,是非共享的。一个Oracle进程拥有一个PGA内存区。一个PGA也只能被拥有它的那个服务进程所访问,只有这个进程中的Oracle代码才能读写它。因此,PG

2013-11-28 16:08:50 693

转载 Oracle内存全面分析(5)

1.1.4.7.            共享池的重要视图最后,我们再介绍关于共享池的一些重要视图·        v$shared_pool_advice这个视图与Oracle的另外一个优化建议器——共享池建议器——相关。我们可以根据这个视图里面oracle所做的预测数据来调整共享池大小。它的预测范围是从当前值的10%到200%之间。视图的结构如下字段数

2013-11-28 16:07:47 811

转载 Oracle内存全面分析(4)

1.1.4.2.            字典缓存(Dictionary Cache) 数据字典是有关于数据库的参考信息、数据库的结构信息和数据库中的用户信息的一组表和视图的集合,如我们常用到的V$视图、DBA_视图都属于数据字典。在SQL语句解析的过程中,Oracle可以非常迅速的访问(如果需要的话)这些数据字典,在SQL Trace中,这种对数据字典的访问就被统计为回调(recursiv

2013-11-28 16:06:49 643

转载 Oracle内存全面分析(3)

1.1.3.3.            Buffer Cache的重要视图关于Buffer Cache,oracle提供一些重要视图,用于查询关于Buffer Cache的重要信息,为调整Buffer Cache、提高性能提供参考。下面一一介绍它们·        v$db_cache_advice上面我们提到了Oracle的建议器,其中有一个针对Buffer Cache的建议器。在我

2013-11-28 16:05:16 817

转载 Oracle内存全面分析(2)

1.1.2.   关于SGA的重要视图要了解和观察SGA的使用情况,并且根据统计数据来处理问题和调整性能,主要有以下的几个系统视图。·        v$sga这个视图包括了SGA的的总体情况,只包含两个字段:name(SGA内存区名字)和value(内存区的值,单位为字节)。它的结果和show sga的结果一致,显示了SGA各个区的大小:SQL> select * from v$

2013-11-28 10:38:13 736

转载 Oracle内存全面分析(1)

Oracle的内存配置与oracle性能息息相关。而且关于内存的错误(如4030、4031错误)都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗:CPU和IO。 首先,看看Oracle内存存储的主要内容是什么:程序代码(PLSQL、Java);关于已经连接的会话的信息,包括当前所有活动和非活动会话;程序运行时必须

2013-11-28 10:35:22 685

转载 SQL Profiles-PartIII -- profile的控制

第二部分:profile的控制 对profile的控制比较简单:修改和删除。包DBMS_SQLTUNE提供了两个存储过程来完成这两个操作:ALTER_SQL_PROFILE和DROP_SQL_PROFILE。 BEGIN  DBMS_SQLTUNE.DROP_SQL_PROFILE(name => 'my_sql_profile');END;/1.Profile的修

2013-11-27 13:00:50 1671

转载 Maclean教你读SQL TRACE TKProf报告

Maclean教你读SQL TRACE TKProf报告2013/08/25 BY MACLEAN LIU 暂无评论在《Maclean教你读Oracle 10046 SQL TRACE》中我介绍了10046 TRACE的阅读以及其中个字段的含义, 接着我们介绍 10046 sql trace的搭档工具TKPROF。 TKPROF是一个可执行文件,自带在Oracl

2013-11-26 13:27:04 816

转载 Maclean教你读Oracle 10046 SQL TRACE

Maclean教你读Oracle 10046 SQL TRACE2013/08/22 BY MACLEAN LIU 5条评论有同学一直向Maclean反应希望做一期10046 SQL trace的教程, 正好这几天有空 我们就理一理。 为什么我们要使用10046 trace? 10046 trace帮助我们解析 一条/多条SQL、PL/SQL语句

2013-11-26 13:26:42 657

转载 Oracle10g数据库自动诊断监视工具(ADDM)使用指南

第一章ADDM简介在Oracle9i及之前,DBA们已经拥有了很多很好用的性能分析工具,比如,tkprof、sql_trace、statspack、set event 10046&10053等等。这些工具能够帮助DBA很快的定位性能问题。但这些工具都只给出一些统计数据,然后再由DBA们根据自己的经验进行优化。那能不能由机器自动在统计数据的基础上给出优化建议呢?Oracle10g中就推出

2013-11-26 13:22:56 3329

原创 如何用 SQL Tuning Advisor (DBMS_SQLTUNE) 优化SQL语句

在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等。在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning Advisor :STA),它是新的DBMS_SQLTUNE包。使用STA一定要保证优化器是CBO模式下。执行DBMS_SQLTUNE包进行sql优化需要有advisor的权限。

2013-11-21 13:14:57 6059

转载 使用sqltrpt自动调优sql。

在10gR2中,提供了$ORACLE_HOME/rdbms/admin/sqltrpt.sql脚本,用于抽取占用资源较多的sql,并可以为指定的sql生成执行计划,资源占用较多的sql分为两部分1) 15 Most expensive SQL in the cursor cache2) 15 Most expensive SQL in the workload repository

2013-11-19 16:27:13 5291

转载 coe_xfr_sql_profile.sql 从shared pool、awr中提取指定的SQL ID的Outline Data并创建SQL Profile。

SPO coe_xfr_sql_profile.log;SET DEF ON TERM OFF ECHO ON FEED OFF VER OFF HEA ON LIN 2000 PAGES 100 LONG 8000000 LONGC 800000 TRIMS ON TI OFF TIMI OFF SERVEROUT ON SIZE 1000000 NUMF "" SQLP SQL>;REM

2013-11-19 16:00:35 2304

转载 SQL Profiles-PartII

在上一篇《SQL Profiles-Part I》,我向大家介绍了什么是SQL Profiles及其作用,如何使用SQL Tuning Advisor来生成SQL Profile,以及生成的SQL Profile产生的Hint。同时也介绍了SQL的signature。那么在今天,将向大家介绍如何手工创建SQL Profiles(即不通过SQL Tuning Advisor)来达成2个目的:

2013-11-19 11:17:10 1152

转载 SQL Profiles-Part I

Oracle 11g从发布到现在,也有几个年头了。而在国内来说,Oracle 10g仍然是主流,甚至一些电信运营商的核心系统仍然在使用9i。作为Oracle 10g的一项新特性,SQL Profiles被使用得并不太多。不管是在论坛、个人的BLOG还是其他一些地方,SQL Profiles的介绍也相对较少。对我个人来说,已经在多个优化场合中使用SQL Profiles,在这里向大家介绍SQL Pr

2013-11-19 10:53:01 1074

原创 用脚本自动生成AWR报告!

脚本转载自:http://www.oracle-base.com/dba/10g/generate_multiple_awr_reports.sql-- ------------------------------------------------------------------------------------- File Name : http://www.oracle

2013-11-18 15:03:06 4314 1

原创 dbms_sqldiag 创建sql测试用例

你需要创建一个SQL测试用例,在另一台机器上重现SQL失败。可能是用来进行你自己的诊断,也可能是让oracle技术团队能够重现失败。sys@ORCL> conn /as sysdba已连接。sys@ORCL> grant read,write on directory exp_dir to u2;授权成功。sys@ORCL> grant read,write on

2013-11-08 16:04:56 1236

原创 dbms_hm 运行一次数据库健康检查

获得所有健康检查的列表:sys@ORCL> select name from v$hm_check c where c.INTERNAL_CHECK='N';NAME------------------------------DB Structure Integrity CheckCF Block Integrity CheckData Block Integrity Chec

2013-11-08 15:31:11 2105

转载 Oracle工具——ADRCI(三) 将事件打包

ADRCI工具是Oracle11g才推出的新工具,主要用来管理alert文件、trace文件、dump文件、健康监事报告等。这一篇介绍ADRCI工具的打包命令。Oracle工具——ADRCI(一):http://yangtingkun.itpub.net/post/468/481227Oracle工具——ADRCI(二):http://yangtingkun.itpub.net/pos

2013-11-08 11:39:12 1249

转载 Oracle工具——ADRCI(二) 查看报警日志

ADRCI工具是Oracle11g才推出的新工具,主要用来管理alert文件、trace文件、dump文件、健康监事报告等。这一篇介绍ADRCI工具的一些常用命令。Oracle工具——ADRCI(一):http://yangtingkun.itpub.net/post/468/481227在ADRCI众多命令中,比较常用的命令包括SHOW INCIDENT和SHOW PROBL

2013-11-08 11:38:10 1928

转载 Oracle工具——ADRCI(一)

ADRCI工具是Oracle11g才推出的新工具,主要用来管理alert文件、trace文件、dump文件、健康监事报告等。这一篇简单介绍ADRCI工具。用过11g的人都会发现,11g中alert文件以及trace文件的存放位置都发生了变化。从原来的ORACLE_BASE/admin/INSTANCE_NAME目录变成了ORACLE_BASE/diag/rdbms/DBNAME/I

2013-11-08 11:37:30 1421

原创 确实是谁在使用临时表空间

找出是哪一条SQL语句将排序数据段中的空间用光了:select s.sid || ',' || s.serial# sid_serial, s.username, o.blocks * t.block_size / 1024 / 1024 mb_used, o.tablespace, o.sqladdr address, h.hash_value, h.sql_text

2013-11-07 15:14:22 1426

原创 查看锁对象

set linesize 200; select p.spid, c.object_name, c.subobject_name, b.session_id, b.oracle_username, b.os_user_name from gv$process p, gv$session a, gv$locked_objec

2013-11-07 15:03:33 757

原创 监控表空间使用率

临时表空间:select * from (select a.tablespace_name, sum(a.bytes / 1024 / 1024) allocated_mb from dba_temp_files a where a.tablespace_name = upper('&&temp_tsname') group by

2013-11-07 15:00:03 1587

原创 找出是什么消耗了最多的UNDO空间

找出数据库中哪个查询的运行时间最长:select s.sql_text from v$sql s, v$undostat u where u.maxqueryid=s.sql_id;可以将v$transaction和v$session视图连接起来,找出当前执行的事务中,使用undo空间最多的会话:select s.sid, s.username, t.used

2013-11-07 14:27:55 3108

原创 undo_retention:确定最优的撤销保留时间

使用下面的公式来计算undo_retention参数的值:undo_retention=undo size/(db_block_size * undo_block_per_sec)可以通过提交下面的查询来计算数据库中实际产生的撤销数据:sys@ORCL> select sum(d.bytes) "undo" 2 from v$datafile d, v$tablesp

2013-11-07 10:12:36 5708

转载 linux 打造man中文帮助手册图解(man-pages-zh帮助页)

一.如何安装中文的man包中文man对英文不是很好的朋友来说,可以起到一点帮助作用。不过要学好linux,就不能太依赖这个东东,毕竟学好英语才是王道。环境:centos 5.3,内核:2.6.18-194.el5 (注,我的电脑也是这个,呵呵)官方网站:http://cmpp.linuxforum.net这个是源码的:http://manpages-zh.googlecode.

2013-11-06 17:31:07 4151

转载 经验:查看oracle错误信息的两种方法

oracle又报错了,但是他的错误码让我一头雾水。我怎么知道他的错误码是什么含义呢??该死的oracle为什么有这么多错误码呀??不要生气,oracle虽然有很多错误码。但是他已经给你方法去查看这些错误码的具体含义,以及怎么解决这些问题。这里提供两种方法。1)使用oerr命令在oracle的服务器上直接敲命令oerr 错误类型 错误编号,oracle会告诉你错在什么地方,怎么解决这个错

2013-11-05 10:50:39 2565

原创 为一条SQL语句生成AWR报告!

[oracle@linux ~]$ sqlplus / as sysdba @?/rdbms/admin/awrsqrpt.sqlSQL*Plus: Release 11.2.0.1.0 Production on 星期一 11月 4 17:29:10 2013Copyright (c) 1982, 2009, Oracle. All rights reserved.连接到: O

2013-11-04 11:40:04 2930

原创 11g新特性-查询缓存!

1、配置服务器查询缓存sys@ORCL> show parameter result_NAME TYPE VALUE------------------------------------ ----------- ------------------------------result_cache_max

2013-11-01 14:46:26 887

原创 优化实例内存!

1、自动内存管理如果使用的是oracle11g版本以上的数据库,那么推荐使用自动内存管理。比如数据库在白天会处理大量事务的OLTP,在晚上会跑大量的批处理任务。那么白天就需要更大的SGA来缓存数据,以减少I/O操作,晚上就需要为每个进程分配更大的PGA来处理临时排序等。使用了自动内存管理就可以自动在SGA和PGA之间动态调整。用法也非常简单,只需要设置一个参数就可以了:memory_t

2013-11-01 11:48:45 795

《Oracle Wait Interface性能诊断与调整实践指南》

《Oracle Wait Interface性能诊断与调整实践指南》

2012-12-17

《ORACLE SQL 高级编程》随书脚本

《ORACLE SQL 高级编程》随书脚本 英文版叫《pro oracle sql》 想要精通oracle sql必读书籍!

2012-12-17

ORACLE SQL 高级编程

《pro oralce sql》经典书籍的中文版《ORACLE SQL 高级编程》! 找了好久才找到的书籍,是中文的,英文瞥的童鞋也可以看的!

2012-12-17

java面试宝典

java面试宝典,面试的时候必备资料!

2012-12-17

Linux Shell脚本攻略(pdf书+源码)

Linux Shell脚本攻略(pdf书+源码)

2012-12-17

redhat5.4 Oracle 10G Data Guard 配置

redhat5.4 Oracle 10G Data Guard 配置 redhat5.4+Oracle 10g 我自己写的 里面带截图 详细到每一步!!!

2011-09-21

oracle常用函数大全

oracle常用函数大全 包含了oracle常用的100多个函数

2011-02-13

oracle高级sql学习

1.集合操作 2.EXISTS和NOT EXISTS的使用 3.WITH子句 4.MERGE INTO合并资料 5.层次查询(HIERARICAL RETRIVAL) 6.DECODE函数和行列互换 7.CASE表达式 8.ROWNUM—TOP-N分析 9.相关子查询和非相关子查询 10.增强的GROUP BY 11.分析函数(ANALYTICAL FUNCTIONS) 12.ROWID的使用 13. ORACLE10G正则表达式 14.使用HINT 15.PARITION分区 16.并行操作 17.扩展DDL和DML语句 18.MODEL语句 19.10G闪回查询 20.专题—行列转换 21.专题—连续值和累计值问题 22.专题—NULL和DUAL详 23.专题—时间、数字、字符格式详解 24.专题—ORACLE字符集问题 25.专题-随机值查询

2011-02-13

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

TA关注的人

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