
oracle
文章平均质量分 68
wacthamu
这个作者很懒,什么都没留下…
展开
-
行链接(Row chaining) 与行迁移(Row Migration)
行链接(Row chaining) 与行迁移(Row Migration)当一行的数据过长而不能插入一个单个数据块中时,可能发生两种事情:行链接(row chaining)或行迁移(row migration)。行链接当第一次插入行时,由于行太长而不能容纳在一个数据块中时,就会发生行链接。在这种情况下,oracle会使用与该块链接的一块或多块数据块来容纳该行的数据。行连接经常在插入转载 2012-09-17 17:33:33 · 1079 阅读 · 0 评论 -
查询实例中的SQL (正在执行的 性能差的)
---正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address ---执行过的select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT from转载 2012-11-06 15:02:48 · 533 阅读 · 0 评论 -
(表-中)IOT日常维护
IOT日常维护相对于堆表heap结构,索引组织表最大的特点在于将数据行全部内容作为叶子节点保存在索引结构中。IOT中只包括索引段(Index Segment)结构,没有对应的数据表段(Table Segment)结构。在日常运维工作中,我们经常需要对索引结构进行定期的重构rebuild操作,来消除索引无效节点(Dead Node)。那么,IOT结构中,我们维护工作需要注意些什么转载 2012-11-07 10:38:17 · 2207 阅读 · 0 评论 -
(表-下)IOT head table
6、Logical Rowid & Secondary Index在IOT的环境下,我们是不能保证一个固定的物理Rowid的。堆表(HeapTable)中,一行数据被保存在一个物理位置(file no. + block no.)之后,在正常保存行为中,即使发生行迁移现象,它的rowid是不会发生变化的。只有在进行数据表存储重构,如move和shrink space的时候才会发生转载 2012-11-07 10:41:11 · 529 阅读 · 0 评论 -
oracle 全局临时表
临时表(Tempotary table)用于保存事务或会话期间的中间结果集。临时表中保存的数据只对当前会话可见,所有会话都看不到其他会话的数据;即使当前会话已经提交了(commit)数据,别的会话也看不到它的数据。对于临时表,不存在多用户并发的问题,因为一个会话不会因为使用一个临时表而阻塞另一个会话。即使我们“锁住”了临时表,也不会妨碍其他会话使用临时表。 临时表比常规表生转载 2012-11-02 11:18:21 · 1123 阅读 · 0 评论 -
临时表效率优势何时失效
在存储过程中动态建临时表,是建立所谓的global temporary table,即内存表。这种表使用oracle的pga内存区(可以手动调试pga大小),超过pga大小会使用temp表空间进行磁盘虚拟内存(换页之类)。在内存允许范围内,内存操作的数量级是磁盘的千倍以后。故临时表要比写入permanent表空间中的表速度快N倍。 所以,临时表在使用PGA时在计算等方面速度原创 2012-11-07 11:16:14 · 823 阅读 · 0 评论 -
oracle sql 效率 要点
◆SQL语句用大写的;因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。◆在Java代码中尽量少用连接符“+”连接字符串。◆避免在索引列上使用NOT通常,我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响。◆当Oracle“碰到”NOT,他就会停止使用索引转而执行全表扫描。◆避免在索引列上使用计算。WHERE子句中,假如索引列是函数的转载 2012-11-12 17:14:01 · 372 阅读 · 0 评论 -
oracle 游标三种循环
首先定义游标和变量 CURSOR C1 IS SELECT eNAME,ejob FROM emp WHERE deptno=10;v_NAME VARCHAR2(10);v_job VARCHAR2(10);第一种:使用loop 循环open c1;loop fetch c1 into v_name,v_job ; exit when c1%notfound;转载 2012-11-14 10:31:53 · 3497 阅读 · 0 评论 -
PLSQL 编程基础语法要点
PL/SQL存储过程编程(上) 1. Oracle应用编辑方法概览 答:1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和数据库打交道的方法,和ProC很相似,更底层,很少用; 4) SQLJ: 很新的一种用Java访问Oracle数据库的方法,会的人不多; 5) JDBC 6) PL/SQL:转载 2012-11-14 10:58:17 · 906 阅读 · 0 评论 -
oracle if exists()
对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常用的三种,推荐使用最后一种第一种是最常用的,判断count(*)的值是否为零,如下declare v_cnt number;begin select count(*) into v_cnt from T_VIP where col=1; if v_cnt = 0 the转载 2012-11-14 18:47:30 · 7933 阅读 · 0 评论 -
oracle 不走索引的原因
create table tb2 as select * from emp;alter table tb2 modify empno number(4) not null;翻到20W行create index idxtb21 on tb2(empno);select INDEX_NAME from dba_indexes where table_name='TB2';--验转载 2013-02-01 13:46:41 · 15177 阅读 · 0 评论 -
Oracle锁机制
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。转载 2013-02-05 22:03:18 · 318 阅读 · 0 评论 -
exists in 对比运用 (Oracle)
有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;T1数据量小而T2数据量非常大时,T12) select * from T1 where T1.a in (select T2.a from T2) ;T1数据量非常大而T2数据量小时,T转载 2012-11-12 12:11:06 · 378 阅读 · 0 评论 -
Oracle 临时表空间 数据表空间
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是转载 2012-11-07 11:06:09 · 394 阅读 · 0 评论 -
(表-上)堆表 索引组织表 聚簇表
对关系型数据库产品(RDBMS)而言,一个重要特性就是:数据信息都被组织为二维数据表,信息的表达可以通过一系列的关联(Join)来完成。具体数据库产品在实现这个标准的时候,又有千差万别的特点。就是一个特定的数据库RDBMS产品,往往也提供不同的实现方法。1、从堆表(HeapTable)到索引组织表(Index Organization Table)Oracle作为一款成熟的数据库软转载 2012-11-07 10:30:56 · 796 阅读 · 0 评论 -
%NOTFOUND 用法
文档中的解释:It returns TRUE if an INSERT, UPDATE, or DELETE statement affected no rows, or a SELECT INTO statement returned no rows. Otherwise, it returns FALSE.这个解释更加精妙:%NOTFOUND is the logical opposi转载 2012-10-30 11:42:25 · 3759 阅读 · 0 评论 -
oracle rownum用法误区
对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样,下面以例子说明假设某个表 t转载 2012-10-30 16:35:16 · 404 阅读 · 0 评论 -
oracle 递归 start with connect by level
查找员工编号为7369的领导:1 SELECT LEVEL,E.* FROM EMP E CONNECT BY PRIOR E.MGR = E.EMPNO START WITH E.EMPNO = 78762 ORDER BY LEVEL DESC"start with" -- this identifies all LEVEL=1 nodes in the tree"转载 2012-11-02 10:32:39 · 5792 阅读 · 0 评论 -
sqlcode和sqlerrm
oracle内置函数sqlcode和sqlerrm是特别用在others处理器中,分别用来返回oracle的错误代码和错误消息。others处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的oracle异常,所以在程序的最外层使用一个others处理器的话,将可以确保所有的错误都会被检测到。在一个内在的异常中,sqlcode返回oracle错误的转载 2012-11-02 09:26:16 · 775 阅读 · 1 评论 -
不要让临时表空间影响Oracle数据库性能
在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库是如何处理的呢?通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。在这个程序全局区中有转载 2012-11-02 11:42:05 · 2117 阅读 · 0 评论 -
绑定变量及其优缺点
绑定变量是Oracle解决硬解析的首要利器,能解决OLTP系统中library cache的过度耗用以提高性能。然刀子磨的太快,使起来锋利,却容易折断。凡事皆有利弊二性,因地制宜,因时制宜,全在如何权衡而已。本文讲述了绑定变量的使用方法,以及绑定变量的优缺点、使用场合。一、绑定变量 提到绑定变量,就不得不了解硬解析与软解析。硬解析简言之即一条SQL语句没有被运行过转载 2012-11-02 15:01:27 · 673 阅读 · 0 评论 -
v$sql v$sql_plan
(1)v$sql 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。例1:这里介绍以下child cursoruser A: select * from tbluser B: select * from tbl大家认为这两条语句是不是一样的转载 2012-11-02 15:18:12 · 1166 阅读 · 0 评论 -
EXECUTE IMMEDIATE....using
EXECUTEIMMEDIATE代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTEIMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTEIMMEDIATE,因为它获的收益在包之上。使用技转载 2012-11-02 16:28:46 · 1839 阅读 · 0 评论 -
COL命令用法
COL命令:主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MAT] format HEA[DING] text JUS[TI转载 2012-10-26 14:54:19 · 2620 阅读 · 0 评论 -
OLAP OLTP 数据仓库
On-Line Transaction Processing联机事务处理系统(OLTP)也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response转载 2012-11-02 14:41:51 · 2052 阅读 · 0 评论 -
rownum
如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识,希望你在浏览完以下的文章会以下就是正文的详细内容的介绍。在Oracle怎样查询表中的top10条记录呢?select * from test where rownum =10 下面是关于rownum的介绍Rownum和row_number转载 2012-11-06 16:24:57 · 864 阅读 · 0 评论 -
oracle 提交事务 详细步骤入
oracle提交事务详细步骤入如下:1、用户通过sqlplus启动用户进程,使用oracle net services通过3层或n层基于web的客户机请求发送给服务器。2、服务器接收到客户连接请求后,首先判断该用户连接的合法性,如果合法,则创建相应的服务器进程(注:如果为专用服务器配置,则为该用户进程创建专用的服务器进程,只为该用户进程服务,该用户连接断开后释放;如果为共享服务器配置,则为转载 2012-11-06 17:57:30 · 3587 阅读 · 0 评论 -
SQL递归查询 SqlServer/ORACLE递归查询
在 SQLSERVER2005以后,mssql开始有了递归查询的方法了。比较起最开始写存储过程或者写function的方式。这样的方式更加简便灵活的。而oracle也有自带的树形结构递归查询方法,connect by下面我自己写的一段SQL,简单注释下CTE共用表达式的一些用法。 实现对树状结构的根节点和子节点的查询。 代码-------------------转载 2013-03-16 15:19:23 · 1397 阅读 · 0 评论