国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

優(yōu)化,提高速度

2024-07-21 02:39:13
字體:
供稿:網(wǎng)友

  最近的一個項目,需要對幾個超過千萬的表進行計算,JION,復(fù)雜查詢等操作,覺得SQL語句的優(yōu)化非常重要,把一些心得寫得出,希望同行們能糾正我的錯誤。
  
  ---與SQL優(yōu)化(包括內(nèi)存空間)有關(guān)一些INIT參數(shù)
  OPTIMIZER_MODE
  SORT_AREA
  SHARED_POOL_SZIE
  
  ---一些不使用索引的情況
  1,NOT IN
  2,NOT BETWEEN
  3,LIKE(第一個字符非%號除外,如name like '李%')
  4,<>
  5,IS NULL/IS NOT NULL
  6,查詢的字段加函數(shù)
  7,在8I中,多字段的組合索引(A,B,C),select * from ** wher B='33',則索引也不會用。(按前綴式規(guī)則使用索引除外,如A='33' and B='33' A='33' A='33' and C='33')
  注:9I除外
  
  ---查詢語句比較優(yōu)化的寫法:
  1,加HINT,改變其執(zhí)行路徑
  2,可能使用exsit的地方就盡量不用IN,可以使用not exiist的地方,盡量不要用not in
  3,兩個表進行JION時,大表放在前面,JION字段建索引
  4,盡量用其它寫法,取代NOT IN,如a,b表同結(jié)構(gòu),數(shù)據(jù)量很大,則代替select * from a where a.c not in (select c from b )
  的語句有
  a)select a.* from a, b where a.c = b.c + and b.c is null(據(jù)說速度比原寫法提高30倍)
  b)select * from a minus select a.* from a,b where a.c=b.c (速度其次)
  c)select * from a where not exist(select a.* from a,b where a.c=b.c) (也不錯)
  
  
  5,動態(tài)SQL中,盡量多用execute immediate,而少用DBMS_SQL,前者綜合效率優(yōu)于后者
  
  6,對于很復(fù)雜的查詢語句,可以建立臨時表進行緩沖(關(guān)于臨時表的解釋與使用,還希望同行告訴我在哪里有。。。)
  
  7,COUNT(*)與COUNT(某列)一樣進行全表掃描Fast Full Index Scan,速度差不多
  
  8,經(jīng)常同時存取多列,或經(jīng)常使用GROUP BY的SQL語句,最好對表的GROUP字段建立組合索引。組合索引要盡量使要害查詢形成索引覆蓋,其前導(dǎo)列一定是使用最頻繁的列。
  
  9,對于字段取值單一(如性別字段只有男與女),而經(jīng)常在性別上做查詢,則建立位圖索引。
  注:BITMAP INDEX通常用于DSS,假如你的系統(tǒng)是OLTP,DML操作將LOCK整個BITMAP SEGMENT,因此只在DSS下 考慮BITMAP INDEX

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永宁县| 大姚县| 淅川县| 乌拉特中旗| 凤山县| 女性| 资中县| 凌源市| 清远市| 延川县| 凤城市| 仁布县| 噶尔县| 开封市| 志丹县| 盐津县| 静宁县| 望都县| 扶风县| 卢氏县| 闽清县| 黄大仙区| 鹤庆县| 德钦县| 石屏县| 蒙自县| 永德县| 文登市| 遂平县| 宁陵县| 延吉市| 祥云县| 分宜县| 泰顺县| 九台市| 宝鸡市| 潼关县| 北碚区| 获嘉县| 恩施市| 齐齐哈尔市|