- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
表联结与子查询
表联结与子查询;3.交叉联结
联结中不指定任何条件,获得笛卡尔积.
4.外联结
一张表与另外一张表中的记录不相匹配的记录也包括其中.包括LEFT,RIGHT,FULL三种.
5.自连接
联结左右两端的表为同一张表
6.层级连接
一种特殊的自连接,为了获得表中的父子关系,或生成一个树.
7.反联结
;一张表的记录并未与其他表的记录相匹配,则返回这些记录.
8.半联结
一张表中的和其他表中的记录相匹配的记录被返回,然而外表只返回一行记录.
;二.联结方法
1.嵌套循环
在嵌套循环联结中,oralce会对第一张表(外表)中发现的每一行记录对第二个表(内表)执行一次有哪些信誉好的足球投注网站.
;2.散列联结
当执行散列联结时,oracle会对两张表中的一张
表构建散列表.
通常,在散列联结和排序合并联结都可以使用的条
件下,散列联结比排序合并联结更加高效,而且在一
张表的大部分数据被访问的情况下,散列联结也比
嵌套循环联结更高效.;3.排序合并联结
排序合并联结适用于需要包含
访问表中的大部分数据或内表
没有索引访问可用的联结.在考
虑排序合并联结的条件下,散列
联结通常更高效.然而,排序合并
联结可以被用于无法使用散列
联结的地方(不等联结).;4.联结算法的比较和选择
1).当联结涉及的记录只占表中相对小的比例并且索引支持的时候,嵌套循环联结方法较为适合.而当表的大部分数据参与联结或没有合适的索引时,排序合并和散列联结则更合适.
2).散列联结在结果集不需要排序的情况下通常是比排序合并更优的选择,但是散列联结不能用于不等联结.
;避免联结
1.反范式化
Everything is key;
在一张表中维护另一张表的反范式化的数据.
select e.empno,e.ename,d.dname from emp e ,dept d where e.deptno=d.deptno;
可以在员工表上维护dname字段来避免联结
Alter table emp add (dname varchar(14));---添加新列
Update emp set dname=(select dname from dept where emp.depno=dept.depno);---将数据更新
;建立对应的触发器,以同步更新以后的数据(触发器会带来dml的额外开销,11g之后引入虚拟列,可以减少这部分开销,但是虚拟列主要是使用当前表字段的处理)
create or replace trigger trg_emp_dname before insert or update of deptno
on emp for each row
begin
if :new.deptno is not null
then
select dname into :new.dname
from dept
where deptno = :new.deptno;
end if;
end;
/
;2.物化视图
将物化视图和查询重写联合起来可以用来避免联结
For example:
create materialized view mv_emp_dept refresh complete enable query rewrite as select e.empno,e.ename,d.dname from dept d ,emp e where e.deptno=d.deptno;
查询新的执行计划.
;Execution Plan
----------------------------------------------------------
Plan hash value: 632580757
-------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | MAT_VIEW REWRITE ACCESS FULL| MV_EMP_DEPT | 15 | 3
文档评论(0)