亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

如何正確的使用or展開來改寫SQL查詢

2024-07-21 02:42:16
字體:
來源:轉載
供稿:網友
問題:

下面的這條sql應該怎么優化?

select * from sys_user where user_code = 'zhangyong' or user_code in (select grp_code from sys_grp where sys_grp.user_code = 'zhangyong')Execution Plan----------------------------------------------------------0  SELECT STATEMENT Optimizer=RULE1  0   FILTER2  1     TABLE access (FULL) OF 'SYS_USER'3  1     INDEX (UNIQUE SCAN) OF 'PK_SYS_GRP' (UNIQUE)Statistics----------------------------------------------------------14  recursive calls4  db block gets30590 consistent gets0  physical reads0  redo size1723  bytes sent via SQL*Net to client425  bytes received via SQL*Net from client2  SQL*Net roundtrips to/from client0  sorts (memory)0  sorts (disk)3  rows PRocessed

里面的查詢返回的記錄數一般只有一兩條,但sys_user表的數據很多,怎么樣才能讓這條sql以sys_grp為驅動表?

表中記錄情況如下:

SQL> select count(*) from sys_grp;COUNT(*)----------25130SQL> select count(*) from sys_user;COUNT(*)----------15190

優化:

降低邏輯讀是優化SQL的基本原則之一

我們嘗試通過降低邏輯讀來加快SQL的執行.

這里我們使用or展開來改寫SQL查詢:

select * from sys_user where user_code = 'zhangyong' union allselect * from sys_user where user_code <> 'zhangyong' and user_code in (select grp_code from sys_grp where sys_grp.user_code = 'zhangyong')Statistics----------------------------------------------------------          0  recursive calls          0  db block gets         130 consistent gets          0  physical reads          0  redo size       1723  bytes sent via SQL*Net to client        425  bytes received via SQL*Net from client          2  SQL*Net roundtrips to/from client          1  sorts (memory)          0  sorts (disk)          3  rows processedExecution Plan----------------------------------------------------------0      SELECT STATEMENT Optimizer=RULE1    0   UNION-ALL2    1     TABLE ACCESS (BY INDEX ROWID) OF 'SYS_USER'3    2       INDEX (UNIQUE SCAN) OF 'PK_SYS_USER' (UNIQUE)4    1     NESTED LOOPS5    4       VIEW OF 'VW_NSO_1'6    5         SORT (UNIQUE)7    6           TABLE ACCESS (BY INDEX ROWID) OF 'SYS_GRP'8    7             INDEX (RANGE SCAN) OF 'FK_SYS_USER_CODE' (NON-UNIQUE)9    4       TABLE ACCESS (BY INDEX ROWID) OF 'SYS_USER'10    9         INDEX (UNIQUE SCAN) OF 'PK_SYS_USER' (UNIQUE)

我們注意到,通過改寫,邏輯讀減少到130,從30590到130這是一個巨大的提高,減少邏輯讀最終會減少資源消耗,提高SQL的執行效率.

這個改寫把Filter改為了Nest LOOP,索引得以充分利用.從而大大提高了性能.

我們同時注意到,這里引入了一個排序

排序來自于這一步:

----------------------------------6  5  SORT (UNIQUE)7  6    TABLE ACCESS (BY INDEX ROWID) OF 'SYS_GRP'8  7   INDEX (RANGE SCAN) OF 'FK_SYS_USER_CODE' (NON-UNIQUE)----------------------------------

