ITPub博客

首页 > 数据库 > Oracle > Oracle开发误区(here)

Oracle开发误区(here)

原创 Oracle 作者:luisedalian 时间:2014-01-15 13:25:22 0 删除 编辑

1.避免对列进行运算

在编写SQL时,要尽量避免对列进行运算,要善于通过等价改写消除对列运算的SQL,

这样可以避免索引无法使用,从而提高语句效率。

点击(此处)折叠或打开

  1. DROP TABLE ljb_test;
  2. CREATE TABLE ljb_test(ID NUMBER, log_time DATE);
  3. INSERT INTO ljb_test SELECT ROWNUM, SYSDATE - ROWNUM FROM dual CONNECT BY ROWNUM <= 1000000;
  4. CREATE INDEX idx_ljbtest_logtime ON ljb_test(log_time);

  5. --下面的查询无法使用索引
  6. SELECT * FROM ljb_test WHERE TRUNC(log_time) = to_date(\'2013-12-25\', \'YYYY-MM-DD\');

  7.         ID LOG_TIME
  8. ---------- ---------
  9.            6 25-DEC-13



点击(此处)折叠或打开

  1. --使用索引, 逻辑读显著下降
  2. SELECT * FROM ljb_test
  3.   WHERE log_time >= to_date(\'2013-12-25\', \'YYYY-MM-DD\')
  4.   AND log_time < to_date(\'2013-12-25\', \'YYYY-MM-DD\') + 1;

  5.         ID LOG_TIME
  6. ---------- ---------
  7.            6 25-DEC-13




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1070877/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: WHERE IN LIST(续)
下一篇: 存储过程与权限
请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6040856