摘要: http://www.cnblogs.com/rootq/archive/2008/11/17/1334727.html(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.(2)WHERE子句中的连接顺序.: ORACLE采用自下而上的顺 阅读全文
posted @ 2014-02-22 23:07 ademen 阅读(194) 评论(0) 推荐(0)
摘要: SQL语句中的三个关键字:MINUS(减去),INTERSECT(交集)和UNION ALL(并集);关于集合的概念,中学都应该学过,就不多说了.这三个关键字主要是对数据库的查询结果进行操作,正如其中文含义一样:两个查询,MINUS是从第一个查询结果减去第二个查询结果,如果有相交部分就减去相交部分;否则和第一个查询结果没有区别.INTERSECT是两个查询结果的交集,UNION ALL是两个查询的并集;虽然同样的功能可以用简单SQL语句来实现,但是性能差别非常大,有人做过实验:made_order共23万笔记录,charge_detail共17万笔记录: SELECT order_id FRO 阅读全文
posted @ 2014-02-16 23:50 ademen 阅读(445) 评论(0) 推荐(0)
摘要: 单表创建的相关视图在实际的操作中,可以对其进行增、删与改。Oracle数据库多表创建的视图是不能直接进行视图添加等更新。今天和大家分享的是Oracle多表创建的视图insert的实际操作, 解决办法:替代触发器。说道这,大家可能就都知道怎么做了。 create or replace trigger 名称 1.Instead Of Insert or update or delete on 视图 1.for each row 2.Declare 3.begin 4.If Inserting Then Insert Into 基本表1 (t11,t12) Values (:New... 阅读全文
posted @ 2014-02-16 22:07 ademen 阅读(901) 评论(0) 推荐(0)