易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

Oracle的优化器有两种优化方式(一)

Oracle的优化器有两种优化方式(整理), 2010-04-13
RBO方式:基于规则的优化方式(Rule-Based Optimization,简称为RBO)
  优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
CBO方式:基于代价的优化方式(Cost-Based Optimization,简称为CBO)
它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是做analyze后才出现的,很多时候过期统计信息会令优化器做出一个错误的执行计划,因此应及时更新这些信息。
 
所以hint也不例外,除了/*+rule*/其他的都是CBO优化方式
优化模式包括Rule、Choose、First rows、All rows四种方式:
Rule:基于规则的方式。
Choose:默认的情况下Oracle用的便是这种方式。指的是当一个表或索引有统计信息,则走CBO的方式,如果表或索引没统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,走RBO的方式。
PS: 优化模式是CHOOSE的情况下,看Cost参数是否有值来决定采用CBO还是RBO:
SELE ......

Oracle ROLLUP和CUBE 用法

在做项目经常遇到分科室、人员进行汇总的问题,在ORACLE中对此类问题的处理相当方便!下面以项目中遇到的实例进行说明:
查询语句如下:
select f_sys_getsectnamebysectid(a.sectionid) as sectname,
        --a.sectionid,
       f_sys_employinfo_getnamebyno(a.buyerid) as name,
       sum(c.ratio) as llratio,
       sum(b.ratio) as lratio,
       sum(a.ratio) as ratio,
       sum(d.ratio) as nratio
  from (select sectionid, buyerid, ratio
          from T_PPRM_ASPPurRatio
         where year = '2008') a,
       (select buyerid, ratio from T_PPRM_ASPPurRatio where year = '2007') b,
       (select buyerid, ratio from T_PPRM_ASPPurRatio where year = '2006') c, ......

(Oracle)rownum用法详解

(Oracle)rownum用法详解
2008-08-06 15:41
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n>1的自然数)。
SQL> select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)
SQL> select rownum,id,name from student where rownum =2;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
(2)rownum对于大于某值的查询条件
   如果想找到从第二行记录以后的记录,当使用rownum>2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,Oracle 认为rownum&g ......

Oracle分页讨论

oracle分页???
在mysql中只要limit x,y就可以分页成功,那oracle 中是怎么做的呢?
=================================================
方法一:
SELECT   id,rown  
      from   (SELECT   id,   ROWNUM   rown  
                      from   (SELECT   id  
                                          from   table  
                                        WHERE   (************)  
                                  ORDER   BY   ********)  
                    WHERE   ROWNUM   <=   ......

oracle imp时报IMP 00032,IMP 00008解决办法

oracle imp时报:
       IMP-00032: SQL statement exceeded buffer length
       IMP-00008: unrecognized statement in the export file
解决办法:
   将imp语句由
         imp username/userpass@oraSID file=userdb_20100325.dmp full=y
   更改为: 
         imp username/userpass@oraSID file=userdb_20100325.dmp full=y buffer=5400000 ......

Oracle 时间比较

    在Web开发中,从页面注入的时间一般为String类型,怎么去和Oracle中的时间进行比较
   方法:
  
   String Time;
   .......// 一段代码
   假设Time为页面注入String类型数据,为"2010-10-10 12:02:01"。
   在写SQL语句时
   
            String sql="select from  mytable where table_time > to_date('"+Time+"','yyyy-mm-dd
hh24:mi:ss')"
;
   如果先把Time 转换成 Date 类型,再去比较,会报错。
......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [1687] [1688] [1689] [1690] 1691 [1692] [1693] [1694] [1695] [1696]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号