- 博客(47)
- 资源 (54)
- 收藏
- 关注
原创 索引性能好不好让二元高度来说话
原文转自:http://database.ctocio.com.cn/316/8836816.shtml作为数据库管理员来说,要在表上建立索引很简单。但是要知道这个索引是否合适、如何优化索引则就具有一定的难度。这项工作也是用来评价一个数据库管理员是否算得上专家的一个重要指标。那么为什么索引优化有这么大的难度呢?这主要是因为索引优化是考察一个数据库管理员经验的时候。笔者今天就跟大家分享一下这
2012-04-25 11:25:09 1692
原创 实例恢复的原理+PGA +
原文整理自网络:5.4.2.5 实例恢复的原理前面我们讲到过,当数据库突然崩溃,而还没有来得及将buffer cache里的脏数据块刷新到数据文件里,同时在实例崩溃时正在运行着的事务被突然中断,则事务为中间状态,也就是既没有提交也没有回滚。这时数据文件里的内容不能体现实例崩溃时的状态。这样关闭的数据库是不一致的。下次启动实例时,Oracle会由SMON进程自动进行实例
2012-04-25 11:21:48 2105
原创 oracle 中的CR块详解+
1、概述Cr块consistent read块也就是用来维护oracle的读一致性的数据块。当查询某些数据的时候,发现数据块的版本比我们要查询的新,例如session1执行了dml操作并没有提交,session2此时查找跟session1相关的dml操作的数据信息,此时查询的数据却是原来的数据信息。查询的过程会在undo段中查找该数据块的前映像后,然后把前映像和current块合并
2012-04-25 10:27:30 12010
原创 linu前台和后台进程说明
本文转自明哥的博客,具体地址忘了。。。一. 有关进程的几种常用方法1.1 & 符号在命令后面加上一个 & 符号,表示该命令放在后台执行,如:[oracle@singledb ~]$ crontab -l20 17 * * * /u02/rman_incremental_backup.sh & 1.2 Jobs 命令 该命令可以查看当前有多少在后台运行
2012-04-24 14:58:01 1788
原创 kill会话过程分析+
转自:http://space.itpub.net/?uid-17203031-action-viewspace-itemid-684039在实际开发中,我们常常需要将用户的会话强制断开。比如:事务执行超时、代码出现死循环、死锁或者无意中将数据表锁住。这个使用kill session是很实用的方法。那么,kill session的时候,系统究竟发生了什么呢?基础知识用户连接到数
2012-04-23 20:43:41 2956 1
转载 PL/SQL10——隐式游标(SQL%FOUND)
http://blog.csdn.net/robinson_0612/article/details/6092066在PL/SQL中,游标的使用分为两种,一种是显示游标,一种是隐式游标,显示游标的使用需要事先使用declare来进行声明,其过程包括声明游标,打开游标,从游标提取数据,关闭游标。该方式多用于处理select语句返回的多行数据的情形。而隐式游标则由则由系统自动定义,当D
2012-04-22 19:41:52 1581
转载 PL/SQL9——包的创建与管理
http://blog.csdn.net/robinson_0612/article/details/6084475 包,是一个逻辑集合,是由PL/SQL类型以及PL/SQL子程序的集合。PL/SQL类型包括table类型,record类型。PL/SQL项则包括游标,游标变量。PL/SQL子程序包括过程,函数等。可以说包可谓是包罗万象。是所有PL/SQL相关资源的汇总。 包
2012-04-22 19:39:50 2266
原创 buffer cache中的LRU链+
转自晶晶小妹的博客:http://space.itpub.net/13095417/viewspace-204007一、LRU链介绍HASH是快速查找时,常用的算法。Oracle中几乎在所有需要快速查找的地方,都使用了HASH算法。LRU则是在“资源重用”时,常用的算法。 在Buffer cache中,LRU链被分为两半,分别是热端、冷端,在默认方式下,热、冷端各占
2012-04-22 13:30:12 1997
原创 log buffer 深度解析+
原文整理自网络5.3 深入Log Buffer 数据库在运行过程中,不可避免地要遇到各种能够导致数据库损坏的情况。比如突然断电、Oracle或者操作系统的程序bug导致数据库内部逻辑结构损坏、磁盘介质损坏等,都有可能造成数据库崩溃,从而导致数据丢失的现象发生。为了避免,或者说为了修复这些状况所导致的数据丢失现象,Oracle引入了日志缓冲区和日志文件的概念。所谓
2012-04-22 10:57:34 2366
原创 锁 阻塞 等待事件82-124页
1、select * from v$lock;我们关注比较多的是request和block字段,如果某个request列是个非0值,那么他就是在等待一个锁。如果block列值是1,那这个SID就持有了一个锁,并且阻塞别人活得这个锁,这个锁的类型由type字段定义。锁的模式有lmode字段定义,ID1,ID2字段定义了这个锁的相关信息,id1相同,就代表执行同一个资源。这样就有可能有加锁者和
2012-04-21 21:06:32 2046
原创 分区表和索引1-80页
全区分区索引,本地分区索引:http://www.itpub.net/thread-429282-1-1.html全局分区索引在一个索引分区中包含来自多个表分区的键,一个全局分区索引的分区键是分区表中中不同的或者指定一个范围的值。在创建全局分区索引的时候,必须定义分区键的范围和值。组合分区:在10g有两种:range-hash,range-list 注意顺序,根分区只能是range
2012-04-21 20:59:49 1660
原创 shared pool 深度解析3(subpool)+
我们知道,从Oracle 9i开始,Shared Pool可以被分割为多个子缓冲池(SubPool)进行管理,以提高并发性,减少竞争。Shared Pool的每个SubPool可以被看作是一个Mini Shared Pool,拥有自己独立的Free List、内存结构以及LRU List。同时Oracle提供多个Latch对各个子缓冲池进行管理,从而避免单个Latch的竞争(Shared Po
2012-04-21 16:16:57 3289
原创 shared pool 深度解析2+
Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,procedure,trigger)的信息,以及这些对象所依赖的table,index,view等对象的信息。Library cache需要解决三个问题:1.快速定位的问题:Librar
2012-04-21 15:51:08 2418
原创 shared pool 深度解析1+
原文整理自网络1、 深入Shared Pool Oracle数据库作为一个管理数据的产品,必须能够认出用户所提交的管理命令(通常叫做SQL语句),从而进行响应。认出的过程叫做解析SQL语句的过程,响应的过程叫做执行SQL语句的过程。解析是一个相当复杂的过程,它要考虑各种可能的异常情况,比如SQL语句涉及的对象不存在、提交的用户没有权限等。而且,还需要考虑如何执行SQL语句
2012-04-20 20:43:34 2119
转载 PL/SQL8——PL/SQL记录
http://blog.csdn.net/robinson_0612/article/details/6084390 PL/SQL记录有着类似于表的数据结构,是一个或多个字段且拥有数据类型的集合体。定义了PL/SQL记录类型之后,可以定义PL/SQL记录变量。声明一个PL/SQL记录变量相当于定义了多个标量变量,简化了变量的声明,从而大大节省了内存资源。多用于简化单行多列的数据处理。
2012-04-19 21:02:37 2024
原创 PL/SQL7——变量与SQL*Plus环境设置
http://blog.csdn.net/robinson_0612/article/details/60843761.SQL与PL/SQL代码终止符 SQL代码以";"来表示代码的终止 PL/SQL代码以"."来表示代码的终止,以"/"表示代码的执行 scott@ORCL> select * from emp where empno=7788;
2012-04-19 19:07:56 3239
原创 buffer cache 深度解析+
本文内同整理自网络: 本文首先详细介绍了oracle中buffer cache的概念以及所包含的内存结构。然后结合各个后台进程(包括DBWRn、CKPT、LGWR等)深入介绍了oracle对于buffer cache的管理机制,并详细解释了oracle为什么会采用现在的管理机制,是为了解决什么问题。比如为何会引入touch次数、为何会引入增量检查点等等。最后全面介绍了有关buffer c
2012-04-19 15:46:56 10250 3
原创 经典算法
排序算法:http://baike.baidu.com/view/297739.htm 冒泡排序法:http://baike.baidu.com/view/1313793.htm 起泡法:http://baike.baidu.com/view/174304.htm 鸡尾酒排序:http://baike.baidu.com/view/1981861.htm 桶排序:http://ba
2012-04-18 21:35:24 1640
转载 PL/SQL6——异常处理(Exception)
Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引入异常处理部分,进行捕捉异常,并根据异常出现的情况进行相应的处理。 一、异常的类型 ORACLE异常分为两种类型:系统异常、自定义异常。 其中系统异常又分为:预定义异常和非预定义异常。 1.预定义异常
2012-04-18 20:25:38 1826
转载 PL/SQL5——游标
一、游标的相关概念及特性 1.定义 映射在结果集中某一行数据的具体位置,类似于C语言中的指针。即通过游标方式定位到结果集中某个特定的行,然后根据业务需求 对该行进行相应特定的操作。 2.游标的分类 显示游标:即用户自定义游标,专门用于处理select语句返回的多行数据 隐式游标:系统自动定
2012-04-18 16:47:22 1412
原创 PL/SQL4—— 函数
原文转自 一沙弥的世界 的博客·函数通常用于返回特定的数据。其实质是一个有名字的PL/SQL块,作为一个schema对象存储于数据库,可以被反复执行。函数通常被作为一个表达式来调用或存储过程的一个参数,具有返回值。 一、建立函数的语法 CREATE [ OR REPLACE ] FUNCTION function_name (argument1 [m
2012-04-14 19:58:19 1749
原创 PL/SQL3—— 存储过程
原文转自 一沙弥的世界 的博客·存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库。是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出。一个存储过程通常包含定于部分,执行部分,Exception部分,可以被其他子程序调用,也可以被重用。 一、过程定义 CREATE [OR REPLACE]PROCEDURE pr
2012-04-14 19:56:49 1386
原创 PL/SQL2—— 流程控制
原文转自 一沙弥的世界 的博客 类似于高级语言,流程控制语句是PL/SQL语言的重要组成部分。这些流程控制语句使得PL/SQL加大了代码的灵活性和多样性,大大简化了程序的编写。下面将列出流程控制语句并给出具体事例。 一、顺序结构 按代码的书写顺序依次执行 --在下面的示例中将逐步执行代码 scott@ORCL> declare
2012-04-14 19:48:36 1178
原创 nid 修改数据库的名字
Nid是Oracle从9iR2开始提供的工具,可以用来更改数据库名称,而无需通过之前重建控制文件等繁琐方式。需要说明的是,虽然这个工具来自9iR2,但是仍然可以被用于Oracle8i.先看一下帮助:C:\>nid -helpDBNEWID: Release 10.1.0.2.0 - ProductionCopyright (c) 2001, 2004, Oracle.
2012-04-14 17:52:27 1786
原创 关于PRAGMA RESTRICT_REFERENCES 的理解
一 介绍:在Oracle application developer's guide --fundmental中9-60(oracle9i)有介绍,copy一点给你先看看。Using Pragma RESTRICT_REFERENCESA function called from SQL statements must obey certain rules meant to con
2012-04-14 17:43:38 2247
原创 PL/SQL1——语言基础
原文转自 一沙弥的世界 的博客PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语言的特征,如循环、条件分支等。同时也具有对象编程语言的特征,如重载、继承等。 一、PL/SQL程序语言的组成 主要由块组成 一个块由三个基本部分组成:声明、执行体、异常处理
2012-04-14 16:03:27 1232
原创 oracle 中的集合(联合数组 内嵌表 可变数组)
1、定义一个集合,让它作为一个函数或过程的形式参数,这样就可以传递这个集合类型的参数。 看下面的例子:定义一个过程参数--内嵌表 create or replace package personnel --定义一个包 as type staff_l
2012-04-11 20:20:04 2712
原创 oracle中的游标 包 集合 的学习总结
游标: 1、cursor_name%ROWCOUNT 表示游标影响了多少行,如:sql%rowcount中的sql是oracle的内部游标,rowcount的意思是之前的dml sql语句影响的多少行数据。如果是delete操作rowcount就是delete的数据,如果是insert,就是插入的数量...... 2、游标的目标变量(v_empno, v_sal)必须与游标selec
2012-04-11 20:18:52 2680
原创 Oracle lock 锁机制 总结
对于lock这个词,要从两方面理解,首先,它代表的是一种控制机制;其次,在这个机制中有个一成员也叫lock。从机制的角度看,lock框架包括3个组件:resource structure(资源);lock structure(锁);enqueue(排队机制)resource和lock是数据结构,enqueue是使用的算法。下面看一下lock的组成结构图:resource struc
2012-04-11 19:59:00 2515
原创 oracle开发之触发器
触发器吧。。。比较耗费资源的东东。。。如果能用自带的完整性约束或者检查约束之类的东西,那就不要用触发器了。。。如果一个触发器超过了60行,额。。那就用个存储过程,或者从一个触发器中调用一个触发器吧。。只有集中地,全局的时候,才用触发器,还有最后一点要注意,千万不要定义recursive触发器。。。哈哈,比如你在一个更新操作上加一个触发器,而这个触发器内包含一个更新操作,那就等着内存耗光吧。。。
2012-04-11 19:55:36 1388
原创 plsql子程序参数传递
1、位置的,名字的,混合的参数传递:DECLAREemp_num NUMBER(6) := 120;bonus NUMBER(6) := 50;PROCEDURE raise_salary (emp_id NUMBER, amount
2012-04-11 19:53:42 2666
原创 PL/SQL0.1——块嵌套与变量范围
1、先对in , out ,in out(有个NOCOPY可以加速out 和in out 类型的模式的处理速度) 类型的参数有一个理解:declare in_string varchar2(100) :='this is my test string'; out_string varchar2(200); proced
2012-04-11 19:52:15 1834
原创 oracle中的sequence
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_seq INCREMENT BY 1 -- 每次加几个
2012-04-11 19:50:58 8426
原创 oracle index 索引总结
1、之前的总结关于索引的概念:http://blog.csdn.net/changyanmanman/article/details/7097318关于索引组织表:http://blog.csdn.net/changyanmanman/article/details/7326505索引段使用技巧:http://blog.csdn.net/changyanmanman/article/d
2012-04-11 14:27:12 2403
转载 公司职位英文简写
企业各职位英文缩写:GM(General Manager)总经理VP(Vice President)副总裁FVP(First Vice President)第一副总裁AVP(Assistant Vice President)副总裁助理CEO(Chief Executive Officer)首席执行官,类似总经理、总裁,是企业的法人代表。COO(Chief Operation
2012-04-11 14:23:57 9999 1
原创 动态sql 和静态sql 下篇
1、批量绑定让oracle 在对一组值进行sql操作时绑定一个变量,这一组数据可以是任何的plsql的聚合类型(联合数组,内嵌表,可变数组),集合元素必须是sql的数据类型,比如char date mumber。有三个句法支持动态批量绑定,EXECUTE IMMEDIATE , FETCH , FORALL; EXECUTE IMMEDIATE: 你可以用BULK COLLECT
2012-04-11 14:22:27 1631
原创 动态sql 和静态sql 上篇
本文讲解基于Oracle高性能动态SQL程序开发。1.静态SQL与动态SQL:Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracl
2012-04-11 14:18:32 1503
原创 oracle 中的伪列和表
1、oracle的伪列oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Oracle完成的。Oracle目前常见的伪列: currval 和 nextval 使用序列号的保留字 CURRVAL:返回当前sequence值
2012-04-11 12:45:08 4183
Oracle Core Essential Internals for DBAs and Developers
2012-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人