校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > oracle下一條SQL語句的優化過程(比較詳細)

oracle下一條SQL語句的優化過程(比較詳細)

熱門標簽:北京外呼系統公司排名 百度地圖標注員是干什么 貴陽智能電銷機器人官網 外呼系統鄭州 地圖標注付款了怎么找不到了 北京營銷外呼系統廠家 溫州人工外呼系統 外呼系統口號 沈陽400電話是如何辦理
原來的語句是這樣的:

  select sum(sl0000) from xstfxps2 where
  dhao00 in (
  select dhao00 from xstfxps1 where trunc(ywrq00)=trunc(sysdate)
  and khdm00='500000003913');
  已用時間: 00: 02: 49.04
  
  Execution Plan
  ----------------------------------------------------------
  0 SELECT STATEMENT Optimizer=CHOOSE
  1 0 SORT (AGGREGATE)
  2 1 NESTED LOOPS
  3 2 TABLE ACCESS (FULL) OF 'XSTFXPS2'
  4 2 TABLE ACCESS (BY INDEX ROWID) OF 'XSTFXPS1'
  5 4 INDEX (UNIQUE SCAN) OF 'XSTFXPS1_PK' (UNIQUE)
  
  Statistics
  ----------------------------------------------------------
  0 recursive calls
  0 db block gets
  17355138 consistent gets
  34141 physical reads
  2912 redo size
  198 bytes sent via SQL*Net to client
  275 bytes received via SQL*Net from client
  2 SQL*Net roundtrips to/from client
  0 sorts (memory)
  0 sorts (disk)
  1 rows processed
  我們看到統計信息里面進行了17355138次邏輯讀,34141次物理IO,這是相當嚇人的數字。在執行計劃里面我們看到表XSTFXPS2來了一次全表掃描。
  我們首先看一下這兩張表總的數據量:
  SQL> select count(*) from xstfxps2;
  
  COUNT(*)
  ----------
  5585018
  我們這里看到XSTFXPS2這張表有5585018條記錄。
  SQL> select count(*) from xstfxps1;
  
  COUNT(*)
  ----------
  702121
  兩張表的表結構如下所示:
  SQL> desc xstfxps1
  Name Type Nullable Default Comments
  ------ ------------ -------- ------- --------
  DHAO00 NUMBER(8)
  LHDH00 NUMBER(8) Y
  FLDH00 NUMBER(8) Y
  FPLB00 VARCHAR2(2) Y
  YWRQ00 DATE Y
  YWRY00 VARCHAR2(8) Y
  SHRQ00 DATE Y
  XSQRRQ DATE Y
  XSQRRY VARCHAR2(8) Y
  KHDM00 VARCHAR2(12)
  XKZH00 VARCHAR2(12)
  CKDM00 VARCHAR2(2) Y
  THCKDM VARCHAR2(2) Y
  XSFSDM VARCHAR2(2) Y
  FXRYDM VARCHAR2(4) Y
  SHRYDM VARCHAR2(4) Y
  SHBJ00 VARCHAR2(1) 'N'
  FXBJ00 VARCHAR2(1) 'N'
  SKBJ00 VARCHAR2(2) Y
  FKDM00 VARCHAR2(2) Y
  
  SQL> desc xstfxps2
  Name Type Nullable Default Comments
  ------ ------------ -------- ------- --------
  DHAO00 NUMBER(8)
  SPDM00 VARCHAR2(8)
  DJIA00 NUMBER(7,2) 0
  FXSL00 NUMBER Y 0
  SL0000 NUMBER Y 0
  THSL00 NUMBER Y 0
  JE0000 NUMBER Y 0
  SE0000 NUMBER Y
  FPBBH0 VARCHAR2(11) Y
  FPHAO0 VARCHAR2(10) Y
  RBDH00 NUMBER(8) Y
  
  其中XSTFXPS1的客戶訂單的表頭,保存訂單的客戶信息、訂貨日期等信息。XSTFXPS2是訂單的表體,詳細記錄了客戶訂單的商品、價格、數量等信息。
  
  調整的第一步是把子查詢提取出來,再看語句的執行計劃。通常來說,如果語句能夠避免子查詢的使用,就盡量不用子查詢。因為子查詢的開銷是相當昂貴的。改寫后的語句如下:
  select sum(sl0000)
  from xstfxps2 a,(select dhao00 from xstfxps1 where trunc(ywrq00)=trunc(sysdate)
  and khdm00='500000003913') b
  where a.dhao00=b.dhao00;
  已用時間: 00: 00: 03.05
  Execution Plan
  ----------------------------------------------------------
  0 SELECT STATEMENT Optimizer=CHOOSE
  1 0 SORT (AGGREGATE)
  2 1 TABLE ACCESS (BY INDEX ROWID) OF 'XSTFXPS2'
  3 2 NESTED LOOPS
  4 3 TABLE ACCESS (FULL) OF 'XSTFXPS1'
  5 3 INDEX (RANGE SCAN) OF 'XSTFXPS2_PK' (UNIQUE)
  Statistics
  ----------------------------------------------------------
  0 recursive calls
  0 db block gets
  11974 consistent gets
  225 physical reads
  832 redo size
  211 bytes sent via SQL*Net to client
  275 bytes received via SQL*Net from client
  2 SQL*Net roundtrips to/from client
  0 sorts (memory)
  0 sorts (disk)
  1 rows processed
  
  我們可以看到邏輯IO由原來的17355138次下降到11974次,有了數量級的提升。執行時間也有原來將近3分鐘下降到現在的3秒多一些。很顯然性能有了大幅的提升。不過我們看到執行計劃里面表XSTFXPS1還是有一個全表掃描存在。通常來說我們應該盡量避免全表掃描的存在,尤其對于大表,應該建立合適的索引以避免FTS的產生。我們來看這兩張表的索引信息:
  
  select index_name,column_name from dba_ind_columns where table_name like 'XSTFXPS%'
  INDEX_NAME COLUMN_NAME
  ------------------------------ -----------------------------------
  XSTFXPS1_PK DHAO00
  XSTFXPS2_PK DHAO00
  XSTFXPS2_PK SPDM00
  
  我們看到這兩張表除了主鍵約束外都沒有建另外的索引。根據語句的查詢情況,我們建立了如下的復合索引:
  create index idx_xstfxps1_khdm00_ywrq00 on xstfxps1(khdm00,ywrq00) tablespace indx;
  
  為了使用索引,我們必須對原來的日期字段的條件進行一些調整。因為有個trunc()函數的存在,語句將不會使用到索引。我們只要明白trunc(ywrq00)=trunc(sysdate)事實上等同于ywrq00大于trunc(sysdate),小于trunc(sysdate+1)減去一秒,我們就有了比較好的辦法來處理
  這個條件。最終改寫后的語句如下:
  select sum(sl0000)
  from xstfxps2 a, xstfxps1 b
  where a.dhao00=b.dhao00
  and b.khdm00='500000003913'
  and b.ywrq00 between trunc(sysdate)
  and trunc(sysdate)+1-1/(24*60*60);
  Execution Plan
  ----------------------------------------------------------
  0 SELECT STATEMENT Optimizer=CHOOSE
  1 0 SORT (AGGREGATE)
  2 1 TABLE ACCESS (BY INDEX ROWID) OF 'XSTFXPS2'
  3 2 NESTED LOOPS
  4 3 TABLE ACCESS (BY INDEX ROWID) OF 'XSTFXPS1'
  5 4 INDEX (RANGE SCAN) OF 'IDX_XSTFXPS1_KHDM00_YWRQ00'
  (NON-UNIQUE)
  
  6 3 INDEX (RANGE SCAN) OF 'XSTFXPS2_PK' (UNIQUE)
  Statistics
  ----------------------------------------------------------
  0 recursive calls
  0 db block gets
  3 consistent gets
  0 physical reads
  0 redo size
  210 bytes sent via SQL*Net to client
  275 bytes received via SQL*Net from client
  2 SQL*Net roundtrips to/from client
  0 sorts (memory)
  0 sorts (disk)
  1 rows processed
  我們這時候看邏輯IO已經降為3次,語句的執行計劃也符合我們的調整目標,創建的索引產生了比較大的效果。這條語句的調整至此告一段落。
