`
sangei
  • 浏览: 339211 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
   ORACLE有个高速缓冲的概念,这个高速缓冲呢就是存放执行过的SQL语句,那oracle在执行sql语句的时候要做很多工作,例如解析sql语句,估算索引利用率,绑定变量,读取数据块等等这些操作。假设高速缓冲里已经存储了执行过的sql语句,那就直接匹配执行了,少了步骤,自然就快了,但是经过测试会发现高速缓冲只对简单的表起作用,多表的情况小完全没有效果啊,例如在查询单表的时候那叫一个快,但是假设连接多个表,就龟速了。     最重要一点,ORACLE的高速缓冲是全字符匹配的,什么意思呢,看下面三个select   --No.1 select * from tableA; --No.2 ...
inner join可以简写为join   连接分为两种:内连接与外连接。 A.内连接   内连接,即最常见的等值连接,例:   SELECT * FROM TESTA,TESTB WHERE TESTA.A=TESTB.A 等价于 select * from testa inner join testb
正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。   例如:执行以下语句   CREATE TABLE TEMP ( AAA VARCHAR2(2 BYTE),      BBB VARCHAR2(2 BYTE) ) Insert into TEMP (AAA,BBB) values ('TESTA','TESTB'); 就会报错: TABLE OR VIEW DOES NOT EXIST。   在INSERT 语句之前加入正斜杠/即可。
1.GOTO,主要用于跳转,但会打乱我们的程序逻辑,一般不使用,它可以实现RETURN,EXIT的功能 2.RETURN,返回程序末尾,结束程序 3.EXIT,主要用于退出当前循环,相当于java中的break. 1、异常的优点如果没有异常,在程序中,应当检查每个命令的成功还是失败,如BEGINSELECT ...-- check for ’no data found’ errorSELECT ...-- check for ’no data found’ errorSELECT ...-- check for ’no data found’ error这种实现的方法缺点在于错误处理没有与 ...
在 PL/SQL 编码中,经常会从表中获取结果集,然后进行一些逻辑处理,再生成新的数据。我们想到的最直接的方法就是使用游标。从 Oracle8i 开始,出现了一个新的子句:BULK COLLECT。可以降低 SQL 引擎到 PL/SQL 引擎的上下文交换(context switch)次数,从而实现数据的高速检索。   1. 速度比较   从表中获取结果集,我们常用的方法就是使用游标循环,我们看看它的执行速度:   SQL> set serveroutput on SQL> declare   2    type tnt_ic01 is table of i ...
--============================ -- PL/SQL --> 动态SQL的常见错误 --============================       动态SQL在使用时,有很多需要注意的地方,如动态SQL语句结尾处不能使用分号(;),而动态PL/SQL结尾处需要使用分号(;),但不能使用正 斜杠结尾
数据库名、实例名、数据库域名、全局数据库名、服务名 ,这是几个令很多初学者容易混淆的概念。相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。我们现在就来把它们弄个明白。 一、数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下:DB_NAME=myorcl...在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件 ...
Oracle 9i以前的复合索引:如果索引有多个字段组成,索引中每个字段对于查询的价值是不同的,通常最常用到的查询字段应该放在最前面;或者相同查询几率的字段根据字段内容的相异程度(相异程度越高,索引效率越高)来决定。即:建索引的时候除了要考虑前置列,最好还要考虑DISTINCT数量最多的建为索引。   一个原则:如果在where条件中有对索引中第一个字段的查询,索引是可以被使用的;但是如果在where条件中没有对索引中第一个子段的查询而只有后面的字段的话,索引是无法使用的。即:9I之前:那么要考虑你的复合索引的第一列必须在你的查询中被引用,这样你的复合索引才会起作用,否则这个索引就不起作用,照样 ...
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 lag的语法如下: lead的语法如下: lead 和lag 的语法类似以下以lag为例进行讲解! lag(exp_str,offset,defval) over() exp_str 是要做对比的字段 offset 是exp_str字段的偏移量 比如说 offset 为2 则 拿exp_str的第一行和第三行对比,第二行和第四行,依次类推,offset的默认值为1! defval是当该函数无值可用的情况下返回的值 ...
回复: 临时表存放在哪儿?DML statements on temporary tables do not generate redo logs for the data changes. However, undo logs for the data and redo logs for the undo logs are generated. Data from the temporary table is automatically dropped in the case of session termination, either when ...
注意:rownum从1开始; 1.rownum按照记录插入时的顺序给记录排序,所以有order by的子句时一定要注意啊! 2.使用时rownum,order by字段是否为主键有什么影响? 3.子查询中rownum rn,而rn用到外查询中到底是怎样的序列? 4.若id主键是按照从小到大的顺序插入的,select语句没有group by 和order by的子句时,rownum的顺序和id顺序基本一致。 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<、<=、!=),并非说用>,>=, ...
  SQL:> select numtodsinterval(365, 'second') from dual;   结果:+000000000 00:06:05.000000000;      SQL:> select SUBSTR(numtodsinterval(365, 'second'),12,8) from dual;   结果:00:06:05;      SQL:> select to_char(to_date('1000 ', 'sssss '), 'hh24:mi:ss ') from dual;   结果:00:16 ...
原文地址:http://kb.cnblogs.com/a/1552790/ SELECT ROUND( number, [ decimal_places ] ) FROM DUAL   说明: number : 将要处理的数值 decimal_places : 四舍五入,小数取几位,不填默认为0 Sample : select round(123.456) from dual;              结果: 123    select round(123.456, 0) from dual;          结果: 123    select roun ...
加法  select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_months(sysdate,1) from dual;        --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual;   --加1星期 select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual;   --加1天 select sysdate,to_c ...
Oracle SELECT with an array using an IN   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Global site tag (gtag.js) - Google Analytics