程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle性能優化操作三:增加查詢的范圍限制

oracle性能優化操作三:增加查詢的范圍限制

編輯:Oracle教程

oracle性能優化操作三:增加查詢的范圍限制


增加查詢的范圍限制,避免全范圍的搜索。

例:以下查詢表record 中時間ActionTime小於2001年3月1日的數據:

select * from record where ActionTime < to_date ('20010301' ,'yyyymm');

查詢計劃表明,上面的查詢對表進行全表掃描,如果我們知道表中的最早的數據為2001年1月1日,那麼,可以增加一個最小時間,

使查詢在一個完整的范圍之內。修改如下:

select * from record where ActionTime < to_date ('20010301' ,'yyyymm')

and   ActionTime > to_date ('20010101' ,'yyyymm');

後一種SQL語句將利用上ActionTime字段上的索引,從而提高查詢效率。

把'20010301'換成一個變量,根據取值的機率,可以有一半以上的機會提高效率。

同理,對於大於某個值的查詢,如果知道當前可能的最大值,也可以在Where子句中加上 “AND 列名< MAX(最大值)”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved