管理

2008年12月24日

摘要: 在文章的最后看一下ORDER BY STOPKEY和ORDER BY在翻页查询的最后几页的性能差异: SQL> CREATE TABLE T AS SELECT A.* FROM DBA_OBJECTS A, DBA_USERS B, TAB; 表已创建。 SQL> SELECT COUNT(*) FROM T; COUNT(*) ---------- 458064 SQL> EXEC DBMS_... 阅读全文

posted @ 2008-12-24 17:01 lzhdim 阅读(720) 评论(0) 推荐(0)

摘要: 这篇文章通过例子说明分页查询使用的NESTED LOOP操作,在分页查询翻到最后几页时的性能问题: SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS; 表已创建。 SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE; 表已创建。 SQL> ALTER TABLE T ADD CONSTRAINT PK_T P... 阅读全文

posted @ 2008-12-24 17:00 lzhdim 阅读(582) 评论(0) 推荐(0)

摘要: 前面的各种例子已经说明了分页查询语句的标准写法所带来的性能提升。 这里简单总结一下,并简单的说明分页查询语句在何时无法带来性能提升。 分页查询语句之所以可以很快的返回结果,是因为它的目标是最快的返回第一条结果。如果每页有20条记录,目前翻到第5页,那么只需要返回前100条记录都可以满足查询的要求了,也许还有几万条记录也符合查询的条件,但是由于分页的限制,在当前的查询中可以忽略这些数据,而只需尽快的... 阅读全文

posted @ 2008-12-24 16:59 lzhdim 阅读(1064) 评论(0) 推荐(0)

摘要: 最后的例子说明内部循环包含排序的情况: SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS; 表已创建。 SQL> CREATE INDEX IND_T_OBJECT_NAME ON T (OBJECT_NAME); 索引已创建。 SQL> ALTER TABLE T MODIFY OBJECT_NAME NOT NULL; 表已更改。 SQL> EX... 阅读全文

posted @ 2008-12-24 16:58 lzhdim 阅读(735) 评论(0) 推荐(0)

摘要: 继续看查询的第二种情况,包含表连接的情况: SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS; 表已创建。 SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE; 表已创建。 SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (USERNAME); 表已更改。... 阅读全文

posted @ 2008-12-24 16:55 lzhdim 阅读(836) 评论(0) 推荐(0)

摘要: 这篇文章用几个例子来说明分页查询的效率。首先构造一个比较大的表作为测试表: SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS, DBA_SEQUENCES; 表已创建。 SQL> SELECT COUNT(*) FROM T; COUNT(*) ---------- 457992 首先比较两种分页方法的区别: SQL> SET AUTOT ON SQ... 阅读全文

posted @ 2008-12-24 16:54 lzhdim 阅读(701) 评论(0) 推荐(0)

摘要: Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM = 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM = 21控制分页... 阅读全文

posted @ 2008-12-24 16:51 lzhdim 阅读(813) 评论(0) 推荐(0)

摘要: 前面我们介绍了,使用oracle的聚合函数和group by关键字来对结果集合进行分组,这时就有了一个新的问题,例如,我们针对聚合函数那一列需要找到满足条件的那些分组结果。我们可以使用where子句吗?不行,我们需要的是使用having关键字。 例如我们需要找出那些平均工资在$2000以上的部门。使用having关键字的写法是: Select deptno,avg(sal) avg_sal Fro... 阅读全文

posted @ 2008-12-24 14:36 lzhdim 阅读(3359) 评论(0) 推荐(1)

摘要: 前面我们在介绍oracle的聚合函数时提到如果在给定的值中存在空值的话,oracle将会忽略掉这些空值。这个处理的方式在大多数时候是符合我们要求的,但是在有些时候可能会有问题。 例如,现在到了年关,公司会对部分员工进行奖励,而当然会有一部分人没有得到奖励。比如现在有一张表中存的是员工的奖金额,那个将会有一部分人对应的奖金额是空值,因为他们根本就没有得到奖励,现在老板让你统计全公司的得奖平均额。 如... 阅读全文

posted @ 2008-12-24 14:35 lzhdim 阅读(2116) 评论(0) 推荐(0)

摘要: 前面我们介绍了很多oracle中单行函数,在oracle中还存在另一类函数,那就是聚合函数,oracle中的聚合函数非常有用,主要是用来做些统计、平均之类的工作,你必须牢记。 先简单介绍一下几个常用的oracle中的聚合函数。 Oracle中聚合函数名称 函数的... 阅读全文

posted @ 2008-12-24 14:35 lzhdim 阅读(8882) 评论(0) 推荐(0)

摘要: 和其他的关系型数据库一样,oracle中也能进行一些隐式的数据转换,这对我们写SQL语句有非常用,我们可以不必麻烦地手动转化很多类型的字符。虽然前面我们介绍了一些使用例如to_char,to_date的函数进行强制转换的方法,但是隐式转换也还是不错的。 Oracle可以隐式地进行一些变量类别之间转化,例如从字符串转换到数值,看下面的例子。 SQL> select ename,sal from em... 阅读全文

posted @ 2008-12-24 14:34 lzhdim 阅读(2641) 评论(0) 推荐(0)

摘要: Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。 下面简单介绍一下几个函数的用法。 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那... 阅读全文

posted @ 2008-12-24 14:33 lzhdim 阅读(8248) 评论(3) 推荐(1)

摘要: oracle中的distinc关键字和count函数需要经常组合起来使用,例如,如果我们拿到一个仅有员工基本信息的列表,我们希望得到这个公司共有多少个部门。 我们可以这样做: select count(a.deptno) from (select distinct deptno from scott.emp) a; 但这样做太复杂了,我们可以将discint和count函数用在一起 例如: sel... 阅读全文

posted @ 2008-12-24 14:31 lzhdim 阅读(3059) 评论(0) 推荐(0)

摘要: 前面我们介绍了oracle中正则表达式的基本元字符和常用的两个函数regexp_like 和 regexp_instr。这里我们再继续介绍剩下的两个正则表达式函数regexp_replace和regexp_substr。 regexp_replace函数和regexp_substr函数的功能类似与字符函数replace和substr,只是这里的应用更加灵活,可以一下子匹配一系列的结果,而原来的函数... 阅读全文

posted @ 2008-12-24 14:31 lzhdim 阅读(10000) 评论(1) 推荐(0)

摘要: 前面我们介绍了oracle中的正则表达式组常用的一个函数regexp_like,这里我们在介绍一个函数regexp_instr。这个正则表达式函数用的不如前一个多,但也会偶尔会用到。这个函数其实与我们前面曾介绍的instr函数其实相似。 regexp_instr的原型如下: regexp_instr(x,pattern[,start[,occurrence[,return_option[,matc... 阅读全文

posted @ 2008-12-24 14:30 lzhdim 阅读(5910) 评论(0) 推荐(0)

摘要: 前面介绍了oracle中正则表达式构成的元数据,但仅仅知道元数据是不够的,oracle中的正则表达式是结合其特定的4个函数使用的,其中用的最多的就是现在要介绍的的这个函数:regexp_like regexp_like函数的基本构成是: regexp_like(x,pattern[,match_option]) 其基本功能是在x中查找pattern,如果能找到返回true否则返回false,这里的... 阅读全文

posted @ 2008-12-24 14:30 lzhdim 阅读(3755) 评论(0) 推荐(0)

摘要: 正则表达式是很多编程语言中都有的。可惜oracle8i、oracle9i中一直迟迟不肯加入,好在oracle10g中终于增加了期盼已久的正则表达式功能。你可以在oracle10g中使用正则表达式肆意地匹配你想匹配的任何字符串了。 所谓正则表达式是对于字符串进行匹配的一种模式。举个例子来说字符串’^198[0-9]$’可以匹配‘1980-1989’,也即80后出生的年份。如果希望统计出公司那些员工是... 阅读全文

posted @ 2008-12-24 14:29 lzhdim 阅读(1632) 评论(0) 推荐(0)

摘要: BI(商务智能)对于多数企业来说,就好像是海市蜃楼,只能看看而已。一方面是因为商务智能软件在宣传的时候太过于玄乎,导致很多企业对其抱有怀疑的态度;另一方面由于缺乏竞争,所以其价格也居高不下,对于一些企业来说,属于奢侈品。所以,前几年,BI软件一直处于买方市场。软件公司在竭尽全力的吆喝,但是效果平平。那么在即将过去的2008年国内商务智能软件的格局是什么样的呢?在即将到来的09年又将有哪些新的趋势呢... 阅读全文

posted @ 2008-12-24 14:19 lzhdim 阅读(750) 评论(0) 推荐(0)

摘要: 1996年Garnter Group率先提出的SOA理念在2004年前后借着企业IT系统整合的东风再次被推到IT技术的最前列,经过了05-07年的市场布道和培育期,SOA已经得到了众多的企业级用户的认可。从07年开始,越来越多的企业开始把IT架构转到SOA,2008年更是SOA在企业中生根发芽的一年。 如果搜索一下2008年和SOA最相关的词语,恐怕就是“落地”这个词了。但是,SOA其实从来不... 阅读全文

posted @ 2008-12-24 14:18 lzhdim 阅读(503) 评论(0) 推荐(0)

摘要: 重复数据删除技术在一两年前已经收到人们的关注,重复数据删除初创厂商Data Domain公司在一两年更是吸引了人们大部分的眼球,业绩的飞速增长、用户的迅速增加,让Data Domain公司以让人难以置信的速度扩张着,Data Domain更是在06年纳斯达克上市。然而在2008年,重复数据删除领域,已经不再是Data Domain一家风光了,EMC、IBM、NetApp、飞康、Sepaton、... 阅读全文

posted @ 2008-12-24 14:13 lzhdim 阅读(686) 评论(0) 推荐(0)

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved