Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304416
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家提供关于数据库教程相关的教程网站知识。

用Oracle并行查询发挥多CPU的威力u2HAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

上一页    ,u2HAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

正在看的ORACLE教程是:Oracle SQL性能网站seo优化系列学习二。 
4. 选择最有效率的表名顺序(只在基于规则的网站seo优化器中有效) 

  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,您必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的相关方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并. 

  例如: 

  表 TAB1 16,384 条记录 

  表 TAB2 1 条记录 

  选择TAB2作为基础表 (最好的具体相关方法) 

select count(*) from tab1,tab2 执行时间0.96秒  

  选择TAB2作为基础表 (不佳的具体相关方法) 

select count(*) from tab2,tab1 执行时间26.09秒  

  假如如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 

  例如: 

  EMP表描述了LOCATION表和CATEGORY表的交集. 

SELECT * 

FROM LOCATION L , 

CATEGORY C, 

EMP E 

WhERE E.EMP_NO BETWEEN 1000 AND 2000 

AND E.CAT_NO = C.CAT_NO 

AND E.LOCN = L.LOCN  

  将比下列SQL更有效率 

SELECT * 

FROM EMP E , 

LOCATION L , 

CATEGORY C 

WhERE E.CAT_NO = C.CAT_NO 

AND E.LOCN = L.LOCN 

AND E.EMP_NO BETWEEN 1000 AND 2000  

  5. WhERE子句中的连接顺序. 

  ORACLE采用自下而上的顺序解析WhERE子句,根据这个原理,表之间的连接必须写在其他WhERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WhERE子句的末尾. 

  例如: (低效,执行时间156.3秒) 

SELECT … 

FROM EMP E 

WhERE SAL > 50000 

AND JOB = ‘MANAGER' 

AND 25 < (SELECT COUNT(*) FROM EMP 

WhERE MGR=E.EMPNO);  

  (高效,执行时间10.6秒) 

SELECT … 

FROM EMP E 

WhERE 25 < (SELECT COUNT(*) FROM EMP 

WhERE MGR=E.EMPNO) 

AND SAL > 50000 

AND JOB = ‘MANAGER';  

  6. SELECT子句中避免使用 ‘ * ‘ 

  当您想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*' 是一个方便的具体相关方法.不幸的是,这是一个非常低效的具体相关方法. 实际上,ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间. 

  7. 减少访问网站数据库的次数 

  当执行每条SQL数据库语句时, ORACLE在内部执行了许多工作: 解析SQL数据库语句, 估算索引的利用率, 绑定变量 , 读数据块等等. 由此可见, 减少访问网站数据库的次数 , 就能实际上减少ORACLE的工作量. 

  例如, 以下有三种具体相关方法可以检索出雇员号等于0342或0291的职员. 

  具体相关方法1 (最低效) 

SELECT EMP_NAME , SALARY , GRADE 

FROM EMP 

WhERE EMP_NO = 342; 

SELECT EMP_NAME , SALARY , GRADE 

FROM EMP 

WhERE EMP_NO = 291;  

  具体相关方法2 (次低效) 

DECLARE 

CURSOR C1 (E_NO NUMBER) IS 

SELECT EMP_NAME,SALARY,GRADE 

FROM EMP 

WhERE EMP_NO = E_NO; 

BEGIN 

OPEN C1(342); 

FETCh C1 INTO …,..,.. ; 

….. 

OPEN C1(291); 

FETCh C1 INTO …,..,.. ; 

CLOSE C1; 

END;  

  具体相关方法3 (高效) 

SELECT A.EMP_NAME , A.SALARY , A.GRADE, 

B.EMP_NAME , B.SALARY , B.GRADE 

FROM EMP A,EMP B 

WhERE A.EMP_NO = 342 

AND B.EMP_NO = 291;  

  注

u2HAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。

标签:

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304416

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市