- 博客(21)
- 资源 (6)
- 收藏
- 关注
转载 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 7820
转载 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 878
转载 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 3368
转载 oracle sql 效率 要点
◆SQL语句用大写的;因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。◆在Java代码中尽量少用连接符“+”连接字符串。◆避免在索引列上使用NOT通常,我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响。◆当Oracle“碰到”NOT,他就会停止使用索引转而执行全表扫描。◆避免在索引列上使用计算。WHERE子句中,假如索引列是函数的
2012-11-12 17:14:01 343
转载 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 361
原创 临时表效率优势何时失效
在存储过程中动态建临时表,是建立所谓的global temporary table,即内存表。这种表使用oracle的pga内存区(可以手动调试pga大小),超过pga大小会使用temp表空间进行磁盘虚拟内存(换页之类)。在内存允许范围内,内存操作的数量级是磁盘的千倍以后。故临时表要比写入permanent表空间中的表速度快N倍。 所以,临时表在使用PGA时在计算等方面速度
2012-11-07 11:16:14 784
转载 Oracle 临时表空间 数据表空间
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是
2012-11-07 11:06:09 377
转载 (表-下)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 509
转载 (表-中)IOT日常维护
IOT日常维护相对于堆表heap结构,索引组织表最大的特点在于将数据行全部内容作为叶子节点保存在索引结构中。IOT中只包括索引段(Index Segment)结构,没有对应的数据表段(Table Segment)结构。在日常运维工作中,我们经常需要对索引结构进行定期的重构rebuild操作,来消除索引无效节点(Dead Node)。那么,IOT结构中,我们维护工作需要注意些什么
2012-11-07 10:38:17 2172
转载 (表-上)堆表 索引组织表 聚簇表
对关系型数据库产品(RDBMS)而言,一个重要特性就是:数据信息都被组织为二维数据表,信息的表达可以通过一系列的关联(Join)来完成。具体数据库产品在实现这个标准的时候,又有千差万别的特点。就是一个特定的数据库RDBMS产品,往往也提供不同的实现方法。1、从堆表(HeapTable)到索引组织表(Index Organization Table)Oracle作为一款成熟的数据库软
2012-11-07 10:30:56 760
转载 oracle 提交事务 详细步骤入
oracle提交事务详细步骤入如下:1、用户通过sqlplus启动用户进程,使用oracle net services通过3层或n层基于web的客户机请求发送给服务器。2、服务器接收到客户连接请求后,首先判断该用户连接的合法性,如果合法,则创建相应的服务器进程(注:如果为专用服务器配置,则为该用户进程创建专用的服务器进程,只为该用户进程服务,该用户连接断开后释放;如果为共享服务器配置,则为
2012-11-06 17:57:30 3530
转载 rownum
如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识,希望你在浏览完以下的文章会以下就是正文的详细内容的介绍。在Oracle怎样查询表中的top10条记录呢?select * from test where rownum =10 下面是关于rownum的介绍Rownum和row_number
2012-11-06 16:24:57 841
转载 查询实例中的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 512
转载 EXECUTE IMMEDIATE....using
EXECUTEIMMEDIATE代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTEIMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTEIMMEDIATE,因为它获的收益在包之上。使用技
2012-11-02 16:28:46 1801
转载 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 1129
转载 绑定变量及其优缺点
绑定变量是Oracle解决硬解析的首要利器,能解决OLTP系统中library cache的过度耗用以提高性能。然刀子磨的太快,使起来锋利,却容易折断。凡事皆有利弊二性,因地制宜,因时制宜,全在如何权衡而已。本文讲述了绑定变量的使用方法,以及绑定变量的优缺点、使用场合。一、绑定变量 提到绑定变量,就不得不了解硬解析与软解析。硬解析简言之即一条SQL语句没有被运行过
2012-11-02 15:01:27 630
转载 OLAP OLTP 数据仓库
On-Line Transaction Processing联机事务处理系统(OLTP)也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response
2012-11-02 14:41:51 2019
转载 不要让临时表空间影响Oracle数据库性能
在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库是如何处理的呢?通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。在这个程序全局区中有
2012-11-02 11:42:05 2083
转载 oracle 全局临时表
临时表(Tempotary table)用于保存事务或会话期间的中间结果集。临时表中保存的数据只对当前会话可见,所有会话都看不到其他会话的数据;即使当前会话已经提交了(commit)数据,别的会话也看不到它的数据。对于临时表,不存在多用户并发的问题,因为一个会话不会因为使用一个临时表而阻塞另一个会话。即使我们“锁住”了临时表,也不会妨碍其他会话使用临时表。 临时表比常规表生
2012-11-02 11:18:21 1087
转载 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 5738
转载 sqlcode和sqlerrm
oracle内置函数sqlcode和sqlerrm是特别用在others处理器中,分别用来返回oracle的错误代码和错误消息。others处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的oracle异常,所以在程序的最外层使用一个others处理器的话,将可以确保所有的错误都会被检测到。在一个内在的异常中,sqlcode返回oracle错误的
2012-11-02 09:26:16 748 1
Java正则表达式入门
2010-07-03
java 正则表达式
2010-07-03
关于男女大学生的爱情观和婚姻观异同调查报告
2010-04-19
生产者消费者问题代码
2009-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人