ORACLE数据库
天空大海草原
这个作者很懒,什么都没留下…
展开
-
应遵循的PL/SQL编码规则
作者:Steven Feuerstein 提高编写PL/SQL代码数量及质量的四个简单易行指导方针 我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝大多数代码都非常拙劣,而且难以维护。 幸运地是,转载 2011-08-15 16:53:56 · 371 阅读 · 0 评论 -
用户资产表主键更新
故障现象:。在更新用户资产表的主键的时候,数据库存储过程抛出错误:ORA-02292: 违反完整约束条件(OSS01.CNST_USER_MAIL_BINDING_FK) - 已找到子记录故障分析:。表的普通列更新在关系型数据库是正常现象,只会有两种结果:a、更新成功,b、更新不到记录。而表主键更新是关系型数据库的大忌,会产生很多问题。Oracle是明文不推荐这种操作的,如果应用确原创 2013-07-31 11:35:08 · 781 阅读 · 0 评论 -
ORACLE和SQLSERVER的最大区别
1、开放性: SQLSERVER不能,ORACLE能装在UNIX上2、分区表: SQLSERVER不能,ORACLE能根据INDEX的值的范围,把数据存放到不同的硬盘空间.3、AUTONOMOUS_TRANSACTION;SQLSERVER不能,ORACLE能在主TRANSACTION中独立COMMIT或ROLLBACK子TRANSACTION而不影响主TRANSACTION.4、Or转载 2013-08-01 09:32:51 · 1324 阅读 · 0 评论 -
oracle发生重启动的介绍
重启动发生的原因:where条件读取时采用一致读和更新时采取当前读版本不一致造成Oracle在执行DML语句时,会用到两种不同的方式去读取数据块:1. 一致读:在“找到”需要修改的数据行时,会采用 consistent read2. 当前读:在“获取”数据块来实际更新数据行时,会采用 current read 如更新这个语句update test set x=1 where y转载 2013-07-28 00:07:48 · 473 阅读 · 0 评论 -
PLSQL批量Forall操作性能提升详解
首先创建测试表create table test1 (c1 number , c2 number ,c3 number) ;create table test2 (c1 number , c2 number ,c3 number) ;开始测试SQL> DECLARE l_stat_sql VARCHAR2(2000) := 'select value from v$m转载 2013-07-24 18:12:08 · 622 阅读 · 0 评论 -
乱序存储和顺序存储(堆组织表和索引组织表(IOT))
图书馆的书架是最好的乱序存储和顺序存储的举例。你是知道的,空空的图书馆就一空房子,就好像没有格式化的硬盘。摆上书架的图书馆,就好像格式化的硬盘。书架摆成第一排到第n排,每排还有书架1,书架2...书架n。格式化好的硬盘,会怎么划分呢,硬盘会被划分为很多扇区,扇区1到扇区n。每个扇区还有很多数据块,块1,块2...块n。堆组织表堆(heap)是计算机科学领域中得到深入研究的一种经典数据结原创 2013-12-23 11:23:47 · 1172 阅读 · 0 评论 -
alter table XXX enable row movement引起无效对象
如果经常在表上执行DML操作,会造成数据库块中数据分布稀疏,浪费大量空间。同时也会影响全表扫描的性能,因为全表扫描需要访问更多的数据块。从oracle10g开始,表可以通过shrink来重组数据使数据分布更紧密,同时降低HWM释放空闲数据块。segment shrink分为两个阶段:1、数据重组(compact):通过一系列insert、delete操作,将数据尽量排列在段的前面。在这个过程中转载 2013-07-31 11:36:58 · 2446 阅读 · 0 评论 -
唯一索引的索引键不保存rowid
tom的oracle 9i&10g编程艺术中这样一句话:在一个非唯一索引中,oracle会把rowid作为一个额外列加到键上,使索引键为唯一; 先按索引键排序,再按rowid升序排序;在一个唯一索引中,不会再加rowid到索引键上。 这个怎么理解呢?唯一索引的索引键不保存rowid,那怎么通过rowid查找数据表中某行的值呢。下面的内容是通过google搜索得来,来源:http:转载 2013-03-20 10:28:01 · 524 阅读 · 0 评论 -
oracle版本说明及主要特性
1983年3月,oracle第3版,引入事务的概念,即SQL要么成功、要么失败,取决于事务是否提交;同事还引入了另一关键特性--写不阻塞读(通过回滚段中的数据实现查询和回滚事务,避免了读锁定),对于大访问量、高并发的应用,这点很重要。 1984年10月,oracle第4版,增加了读一致性(Read Consistency)的特性(即一个会话修改数据时,只要不提交,其他的会话就看转载 2012-08-03 16:22:26 · 625 阅读 · 0 评论 -
oracle 物理读 逻辑读的理解
逻辑读是指从内存中读,物理读是指从磁盘上读取数据;如果内存中存在相应的读取数据,那么直接从内存中读取,逻辑读的次数加1,如果不存在,则从磁盘上读到内存中,再从内存中读取,逻辑度次数加1,物理读次数也加1。需要注意的是,物理读非常消耗系统资源,一个物理读需要消耗8ms,而一秒可以处理20万个逻辑读。1.物理读(physical read)当数据块第一次读取到,就会缓存到buffer ca转载 2012-08-06 14:45:43 · 470 阅读 · 0 评论 -
oracle 10g如何关闭和打开自动收集统计信息
一、ORACLE10g自动收集统计信息--自动analyze从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计转载 2013-03-20 10:24:57 · 1213 阅读 · 0 评论 -
什么是INDEX SKIP SCAN
在查看SQL的执行计划的时候,有时候会看到INDEX SKIP SCAN,其实这个索引扫描路径会发生在多个列建立的复合索引上,如果SQL中谓词条件只包含索引中的部分列,并且这些列不是建立索引时的第一列时,就可 能发生INDEX SKIP SCAN。这里SKIP的意思是因为查询条件没有第一列或前面几列,被忽略了。引用Oracle文档的例子,比如如下的表:employees (sex, e转载 2013-03-20 10:23:53 · 1535 阅读 · 0 评论 -
第一次和第二次的执行计划为啥不一样
下面的sql执行了两次,发现两次的执行计划有不一致的地方。recursive calls(递归调用)第一次是284,第二次是0。consistent gets(一致性读),第一次是88,第二次是2。为什么?问了下c哥,第一次执行sql的时候,需要硬解析sql代码。第二次执行的时候share pool area已经存在执行计划,直接拿来用即可。这些知识在书里都看过,但还是需要实际操作才印象深刻啊原创 2013-03-20 10:25:53 · 776 阅读 · 0 评论 -
超好用的plsql设置
1、格式化SQL语句在使用 PL/SQL Developer的SQL Window时,有时候输入的SQL语句太长或太乱,希望能用比较通用的写法格式话一下,这样看起来会好看些,也好分析;使用方法:选中需要格式化的SQL语句,然后点击工具栏的PL/SQL beautifier按钮即可。2、oralce精简客户端的使用(待测)要想PL/SQL连接oracle数据库,除了PL/SQL De转载 2013-03-20 10:26:36 · 1843 阅读 · 0 评论 -
piner整理的关于Oracle的 FAQ
http://www.itpub.net/thread-180363-1-1.html转载 2013-03-20 14:31:36 · 492 阅读 · 0 评论 -
tnsnames.ora设置怪问题
刚搞定困扰3天的oracle数据库连接问题,决定记录下,真是令人不爽啊。这几天要连接现网终端设备数据库,连接方式还比较复杂。需要设置vpn环境,幸好之前设置过。配置好tnsnames.ora文件,打开plsql,开始连接。提示无法连接远程Oracle。尝试连接另外一台现网数据库,可以连通。尝试连接局域网内的研发数据库,可以连通。NND,这么怪。我试着telnet Ora原创 2013-03-20 10:27:22 · 498 阅读 · 0 评论