注釋:在'SYS_GRP'表中,user_code 是非唯一鍵值,在in值判斷里,要做sort unique排序,去除重復值,這里的union all是不需要排序的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一精品福利| 在线性视频日韩欧美| 亚洲人精选亚洲人成在线| 亚洲精品一区二区在线| 在线成人激情黄色| 北条麻妃在线一区二区| 欧美成人午夜剧场免费观看| 青青精品视频播放| 欧美一级在线播放| 中文字幕日韩欧美在线| 青青精品视频播放| 久久久久久久91| 国产在线拍揄自揄视频不卡99| 丝袜情趣国产精品| 国产亚洲精品久久久久动| 宅男66日本亚洲欧美视频| 97碰碰碰免费色视频| 亚洲一二三在线| 久久成人精品电影| 久久久久五月天| 亚洲成人激情视频| 91免费在线视频网站| 日韩中文字幕网| 久久av在线看| 日韩av影视综合网| 国产999精品久久久影片官网| 狠狠做深爱婷婷久久综合一区| 国产精品黄色影片导航在线观看| 欧美精品久久久久| 久热在线中文字幕色999舞| 777国产偷窥盗摄精品视频| 亚洲国产精品一区二区久| 欧美日韩在线免费观看| 亚洲欧美三级伦理| 国产精品专区第二| 国产成人激情小视频| 欧美在线亚洲一区| 日韩美女av在线| 亚洲欧洲一区二区三区在线观看| 中文字幕亚洲综合久久筱田步美| 亚洲伊人第一页| 日韩电影第一页| 国产精品777| 国产一区二区三区高清在线观看| 91夜夜揉人人捏人人添红杏| 国产成人av网| 岛国av午夜精品| 国产精品大片wwwwww| 日本精品视频在线观看| 日本国产欧美一区二区三区| 久久综合伊人77777蜜臀| 国产精品伦子伦免费视频| 中文字幕国内精品| 国产美女91呻吟求| 亚洲精品福利免费在线观看| 日韩视频在线免费| 国产主播在线一区| 国产日韩欧美成人| 777午夜精品福利在线观看| 国产主播精品在线| 中文字幕日韩电影| 国产精品视频永久免费播放| 亚洲深夜福利在线| 亚洲a级在线播放观看| 在线观看欧美成人| 亚洲精品www久久久| 欧洲永久精品大片ww免费漫画| www.日本久久久久com.| 国产精品久久久久久久av大片| 在线观看免费高清视频97| 国产精品美女www爽爽爽视频| 欧美亚洲视频在线观看| 欧美午夜激情视频| 51午夜精品视频| 国产主播欧美精品| 亚洲男女自偷自拍图片另类| 欧美日韩国产一区中文午夜| 欧美精品在线免费| 在线成人免费网站| 毛片精品免费在线观看| 欧美日韩国内自拍| 情事1991在线| 国产精品91免费在线| 秋霞av国产精品一区| 色天天综合狠狠色| 日韩亚洲欧美成人| 亚洲一区av在线播放| 欧美性生交xxxxxdddd| 欧美黑人巨大精品一区二区| 91青草视频久久| 91精品在线观看视频| 国产精品久久久久999| 激情亚洲一区二区三区四区| 亚洲男人av在线| 欧美性精品220| 亚洲欧美国产精品专区久久| 国产精品高潮呻吟久久av黑人| 4438全国亚洲精品在线观看视频| 2021久久精品国产99国产精品| 亚洲欧美日韩精品久久| 欧美日本精品在线| 91爱爱小视频k| 亚洲精品国产精品自产a区红杏吧| 国产丝袜精品视频| 国产欧美一区二区三区在线| 国产精品亚洲аv天堂网| 国产精品一区二区久久精品| 欧美成人精品在线视频| 97久久精品人搡人人玩| 欧美一性一乱一交一视频| 91久久国产精品| 欧美日韩免费在线观看| 97视频免费在线看| 青青精品视频播放| 国产精品尤物福利片在线观看| 在线播放国产一区中文字幕剧情欧美| 亚洲一区二区在线播放| 国产美女久久精品香蕉69| 亚洲人成网站777色婷婷| 午夜精品免费视频| 国产精品大片wwwwww| 热久久免费国产视频| 尤物yw午夜国产精品视频| 91在线色戒在线| 日韩av网站电影| 亚洲一区av在线播放| 国产精品第2页| 日韩av色综合| 亚洲国产精品专区久久| 国产日韩欧美91| 欧美丝袜一区二区三区| 91麻豆国产语对白在线观看| 亚洲成人1234| 三级精品视频久久久久| 国内免费久久久久久久久久久| 精品久久久久久国产91| 欧美成人精品一区二区| 这里只有精品在线播放| 久久久亚洲福利精品午夜| 亚洲欧美综合精品久久成人| 久久人人爽人人爽爽久久| 亚洲一区二区三区777| 日韩中文字幕亚洲| 亚洲黄色av女优在线观看| 成人黄色片在线| 91精品中国老女人| 成人精品一区二区三区电影黑人| 日韩视频免费看| 国产美女久久精品| 国产在线日韩在线| 欧美最猛黑人xxxx黑人猛叫黄| 欧美日韩国产专区| 精品在线观看国产| 久久高清视频免费| 97色在线视频观看| 97精品欧美一区二区三区| 91久久精品国产91性色| 欧美日韩国产成人在线| 亚洲精品久久7777777| 91av在线免费观看| 亚洲美女福利视频网站| 日韩一区二区三区在线播放| 亚洲精品一区av在线播放| 欧美成人国产va精品日本一级|