表C 中sal 是索引列,如何优化下面的语句?select * from c where sal/12>2000

解决方案 »

  1.   

    注意了。。
    SAL 是索引列 索引列上避免出现计算 改成
    select * from c where sal >2000*12 
      

  2.   

    (22) 避免在索引列上使用计算.
    WHERE 子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描.
    举例:
    低效:
    SELECT … FROM DEPT WHERE SAL * 12 > 25000;
    高效:
    SELECT … FROM DEPT WHERE SAL > 25000/12;
      

  3.   

    select * from c where sal >2000*12  起初我也这么认为的!
    这是一个面试题,但面试官说这么做是错误的!我也很郁闷!
      

  4.   

    select * from c where sal >2000*12