上一页 1 ··· 181 182 183 184 185 186 187 188 189 ··· 280 下一页
摘要: 如果你对一个列和一组有限的值进行比较, 优化器可能执行多次扫描并对结果进行合并连接. 举例: SELECT * FROM LODGING WHERE MANAGER IN (‘BILL GATES’,’KEN MULLER’); 优化器可能将它转换成以下形式 SELECT * FROM LODGIN 阅读全文
posted @ 2019-07-03 11:53 樊伟胜 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子. 在下面的例子里, ‘!=’ 将不使用索引. 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中. 不使用索引: SELECT ACCOUNT_NAME FROM TRANSACTION WHERE AMOUNT 阅读全文
posted @ 2019-07-03 11:50 樊伟胜 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换. 假设 EMPNO是一个数值类型的索引列. SELECT … FROM EMP WHERE EMPNO = ‘123’ 实际上,经过ORACLE类型转换, 语句转化为: SELECT … FROM EMP WHERE EMPNO 阅读全文
posted @ 2019-07-03 11:46 樊伟胜 阅读(455) 评论(0) 推荐(0) 编辑
摘要: ORDER BY 子句只在两种严格的条件下使用索引. ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列. 例如: 表DEPT包含以下列: DEPT_CODE P 阅读全文
posted @ 2019-07-03 11:45 樊伟胜 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 对于表的访问,可以使用两种Hints. FULL 和 ROWID FULL hint 告诉ORACLE使用全表扫描的方式访问指定表. 例如: SELECT /*+ FULL(EMP) */ * FROM EMP WHERE EMPNO = 7893; ROWID hint 告诉ORACLE使用TAB 阅读全文
posted @ 2019-07-03 11:44 樊伟胜 阅读(819) 评论(0) 推荐(0) 编辑
摘要: 当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序. 如果用UNION ALL替代UNION, 这样排序就不是必要了. 效率就会因此得到提高. 举例: 低效: SELECT ACCT_NUM, BALANCE_AMT FRO 阅读全文
posted @ 2019-07-03 11:23 樊伟胜 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 当执行查询时,ORACLE采用了内部的操作. 下表显示了几种重要的内部操作. ORACLE Clause 内部操作 ORDER BY SORT ORDER BY UNION UNION-ALL MINUS MINUS INTERSECT INTERSECT DISTINCT,MINUS,INTERS 阅读全文
posted @ 2019-07-03 11:22 樊伟胜 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引 .对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空,则记录存在于索引中. 举例: 如果唯一性索引建立在表的A列和B列上, 并且表中存在一条记录的A,B 阅读全文
posted @ 2019-07-03 11:09 樊伟胜 阅读(4546) 评论(3) 推荐(2) 编辑
摘要: 如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引. 译者按: 这也是一条简单而重要的规则. 见以下实例. SQL> create table multiindexusage ( inda number , indb num 阅读全文
posted @ 2019-07-03 11:09 樊伟胜 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 下面的查询可以被更有效率的语句替换: 低效: SELECT…. FROM LOCATION WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30 高效 SELECT… FROM LOCATION WHERE LOC_IN IN (10,20,30); 这是一 阅读全文
posted @ 2019-07-03 11:01 樊伟胜 阅读(2286) 评论(0) 推荐(0) 编辑
上一页 1 ··· 181 182 183 184 185 186 187 188 189 ··· 280 下一页