您可能感興趣的文章:
  • oracle 性能優化建議小結
  • Oracle性能究極優化
  • Oracle性能究極優化 下
  • Oracle之SQL語句性能優化(34條優化方法)
  • Oracle 查詢優化的基本準則詳解
  • Oracle 數據庫優化實戰心得總結
  • oracle數據庫sql的優化總結
  • Oracle性能究極優化(Oracle 性能優化)
  • Oracle SQL性能優化系列學習一
  • Linux中大內存頁Oracle數據庫優化的方法

標簽:溫州 衢州 通遼 包頭 淮北 潮州 衡水 定西

巨人網絡通訊聲明:本文標題《oracle下一條SQL語句的優化過程(比較詳細)》,本文關鍵詞  oracle,下,一條,SQL,語句,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle下一條SQL語句的優化過程(比較詳細)》相關的同類信息!
  • 本頁收集關于oracle下一條SQL語句的優化過程(比較詳細)的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    26uuu欧美| 国产精品一区二区在线播放| 99久久精品免费看| 亚洲高清免费观看| 日韩欧美一级在线播放| 丰满岳乱妇一区二区三区| 成人欧美一区二区三区视频网页| 91电影在线观看| 国产精品影音先锋| 国产精品对白交换视频| 在线电影院国产精品| 国产成人精品影视| 激情五月婷婷综合网| 亚洲与欧洲av电影| 国产欧美综合在线观看第十页| 欧美中文一区二区三区| 成人av资源站| 成人国产在线观看| 成人综合在线视频| 国产精品一区二区男女羞羞无遮挡| 中文字幕欧美一| 国产精品欧美极品| 中文字幕一区二区三区色视频 | 欧美乱妇一区二区三区不卡视频| 99久久精品国产网站| 国产精品一二三四五| 国产在线播放一区| 精品一区二区免费看| 美女精品一区二区| 蜜臀久久久99精品久久久久久| 日韩av网站在线观看| 久久福利资源站| 99riav久久精品riav| 欧美主播一区二区三区美女| 91行情网站电视在线观看高清版| 欧美影片第一页| 久久午夜电影网| 国产精品无码永久免费888| 亚洲免费三区一区二区| 婷婷中文字幕一区三区| 国产精品白丝jk白祙喷水网站| 99麻豆久久久国产精品免费| 7777精品伊人久久久大香线蕉经典版下载| av资源站一区| 国产亚洲制服色| 一区二区在线观看视频在线观看| 天天av天天翘天天综合网| 国产乱码精品一区二区三区忘忧草 | 97精品电影院| 欧美成人性战久久| 亚洲国产成人av好男人在线观看| 国产精品一区二区在线观看网站| 欧美亚洲另类激情小说| 精品国精品自拍自在线| 亚洲成av人片在线| 91成人免费网站| 国产精品久久久久久久久久久免费看 | 中文字幕一区二区在线观看 | 亚洲成人一二三| 色猫猫国产区一区二在线视频| 国产亚洲欧美激情| 久久精品国产秦先生| 91精品国产91久久久久久最新毛片| 亚洲欧美在线aaa| 99久久精品一区二区| 欧美激情资源网| 韩日欧美一区二区三区| 日韩欧美专区在线| 老司机免费视频一区二区三区| 91精品国产乱码久久蜜臀| 亚洲成人精品影院| 欧美一区二区高清| 国产美女精品一区二区三区| 国产亚洲欧美中文| 色综合久久综合中文综合网| 亚洲国产精品一区二区尤物区| 国产91精品一区二区麻豆网站| 国产精品不卡在线| 91在线视频免费91| 亚洲午夜激情av| 国产色一区二区| 91在线码无精品| 日本欧美大码aⅴ在线播放| 久久综合久久综合久久| 欧美艳星brazzers| 国产一区二区不卡老阿姨| 亚洲欧美激情插| 欧美不卡一区二区三区| caoporm超碰国产精品| 三级不卡在线观看| 亚洲欧洲精品一区二区三区 | 日韩电影在线观看网站| 中文字幕成人在线观看| 91久久奴性调教| 国产不卡免费视频| 轻轻草成人在线| 亚洲欧洲制服丝袜| 亚洲精品一区二区三区香蕉| 91久久线看在观草草青青| 国产乱码精品一区二区三| 日韩影院精彩在线| 亚洲精品中文在线观看| 国产精品久久影院| 国产欧美日韩在线视频| 精品国产电影一区二区| 欧美另类久久久品| 欧美视频一区二区三区在线观看| 粉嫩一区二区三区在线看| 成人激情动漫在线观看| 国产伦精品一区二区三区视频青涩 | 不卡电影免费在线播放一区| 成年人网站91| 日韩一区二区影院| 欧美日韩aaaaaa| 欧美日本在线观看| 欧美日韩国产一区| 国产成人亚洲综合a∨婷婷| 久久成人18免费观看| 麻豆国产精品一区二区三区| 视频一区免费在线观看| 男人的j进女人的j一区| 日韩中文字幕一区二区三区| 亚洲不卡av一区二区三区| 亚洲成av人片一区二区梦乃| 亚洲国产成人tv| 青青青伊人色综合久久| 国产精品99久久久久久久女警| 91在线观看高清| 日韩三级av在线播放| 国产精品久久久一本精品| 午夜精品一区二区三区免费视频| 精品一区二区在线免费观看| 在线观看av一区| 久久综合色婷婷| 亚洲一二三四在线观看| 成人永久免费视频| 欧美一区欧美二区| 国产精品福利一区| 国产又黄又大久久| 欧美一区二区三区在线视频| 欧美极品少妇xxxxⅹ高跟鞋| 免费观看在线色综合| 欧美色老头old∨ideo| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美疯狂做受xxxx富婆| 一区二区三区 在线观看视频| 在线亚洲免费视频| 狠狠色狠狠色综合| 亚洲日本中文字幕区| 一本一本大道香蕉久在线精品 | 欧美一二三区在线| 日韩精品电影在线观看| 91福利国产成人精品照片| 中文字幕一区二区在线观看| 成人午夜免费av| 日韩一区在线播放| 欧美系列日韩一区| 日韩激情视频网站| 久久久久久久电影| 欧美中文一区二区三区| 久久99精品一区二区三区三区| 日韩视频国产视频| 精品亚洲免费视频| 亚洲女女做受ⅹxx高潮| 欧美高清激情brazzers| 97se狠狠狠综合亚洲狠狠| 日日夜夜免费精品| 欧美激情在线看| 日韩色视频在线观看| av中文一区二区三区| 久久精品国产精品青草| 中文字幕在线一区二区三区| 91蜜桃在线观看| 蜜臀av国产精品久久久久| 国产精品色哟哟网站| 日韩一级免费一区| 在线观看日韩国产| 成人av在线影院| 精品一区二区三区影院在线午夜 | 欧美国产综合一区二区| 在线播放欧美女士性生活| 色综合久久久久久久| 99riav一区二区三区| 成人av综合一区| 91在线免费播放| 91香蕉国产在线观看软件| 国产成人亚洲综合色影视| 成人动漫一区二区| 色偷偷久久一区二区三区| 五月天欧美精品| 一区二区三区在线观看国产| 国产精品久久影院| 久久婷婷成人综合色| 精品美女被调教视频大全网站| 51久久夜色精品国产麻豆| 欧美亚洲国产bt| 日韩欧美三级在线| 久久久影视传媒| 亚洲自拍偷拍欧美| 日韩黄色小视频|