久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Oracle 10g(10.1.0.2)中的OPTIMIZER_INDEX_COST_ADJ

瀏覽:186日期:2023-11-15 14:52:01
Oracle 10g(10.1.0.2)中的OPTIMIZER_INDEX_COST_ADJ Tom Kyte的新書Effective Oracle by Design的第6章 Getting the Most Out of the Cost-Based Optimizer中介紹了參數OPTIMIZER_INDEX_COST_ADJ,并認為可以理解為Oracle執行多塊(MultiBlock)I/O(比如全表掃描)的代價與執行單塊(Single-block)I/O代價的相對比例。Tom指出,9i下該參數缺省值為100,意即二者擁有相同的代價,若減小,則CBO傾向于使用索引(即單塊I/O),反之則傾向于全表掃描(多塊I/O)。Tom同樣給出了一個不錯的例子。 在自己的手提上試驗了一下,硬盤大小原因,只裝了一個Oracle 10g(10.1.0.2),誰知就發現該參數在10g下取值發生了改變。我們先來看一下參照Tom的實驗: A. 創建數據表。 SQL> drop table t1; 表已刪除。 SQL> drop table t2; 表已刪除。 SQL> create table t1 2; as 3; select mod(rownum,1000) id,rpad('x',300,'x') data 4; from all_objects 5; where rownum<=5000; 表已創建。 SQL> ed 已寫入 file afiedt.buf 1; create table t2 2; as 3; select rownum id,rpad('x',300,'x') data 4; from all_objects 5* where rownum<=1000 SQL> / 表已創建。 B.創建索引并分析。 SQL> create index idx_t1 on t1(id); 索引已創建。 SQL> create index idx_t2 on t2(id); 索引已創建。 SQL> ed 已寫入 file afiedt.buf 1; begin 2;dbms_stats.gather_table_stats 3;(user,'T1',method_opt=>'for all indexed columns',cascade=>true); 4;dbms_stats.gather_table_stats 5;(user,'T2',method_opt=>'for all indexed columns',cascade=>true); 6* end; SQL> / PL/SQL 過程已成功完成。 C.查詢缺省值,并設置好環境。 SQL> set autot off SQL> show parameters optimizer_index_cost_adj; NAME TYPE;;;;;VALUE; ------------------------------------ ----------- ------------------------------ optimizer_index_cost_adj;;integer;;100; SQL> set autot traceonly eXP stat; D.在缺省值下查詢的結果。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=13 Card=5 Bytes=1000; );; 1;0TABLE Access (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=2 Card; =1 Bytes=100) 2;1;;NESTED LOOPS (Cost=13 Card=5 Bytes=1000); 3;2;;;;TABLE ACCESS (BY INDEX ROWID) OF 'T2' (TABLE) (Cost=3 Card=5 Bytes=500);; 4;3 INDEX (RANGE SCAN) OF 'IDX_T2' (INDEX) (Cost=2 Card=; 5); 5;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 367; recursive calls; 0; db block gets;;; 101; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 12; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;;; E.修改參數值,注重,引用Tom的結論,9i中這個值在0-100之間,而10g呢? SQL> alter session set optimizer_index_cost_adj=0; ERROR: ORA-00068: 值 0 對參數 optimizer_index_cost_adj 無效, 必須在 1 和 10000 之間 SQL> alter session set optimizer_index_cost_adj=1; 會話已更改。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=5 Bytes=1000); 1;0TABLE ACCESS (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=1 Card; =1 Bytes=100) 2;1;;NESTED LOOPS (Cost=2 Card=5 Bytes=1000) 3;2;;;;TABLE ACCESS (BY INDEX ROWID) OF 'T2' (TABLE) (Cost=1 Card=5 Bytes=500);; 4;3 INDEX (RANGE SCAN) OF 'IDX_T2' (INDEX) (Cost=2 Card=; 5); 5;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 1; recursive calls; 0; db block gets;;; 48; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; SQL> alter session set optimizer_index_cost_adj=50; 會話已更改。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=7 Card=5 Bytes=1000); 1;0TABLE ACCESS (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=1 Card; =1 Bytes=100) 2;1;;NESTED LOOPS (Cost=7 Card=5 Bytes=1000) 3;2;;;;TABLE ACCESS (BY INDEX ROWID) OF 'T2' (TABLE) (Cost=2 Card=5 Bytes=500);; 4;3 INDEX (RANGE SCAN) OF 'IDX_T2' (INDEX) (Cost=2 Card=; 5); 5;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 1; recursive calls; 0; db block gets;;; 48; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; F.繼續修改參數值,改大。 SQL> alter session set optimizer_index_cost_adj=200; 會話已更改。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=26 Card=5 Bytes=1000; );; 1;0TABLE ACCESS (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=4 Card; =1 Bytes=100) 2;1;;NESTED LOOPS (Cost=26 Card=5 Bytes=1000); 3;2;;;;TABLE ACCESS (BY INDEX ROWID) OF 'T2' (TABLE) (Cost=6 Card=5 Bytes=500);; 4;3 INDEX (RANGE SCAN) OF 'IDX_T2' (INDEX) (Cost=2 Card=; 5); 5;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 1; recursive calls; 0; db block gets;;; 48; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; SQL> alter session set optimizer_index_cost_adj=500; 會話已更改。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=63 Card=5 Bytes=1000; );; 1;0TABLE ACCESS (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=10 Car; d=1 Bytes=100);;;;; 2;1;;NESTED LOOPS (Cost=63 Card=5 Bytes=1000); 3;2;;;;TABLE ACCESS (FULL) OF 'T2' (TABLE) (Cost=13 Card=5 By; tes=500);;; 4;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 1; recursive calls; 0; db block gets;;; 90; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; SQL> alter session set optimizer_index_cost_adj=1000; 會話已更改。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=66 Card=5 Bytes=1000; );; 1;0HASH JOIN (Cost=66 Card=5 Bytes=1000);;;; 2;1;;TABLE ACCESS (FULL) OF 'T2' (TABLE) (Cost=13 Card=5 Byte; s=500);;;;; 3;1;;TABLE ACCESS (FULL) OF 'T1' (TABLE) (Cost=52 Card=26 Byt; es=2600);;; 統計信息 ----------------------------------------------------------;;; 1; recursive calls; 0; db block gets;;; 271; consistent gets; 213; physical reads;; 0; redo size; 1651; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; SQL> alter session set optimizer_index_cost_adj=10000; 會話已更改。 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=66 Card=5 Bytes=1000; );; 1;0HASH JOIN (Cost=66 Card=5 Bytes=1000);;;; 2;1;;TABLE ACCESS (FULL) OF 'T2' (TABLE) (Cost=13 Card=5 Byte; s=500);;;;; 3;1;;TABLE ACCESS (FULL) OF 'T1' (TABLE) (Cost=52 Card=26 Byt; es=2600);;; 統計信息 ----------------------------------------------------------;;; 1; recursive calls; 0; db block gets;;; 271; consistent gets; 0; physical reads;; 0; redo size; 1651; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; G.現在看看對性能的影響。 SQL> set timing on SQL> alter session set optimizer_index_cost_adj=100; 會話已更改。 已用時間:; 00: 00: 00.00 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 已用時間:; 00: 00: 00.02 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=13 Card=5 Bytes=1000; );; 1;0TABLE ACCESS (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=2 Card; =1 Bytes=100) 2;1;;NESTED LOOPS (Cost=13 Card=5 Bytes=1000); 3;2;;;;TABLE ACCESS (BY INDEX ROWID) OF 'T2' (TABLE) (Cost=3 Card=5 Bytes=500);; 4;3 INDEX (RANGE SCAN) OF 'IDX_T2' (INDEX) (Cost=2 Card=; 5); 5;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 0; recursive calls; 0; db block gets;;; 48; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; SQL> alter session set optimizer_index_cost_adj=1; 會話已更改。 已用時間:; 00: 00: 00.00 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 已用時間:; 00: 00: 00.02 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=5 Bytes=1000); 1;0TABLE ACCESS (BY INDEX ROWID) OF 'T1' (TABLE) (Cost=1 Card; =1 Bytes=100) 2;1;;NESTED LOOPS (Cost=2 Card=5 Bytes=1000) 3;2;;;;TABLE ACCESS (BY INDEX ROWID) OF 'T2' (TABLE) (Cost=1 Card=5 Bytes=500);; 4;3 INDEX (RANGE SCAN) OF 'IDX_T2' (INDEX) (Cost=2 Card=; 5); 5;2;;;;INDEX (RANGE SCAN) OF 'IDX_T1' (INDEX) (Cost=1 Card=1); 統計信息 ----------------------------------------------------------;;; 0; recursive calls; 0; db block gets;;; 48; consistent gets; 0; physical reads;; 0; redo size; 1507; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; SQL> alter session set optimizer_index_cost_adj=10000; 會話已更改。 已用時間:; 00: 00: 00.00 SQL> ed 已寫入 file afiedt.buf 1; select * from t1,t2 2; where t1.id=t2.id 3*and t2.id between 50 and 55 SQL> / 已選擇30行。 已用時間:; 00: 00: 00.03 執行計劃 ----------------------------------------------------------;;; 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=66 Card=5 Bytes=1000; );; 1;0HASH JOIN (Cost=66 Card=5 Bytes=1000);;;; 2;1;;TABLE ACCESS (FULL) OF 'T2' (TABLE) (Cost=13 Card=5 Byte; s=500);;;;; 3;1;;TABLE ACCESS (FULL) OF 'T1' (TABLE) (Cost=52 Card=26 Byt; es=2600);;; 統計信息 ----------------------------------------------------------;;; 0; recursive calls; 0; db block gets;;; 271; consistent gets; 0; physical reads;; 0; redo size; 1651; bytes sent via SQL*Net to client 523; bytes received via SQL*Net from client;; 3; SQL*Net roundtrips to/from client; 0; sorts (memory);; 0; sorts (disk);;;; 30; rows processed;; 來具體分析一下。 首先,10g中OPTIMIZER_INDEX_COST_ADJ的取值范圍發生了改變。9i中為0-100,而10g中為1-10000。 其次,由于測試環境的不同,Tom的測試結果是在缺省值(100)的環境下,就已經和上面取值500時一樣了,即對T2全表掃描而T1使用索引。Tom試驗中,減小取值直至0,訪問路徑就變成使用兩個索引,而并不會出現均不使用索引的情況。除去系統的不同(可能導致取缺省值時訪問路徑是否一致),只看變化趨勢,顯然10g中靈活性更高,1-10000的取值使得CBO可以覆蓋所有的訪問路徑。另一方面,正如Tom的結論所說,OPTIMIZER_INDEX_COST_ADJ的取值越大,優化器越傾向于使用全表掃描,取值越小,優化器越傾向于使用索引。 再次,我們對比相同訪問路徑下的不同點。在取值從1變化到200(1-50-100-200)的過程中,優化器計算出的代價是持續增長的,而從1000到10000則是不變的。這說明這個參數與索引I/O的代價有關,而和全表掃描并無關系,這與Tom所說的并不矛盾,不過顯然更精確一點。 最后我們其實應該看到,雖然有如上所說的代價變化問題,同一訪問路徑下實際的運行性能并無區別,由于數據量比較小,上面的例子也許不能很好的說明這一點,不過想想Oracle用相同的路徑去執行,也沒有理由不同性能吧。 好,來看看官方文檔吧。10G的官方文檔(Reference)中對這個參數描述如下: OPTIMIZER_INDEX_COST_ADJ Parameter type Integer;參數類型為整數 Default value 100 缺省值為100 Modifiable ALTER SESSION, ALTER SYSTEM; 可通過ALTER SESSION, ALTER SYSTEM來修改 Range of values 1 to 10000取值范圍是1-10000 OPTIMIZER_INDEX_COST_ADJ lets you tune optimizer behavior for access path selection to be more or less index friendly—that is, TO MAKE THE OPTIMIZER MORE OR LESS PRONE TO SELECTING AN INDEX ACCESS PATH OVER A FULL TABLE SCAN. The default for this parameter is 100 percent, at which the optimizer evaluates index access paths at the regular cost. Any other value makes the optimizer evaluate the access path at that percentage of the regular cost. For example, a setting of 50 makes the index access path look half as expensive as normal. Note: The adjustment does not apply to user-defined cost functions for domain indexes. 注重:調整對用戶為域索引自定義的代價函數無效。 描述的第一段正證實了參數的作用。第二段值得注重,正如Tom所說(我覺得假如他把原文versus前后顛倒一下會更好,即單塊I/O代價比之多塊I/O),參數表達了索引訪問代價對比普通(表掃描)代價的比值。不過還有一個疑問我暫時還沒辦法想通,什么條件下索引I/O居然比掃描慢100倍(取值10000)? 結論: OPTIMIZER_INDEX_COST_ADJ通過指明索引I/O代價與掃描全表I/O代價的相對比值來影響CBO的行為,取值越小,CBO越傾向于使用索引,取值越大,越傾向于全表掃描。而缺省值100,指明缺省下,二者的代價是相等。與9i不同的是,10g中OPTIMIZER_INDEX_COST_ADJ的取值范圍從0-100改為1-10000,相信是更合理的取值(至少按照文檔的說明,作為代價的比值,取0是不合適的,除非說索引I/O的代價相對于全表掃描I/O代價是無窮小的)。
標簽: Oracle 數據庫
主站蜘蛛池模板: 日韩视频免费在线观看 | 国产成人精品久久二区二区 | 国产成在线观看免费视频 | 中文字幕日韩专区 | 青青草亚洲 | 91久久久久久久久 | 国产精品视频 | 中文字国产精久久无 | www国产在线观看 | 午夜欧美 | 日本一级淫片免费看 | 免费观看日韩av | 一区二区三区视频 | 国产午夜视频 | 日韩精品一区二区在线观看视频 | 国产一区二区三区久久久久久久久 | 久久mm| 日韩中文字幕在线观看 | 日本中文字幕电影 | 亚洲一区二区三区日韩 | 欧美国产综合 | 一区二区视频在线 | 亚洲精品在线播放 | 91视频一88av | 本道综合精品 | 欧美大片一区二区 | 国产91亚洲精品久久久 | 日韩在线观看毛片 | 久久爱成人 | 在线欧美日韩 | 欧美视频免费 | 久久久久久久91 | 久久香蕉国产 | 在线视频一区二区三区 | 久久精品国产精品亚洲 | 成人性生交大片免费看中文带字幕 | 91免费国产 | 国产一级视频 | a一级免费视频 | 一区二区三区国产在线观看 | 中文字幕在线免费看 | 久久欧美高清二区三区 | 国产片侵犯亲女视频播放 | 日本亚洲一区 | 91在线一区二区 | 国产亚洲一区二区三区 | 国产精品禁久久精品 | ririsao久久精品一区 | 国产一区精品在线 | 奇米色777欧美一区二区 | 日本精品视频在线播放 | 欧美日韩精 | 天天天堂 | 成年人精品视频 | 欧美日本一区 | 麻豆av电影在线观看 | 香蕉久久夜色精品国产使用方法 | 久久精品久久久 | 亚洲欧美第一页 | 亚洲欧美激情另类 | 天天操天天舔天天爽 | 风间由美一区二区三区在线观看 | 国产天堂在线 | 不卡一区| 高清在线一区二区 | 国产精品欧美一区二区三区 | 精品久久ai| 欧美性猛交一区二区三区精品 | 久久日本视频 | 亚洲国产成人一区二区精品区 | 黄色国产视频 | 日韩av电影观看 | 亚洲成人久久久 | 狠狠操夜夜操天天操 | 亚洲国产精品久久久久久久 | 国产一区二区三区在线免费观看 | 亚洲精品成人 | 99亚洲精品 | 五月天中文字幕 | 国产精品久久久久久一区二区三区 | 久久久一区二区三区 | 999精品 | 国产精品久久久久久久久大全 | 色人久久| 九九热这里| 国产中文视频 | 欧美a一级| 五月婷婷丁香在线 | 亚洲自拍偷拍av | 国产九九av| 中文二区| 亚洲永久免费视频 | 久草免费在线视频 | 久久永久视频 | 天天干夜夜爽 | 国产美女自拍视频 | 日韩精品成人 | 精品久久久久久久久久久久久久 | 久久久久久影院 | 国产精品自产拍在线观看 | 成人xxx | 国产精品国产精品国产专区不片 | 91精品久久久久久久99 | 国产h在线 | 99热激情 | 色伊人网| 亚洲精品在线视频 | 天天干天天插 | 日韩电影一区 | 久久久精品一区二区 | 天天爽夜夜爽 | 欧美精品免费在线观看 | 蜜桃免费一区二区三区 | 爱干视频| 久久精品免费一区二区三区 | 狠狠爱网站 | 激情小说综合网 | 日韩在线免费 | 亚洲一区二区三区视频免费观看 | 在线观看午夜免费视频 | 国产精品二区一区 | 国产不卡在线观看 | 在线免费观看av片 | 久久国产精品电影 | 日本中文在线 | 欧美国产视频一区 | 中文字幕亚洲一区 | 国产精品www | 成年入口无限观看网站 | 国产综合一区二区 | 久久久久久久久久久久福利 | 国产精品网站在线观看 | 一色屋精品久久久久久久久久 | 国产小视频在线观看 | 欧美日韩中文 | 日韩av一区二区在线观看 | 欧美 日韩 亚洲 一区 | 亚洲国产成人在线视频 | 9999久久久久 | 国产精品视频在线观看 | 黄在线看v | 亚洲a网 | 精品久久久久av | 精品一区二区不卡 | av高清在线免费观看 | 精品国产一级片 | 日韩国产一区二区 | 久久久久久影院 | 国产精品福利久久 | 亚洲成人自拍 | 久久精品中文字幕 | 国产高清免费视频 | 国产在线观看欧美 | 亚洲精品久久久 | 精品第一页 | 国产精品视频免费看 | 91成人免费看片 | 九九综合九九 | 亚洲国产精品t66y | 婷婷丁香激情网 | 中文字幕不卡在线 | 一级人爱视频 | 狠狠爱www人成狠狠爱综合网 | 成人1区2区 | av最新在线| 国产aaa毛片 | 日韩成人片 | 日韩视频精品在线 | 色橹橹欧美在线观看视频高清 | 免费黄色在线 | 99在线免费观看 | 91亚洲国产成人精品性色 | 精品国产高清一区二区三区 | 久久国产欧美日韩精品 | 日韩中文字幕一区二区 | 日韩三级在线 | 九色porny国模私拍av | 91久久久久久久久 | 婷婷激情在线 | 国产午夜精品视频 | 日韩精品在线一区 | 国产成人精品亚洲777人妖 | 国产一区二区三区四区在线观看 | 亚洲免费视频在线观看 | 亚洲乱码国产乱码精品精98午夜 | 91精品国产综合久久香蕉922 | 欧美一级视频免费 | 精品成人在线 | 日韩中文字幕在线 | 91麻豆视频 | 成人欧美一区二区三区在线播放 | 欧美日韩三区 | 欧洲一区二区三区 | 亚洲精选国产 | 久久伊人国产 | 91影院| 欧美天堂 | 免费的色网站 | 午夜看片 | avmans最新导航地址 | 国产精品久久久久久吹潮 | 亚洲热在线观看 | 日韩一区二区免费视频 | 成人在线观看h | 国产精品免费观看 | 久久久精品欧美 | 日本videos18高清hd下 | a免费观看 | 久久精品亚洲 | 91在线观看免费 | 国产99久久精品 | 亚洲综合二区 | 国产精品福利在线 | 国产日韩亚洲欧美 | 中文字幕在线资源 | 国产欧美综合一区二区三区 | 久久国产精品视频 | 黄色一级电影免费观看 | 欧美xxxx做受欧美 | 久久天堂 | 国产毛片在线 | 五月激情综合 | 伊人久久综合 | 久久天堂 | 日本精品视频在线观看 | 99精品国产在热久久 | 欧美成人免费在线视频 | 亚洲高清免费 | 色吧久久| 91精品一区二区三区久久久久久 | 久久国 | 国产精品一区二区三 | 精品国产乱码久久久久久影片 | 91精品一区二区三区久久久久久 | 中文字幕高清在线 | aaa久久 | 视频一区二区三区免费观看 | 中文字幕一区在线观看视频 | 一区二区三区视频 | 成人午夜免费视频 | 欧洲精品| 一级视频网站 | 日比视频网站 | 在线中文av| 日韩免费在线视频 | 亚洲国产成人精品女人久久久 | 国产精品久久久久aaaa | 亚洲香蕉在线观看 | 黄色激情网站 | 亚洲国产精品综合久久久 | 一区二区三区在线播放 | 亚洲综合区 | 国产乱码一区二区三区在线观看 | 欧美激情综合色综合啪啪五月 | 在线观看毛片网站 | 亚洲精品国产setv | 国产一区久久 | 欧美高清hd | 日韩色综合 | 欧美精品导航 | 国产1区2区精品 | 99在线观看| av免费观看网站 | 久久青 | 蜜桃视频麻豆女神沈芯语免费观看 | 国产福利91精品一区二区 | 中文字幕在线免费视频 | 中文字幕在线观看一区二区三区 | 亚洲成人精品久久 | 国产激情久久久久久 | 天天澡天天狠天天天做 | 97在线超碰 | av天天干| 亚洲精品久久久狠狠狠爱 | 精品国产一区二区三区成人影院 | 欧美成人精品一区二区男人看 | 手机在线不卡av | 久久精品成人 | 超碰人人在线 | 涩涩天堂| 亚洲精品成人av | 九九精品免费视频 | 99re在线 | 久久福利电影 | 国产精品美女久久久久久久网站 | 91丝袜 | 日韩国产精品一区二区 | 狠狠久久婷婷 | 成人精品一区二区三区 | 欧美成人精品一区二区三区 | 国产一区亚洲二区三区 | 国产亚洲久久 | 精品国产不卡一区二区三区 | 欧美成人综合在线 | 蕉伊人| 国产精品91av | 国产精品91视频 | 中文字幕在线免费视频 | 欧美黄色片 | 国产欧美综合一区二区三区 | 亚洲日韩中文字幕一区 | 国产中文字幕在线 | 永久av | 成人伊人 | 久久久久久久国产精品视频 | 午夜精品视频 | 男女深夜视频 | 日韩一区二区三区在线视频 | 欧美成人精品在线观看 | 国产欧美综合视频 | 免费一区在线 | 欧美日韩专区 | 黄色毛片看看 | 男女深夜网站 | 欧美一级片在线观看 | 手机在线观看av | 成人精品三级av在线看 | 国色天香成人网 | 欧美日韩一二区 | av在线免费观看网站 | 国产精品18久久久久久久久久久久 | 国产一区 欧美 | 国产 在线 | 日韩 | 日韩国产一区二区 | 欧美成人精品一区二区三区 | 人人看人人射 | 久久久一区二区 | 午夜欧美一区二区三区在线播放 | 久久九精品 | 成人激情免费视频 | 日韩中文字幕在线 | 亚洲精品一区久久久久久 | 成人午夜精品一区二区三区 | 国产精品久久久久久久久久东京 | 狠狠插狠狠操 | 亚洲福利精品 | 亚洲高清视频一区 | 91原创视频在线观看 | 精品久久久久久久久久久 | 亚洲一区在线日韩在线深爱 | 国产日韩欧美精品一区二区 | 成人免费观看男女羞羞视频 | 成人福利视频 | 懂色av一区二区三区在线播放 | 君岛美绪一区二区三区 | 午夜精品久久久久久99热软件 | 成人激情视频在线播放 | 欧美一极视频 | 久久精品中文字幕 | 欧美三级影院 | 黄色短视频在线观看 | 女同理伦片在线观看禁男之园 | 欧美日韩一区二区在线 | 伊人网在线视频 | 亚洲 欧美 日韩 在线 | 日本三级网站在线观看 | 在线观看国产视频 | 一区二区免费视频 | 亚洲精品国产电影 | 欧美一区二区三区免费 | 免费h在线观看 | 一级黄色片网站 | 欧美精品一区二区三区蜜桃视频 | 亚洲香蕉视频 | 欧美在线一级 | 特级生活片| 国产在线日韩 | 成人一级片 | 日日综合 | 成人久久久久久久久 | 在线观看一区二区三区四区 | 91成人黄色 | 美国特级a毛片免费网站 | 国产精品成人久久久久 | 国产传媒毛片精品视频第一次 | 国产日产精品一区二区三区四区 | 久久欧美精品一区 | 久久中文字幕一区二区 | 国产欧美在线视频 | 精品无码久久久久久国产 | 午夜精品影院 | 日韩欧美国产精品综合嫩v 久久久久久国产精品高清 国产目拍亚洲精品99久久精品 | 在线视频亚洲 | 久久99精品一区二区三区三区 | 亚洲日韩欧美一区二区在线 | 日日日操| 福利视频网址导航 | 久久婷婷欧美 | 日本一区二区三区免费观看 | 欧美黄色一区 | 91精品久久久久 | 国产一区成人 | 亚洲天堂av网 | 日韩欧美国产一区二区 | 成人涩涩日本国产一区 | www.99 | 国产精品九九九 | 山岸逢花在线观看 | 亚洲区在线 | 国产激情网址 | www.久久99 | 亚洲精品免费视频 | 三级av网站| 国产精品久久久久一区二区三区 | 亚洲日本乱码一区两区在线观看 | 成人免费视频网 | 你懂的在线视频播放 | 日本一区高清 | 免费久久99精品国产婷婷六月 | 亚洲一级视频在线 | 亚洲性在线 | 国产精品一二三区 | 国产成人免费视频网站高清观看视频 | 日韩午夜免费 | 亚洲在线| 成人欧美一区二区三区在线播放 | 欧美自拍视频在线观看 | 精品国产精品国产偷麻豆 | 亚洲综合区 | 国产91在线 | 亚洲 | 国产 在线 | 日韩 | 日韩精品区 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲情网站 | 中文字幕一区二区在线观看 | 最新日韩av | 中文字幕一区二区三区在线视频 | 亚洲欧美一级 | 国产精品久久久久影院色老大 | 亚洲国产91 | 狠狠艹| 国产一级免费在线 | 天天干夜夜骑 | 日操视频| 国产成人免费视频网站高清观看视频 | 久久久久久久久久久免费视频 | 日韩欧美中字 | 黄色一级片免费播放 | 国产成人免费网站 | 国产高清精品在线 | 精品视频在线免费 | 国产成人片| 美女一区 | 日韩免费精品 | 日韩成人tv | 美女张开腿视频网站免费 | 99热在线精品免费 | 毛片网| 成人在线观看h | 国产精品乱码一区二区三区 | 超碰在线天天 | 日韩在线免费观看网站 | 天天爽夜夜爽夜夜爽精品视频 | 日日夜夜草 | 午夜视频大全 | 成人亚洲一区二区 | 99久久精品免费 | 国产三级在线观看 | 亚洲 成人 av | 欧美成人精品一区二区三区 | 最新av在线网址 | 欧美日本韩国在线 | 欧美一区二区三区精品 | 亚洲第一男人天堂 | 曰韩在线 | 日本久久精品 | 这里只有精品视频 | 色天天久久 | 国产精品中文字幕在线观看 | 欧美日韩在线一区二区三区 | 最新日韩精品在线观看 | 日本韩国欧美一区 | 日韩av一区二区三区四区 | 日韩av视屏 | 久草 在线| 精品国产不卡一区二区三区 | 日韩亚洲一区二区 | 国产欧美日韩综合精品一 | 99久久99 | 日韩精品一区二区三区在线观看 | 久久久久久久国产精品 | 国产精品三级在线 | 欧美成人精品在线观看 | 亚洲久久一区 | 最新天堂中文在线 | 五月婷婷综合激情网 | 日本黄色一级 | 欧美日韩在线一区二区 | 中文字幕日韩一区二区不卡 | 偷拍自拍第一页 | 涩涩综合| 在线视频一区二区三区 | 免费高潮视频95在线观看网站 | 男人天堂av网站 | 亚洲日日操 | 蜜桃免费一区二区三区 | 啪啪的网站 | 精品久久久久一区二区国产 | 亚洲欧美中文日韩v在线观看 | 综合久久亚洲 | 四色成人av永久网址 | 福利视频一区 | 日韩中文在线 | 日韩欧美一区二区三区免费观看 | 免费黄色录像视频 | 国产精品一区av | 成年人黄色一级片 | 欧美成人小视频 | 日韩成人免费中文字幕 | 成人精品在线视频 | 美女福利网站 | 国产精品99久久久久久久vr | 久久午夜影院 | 国产欧美精品一区二区色综合朱莉 | av色伊人久久综合一区二区 | 99视频在线 | 国产精品成av人在线视午夜片 | 99热免费精品 | 国产精品成人在线观看 | 亚洲国产中文字幕 | 欧美精品成人一区二区三区四区 | 国产成人午夜高潮毛片 | 日韩成人在线观看 | 羞羞视频免费观看网站 | 91在线一区二区 | 日韩综合一区 | 亚洲97 | 一区二区免费视频 | www.久久久.com | 黄色视频a级毛片 | 精品久久久中文字幕 | 欧美一级一区 | 欧美激情第二页 | 成人精品一区二区三区电影黑人 | 亚洲一区二区福利 | 亚洲黄色一区二区三区 | 99久久精品国产一区二区三区 | 亚洲综合在线视频 | 亚洲精选久久 | 男女网站在线观看 | av看片网| 在线免费日韩 | 国产成人一区二区三区 | 欧美久久一区二区三区 | 伊人久操 | 中文字幕日韩欧美 | 亚洲精品中文视频 | 免费看毛片的网站 | 国产成人精品a视频一区www | 亚洲伊人久久综合 | 日本精品久久 | 91精品国产综合久久久蜜臀图片 | 国产精品视频免费 | 久久美女视频 | 97成人精品视频在线观看 | 精品影视 | 99re在线免费 | 欧美bbbxxx| 一区二区三区四区视频 | 精品久 | 一级电影免费看 | 国产亚洲一区二区三区在线观看 | 免费观看一级毛片 | 亚洲天堂成人 | 成人免费小视频 | 国产精品中文 | 黄色a视频 | 精品在线播放 | 国产三区在线成人av | 久久九| 中文字幕欧美在线观看 | 精品国产一区二区三区免费 | 伊人免费视频二 | 成人福利视频 | 久久久久久久91 | 亚洲精品国产综合区久久久久久久 | 久草精品视频 | 成人片免费看 | 日本精品一区二区三区在线观看 | 在线亚洲一区 | 国产午夜精品一区二区三区视频 | 欧美精品亚洲精品 | 韩国三级中文字幕hd久久精品 | 国产高清不卡 | 日韩视频中文字幕 | 亚洲一区视频 | 亚洲成人免费影院 | 一区二区不卡视频 | 一区二区av| 国产高清一区二区三区 | 亚洲精品福利 | 91在线精品一区二区 | 一级片| 成人欧美一区二区三区在线播放 | 久久99精品久久久 | 欧美精品亚洲 | 九九热精品视频在线观看 | 国产精选视频 | 成年免费观看视频 | 91.com在线观看 | 欧美一级特黄aaaaaa大片在线观看 | 99热日本 | 午夜国产精品视频 | 日韩综合一区 | 精品中文字幕一区二区 | 中文字幕综合在线 | 男人的天堂在线视频 | av一区在线观看 | 看毛片网站 | 日韩精品免费在线观看 | 色综合天天天天做夜夜夜夜做 | 美女网站视频免费黄 | 三级网站视频 | 99re在线观看视频 | 日韩精品观看 |