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

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

循序漸進講解Oracle數據庫的Hash join

瀏覽:178日期:2023-11-28 10:40:36
在開發過程中,很多人經常會使用到Hash Map或者Hash Set這種數據結構,這種數據結構的特點就是插入和訪問速度快。當向集合中加入一個對象時,會調用hash算法來獲得hash code,然后根據hash code分配存放位置。訪問的時,根據hashcode直接找到存放位置。

Oracle Hash join 是一種非常高效的join 算法,主要以CPU(hash計算)和內存空間(創建hash table)為代價獲得最大的效率。Hash join一般用于大表和小表之間的連接,我們將小表構建到內存中,稱為Hash cluster,大表稱為probe表。

效率

Hash join具有較高效率的兩個原因:

1.Hash 查詢,根據映射關系來查詢值,不需要遍歷整個數據結構。

2.Mem 訪問速度是Disk的萬倍以上。

理想化的Hash join的效率是接近對大表的單表選擇掃描的。

首先我們來比較一下,幾種join之間的效率,首先 optimizer會自動選擇使用hash join。

注意到Cost= 221

SQL> select * from vendition t,customer b WHERE t.customerid = b.customerid;

100000 rows selected.

Execution Plan

----------------------------------------------------------

Plan hash value: 3402771356

--------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

--------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 106K| 22M| 221 (3)| 00:00:03 |

|* 1 | HASH JOIN | | 106K| 22M| 221 (3)| 00:00:03 |

| 2 | TABLE ACCESS FULL| CUSTOMER | 5000 | 424K| 9 (0)| 00:00:01 |

| 3 | TABLE ACCESS FULL| VENDITION | 106K| 14M| 210 (2)| 00:00:03 |

--------------------------------------------------------------------------------

不使用hash,這時optimizer自動選擇了merge join。。

注意到Cost=3507大大的增加了。

SQL> select /*+ USE_MERGE (t b) */* from vendition t,customer b WHERE t.customerid = b.customerid;

100000 rows selected.

Execution Plan

----------------------------------------------------------

Plan hash value: 1076153206

-----------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time

-----------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 106K| 22M| | 3507 (1)| 00:00:43 |

| 1 | MERGE JOIN | | 106K| 22M| | 3507 (1)| 00:00:43 |

| 2 | SORT JOIN | | 5000 | 424K| | 10 (10)| 00:00:01 |

| 3 | TABLE ACCESS FULL| CUSTOMER | 5000 | 424K| | 9 (0)| 00:00:01 |

|* 4 | SORT JOIN | | 106K| 14M| 31M| 3496 (1)| 00:00:42 |

| 5 | TABLE ACCESS FULL| VENDITION | 106K| 14M| | 210 (2)| 00:00:03 |

-----------------------------------------------------------------------------------------

那么Nest loop呢,經過漫長的等待后,發現Cost達到了驚人的828K,同時伴隨3814337 consistent gets(由于沒有建索引),可見在這個測試中,Nest loop是最低效的。在給customerid建立唯一索引后,減低到106K,但仍然是內存join的上千倍。

SQL> select /*+ USE_NL(t b) */* from vendition t,customer b WHERE t.customerid = b.customerid;

100000 rows selected.

Execution Plan

----------------------------------------------------------

Plan hash value: 2015764663

--------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

--------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 106K| 22M| 828K (2)| 02:45:41 |

| 1 | NESTED LOOPS | | 106K| 22M| 828K (2)| 02:45:41 |

| 2 | TABLE ACCESS FULL| VENDITION | 106K| 14M| 210 (2)| 00:00:03 |

|* 3 | TABLE ACCESS FULL| CUSTOMER | 1 | 87 | 8 (0)| 00:00:01 |

HASH的內部

HASH_AREA_SIZE在Oracle 9i 和以前,都是影響hash join性能的一個重要的參數。但是在10g發生了一些變化。Oracle不建議使用這個參數,除非你是在MTS模式下。Oracle建議采用自動PGA管理(設置PGA_AGGREGATE_TARGET和WORKAREA_SIZE_POLICY)來,替代使用這個參數。由于我的測試環境是mts環境,自動內存管理,所以我在這里只討論mts下的hash join。

Mts的PGA中,只包含了一些??臻g信息,UGA則包含在large pool中,那么實際類似hash,sort,merge等操作都是有large pool來分配空間,large pool同時也是auto管理的,它和SGA_TARGET有關。所以在這種條件下,內存的分配是很靈活。

Hash連接根據內存分配的大小,可以有三種不同的效果:

1.optimal 內存完全足夠

2.onepass 內存不能裝載完小表

3.multipass workarea executions 內存嚴重不足

下面,分別測試小表為50行,500行和5000行,內存的分配情況(內存都能完全轉載)。

Vendition表 10W條記錄

Customer表 5000

Customer_small 500,去Customer表前500行建立

Customer_pity 50,取Customer表前50行建立

表的統計信息如下:

SQL> SELECT s.table_name,S.BLOCKS,S.AVG_SPACE,S.NUM_ROWS,S.AVG_ROW_LEN,S.EMPTY_BLOCKS FROM user_tables S WHERE table_name IN ('CUSTOMER','VENDITION','CUSTOMER_SMALL','CUSTOMER_PITY') ;

TABLE_NAME BLOCKS AVG_SPACE NUM_ROWS AVG_ROW_LEN EMPTY_BLOCKS

CUSTOMER 35 1167 5000 38 5

CUSTOMER_PITY 4 6096 50 37 4

CUSTOMER_SMALL 6 1719 500 36 2

VENDITION 936 1021 100000 64 88打開10104事件追蹤:(hash 連接追蹤)

ALTER SYSTEM SET EVENTS ‘ 10104 TRACE NAME CONTEXT,LEVEL 2’;

測試SQL

SELECT * FROM vendition a,customer b WHERE a.customerid = b.customerid;

SELECT * FROM vendition a,customer_small b WHERE a.customerid = b.customerid;

SELECT * FROM vendition a,customer_pity b WHERE a.customerid = b.customerid;

小表50行時候的trace分析:

*** 2008-03-23 18:17:49.467

*** SESSION ID:(773.23969) 2008-03-23 18:17:49.467

kxhfInit(): enter

kxhfInit(): exit

*** RowSrcId: 1 HASH JOIN STATISTICS (INITIALIZATION) ***

Join Type: INNER join

Original hash-area size: 3883510

PS:hash area的大小,大約380k,本例中最大的表也不過250塊左右,所以內存完全可以完全裝載

Memory for slot table: 2826240

Calculated overhead for partitions and row/slot managers: 1057270

Hash-join fanout: 8

Number of partitions: 8

PS:hash 表數據連一個塊都沒裝滿,Oracle仍然對數據進行了分區,這里和以前在一些文檔上看到的,當內存不足時才會對數據分區的說法,發生了變化。

Number of slots: 23

Multiblock IO: 15

Block size(KB): 8

Cluster (slot) size(KB): 120

PS:分區中全部行占有的cluster的size

Minimum number of bytes per block: 8160

Bit vector memory allocation(KB): 128

Per partition bit vector length(KB): 16

Maximum possible row length: 270

Estimated build size (KB): 0

Estimated Build Row Length (includes overhead): 45

# Immutable Flags:

Not BUFFER(execution) output of the join for PQ

Evaluate Left Input Row Vector

Evaluate Right Input Row Vector

# Mutable Flags:

IO sync

kxhfSetPhase: phase=BUILD

kxhfAddChunk: add chunk 0 (sz=32) to slot table

kxhfAddChunk: chunk 0 (lbs=0x2a97825c38, slotTab=0x2a97825e00) successfuly added

kxhfSetPhase: phase=PROBE_1

qerhjFetch: max build row length (mbl=44)

*** RowSrcId: 1 END OF HASH JOIN BUILD (PHASE 1) ***

Revised row length: 45

Revised build size: 2KB

kxhfResize(enter): resize to 12 slots (numAlloc=8, max=23)

kxhfResize(exit): resized to 12 slots (numAlloc=8, max=12)

Slot table resized: old=23 wanted=12 got=12 unload=0

*** RowSrcId: 1 HASH JOIN BUILD HASH TABLE (PHASE 1) ***

Total number of partitions: 8

Number of partitions which could fit in memory: 8

Number of partitions left in memory: 8

Total number of slots in in-memory partitions: 8

Total number of rows in in-memory partitions: 50

(used as preliminary number of buckets in hash table)

Estimated max # of build rows that can fit in avail memory: 66960

### Partition Distribution ###

Partition:0 rows:5 clusters:1 slots:1 kept=1

Partition:1 rows:6 clusters:1 slots:1 kept=1

Partition:2 rows:4 clusters:1 slots:1 kept=1

Partition:3 rows:9 clusters:1 slots:1 kept=1

Partition:4 rows:5 clusters:1 slots:1 kept=1

Partition:5 rows:9 clusters:1 slots:1 kept=1

Partition:6 rows:4 clusters:1 slots:1 kept=1

Partition:7 rows:8 clusters:1 slots:1 kept=1

PS:每個分區只有不到10行,這里有一個重要的參數Kept,1在內存中,0在磁盤

*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***

PS:hash join的第一階段,但是要觀察更多的階段,需提高trace的level,這里略過

Revised number of hash buckets (after flushing): 50

Allocating new hash table.

*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***

Requested size of hash table: 16

Actual size of hash table: 16

Number of buckets: 128

Match bit vector allocated: FALSE

kxhfResize(enter): resize to 14 slots (numAlloc=8, max=12)

kxhfResize(exit): resized to 14 slots (numAlloc=8, max=14)

freeze work area size to: 2359K (14 slots)

*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***

Total number of rows (may have changed): 50

Number of in-memory partitions (may have changed): 8

Final number of hash buckets: 128

Size (in bytes) of hash table: 1024

kxhfIterate(end_iterate): numAlloc=8, maxSlots=14

*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***

### Hash table ###

# NOTE: The calculated number of rows in non-empty buckets may be smaller

# than the true number.

Number of buckets with 0 rows: 86

Number of buckets with 1 rows: 37

Number of buckets with 2 rows: 5

Number of buckets with 3 rows: 0

PS:桶里面的行數,最大的桶也只有2行,理論上,桶里面的行數越少,性能越佳。

Number of buckets with 4 rows: 0

Number of buckets with 5 rows: 0

Number of buckets with 6 rows: 0

Number of buckets with 7 rows: 0

Number of buckets with 8 rows: 0

Number of buckets with 9 rows: 0

Number of buckets with between 10 and 19 rows: 0

Number of buckets with between 20 and 29 rows: 0

Number of buckets with between 30 and 39 rows: 0

Number of buckets with between 40 and 49 rows: 0

Number of buckets with between 50 and 59 rows: 0

Number of buckets with between 60 and 69 rows: 0

Number of buckets with between 70 and 79 rows: 0

Nmber of buckets with between 80 and 89 rows: 0

Number of buckets with between 90 and 99 rows: 0

Number of buckets with 100 or more rows: 0

### Hash table overall statistics ###

Total buckets: 128 Empty buckets: 86 Non-empty buckets: 42

PS:創建了128個桶,Oracle 7開始的計算公式

Bucket數=0.8*hash_area_size/(hash_multiblock_io_count*db_block_size)

但是不準確,估計10g發生了變化。

Total number of rows: 50

Maximum number of rows in a bucket: 2

Average number of rows in non-empty buckets: 1.190476

小表500行時候的trace分析

Original hash-area size: 3925453

Memory for slot table: 2826240

。。。

Hash-join fanout: 8

Number of partitions: 8

。。。

### Partition Distribution ###

Partition:0 rows:52 clusters:1 slots:1 kept=1

Partition:1 rows:63 clusters:1 slots:1 kept=1

Partition:2 rows:55 clusters:1 slots:1 kept=1

Partition:3 rows:74 clusters:1 slots:1 kept=1

Partition:4 rows:66 clusters:1 slots:1 kept=1

Partition:5 rows:66 clusters:1 slots:1 kept=1

Partition:6 rows:54 clusters:1 slots:1 kept=1

Partition:7 rows:70 clusters:1 slots:1 kept=1

PS:每個partition的行數增加

。。。

Number of buckets with 0 rows: 622

Number of buckets with 1 rows: 319

Number of buckets with 2 rows: 71

Number of buckets with 3 rows: 10

Number of buckets with 4 rows: 2

Number of buckets with 5 rows: 0

。。。

### Hash table overall statistics ###

Total buckets: 1024 Empty buckets: 622 Non-empty buckets: 402

Total number of rows: 500

Maximum number of rows in a bucket: 4

Average number of rows in non-empty buckets: 1.243781

小表5000行時候的trace分析

Original hash-area size: 3809692

Memory for slot table: 2826240

。。。

Hash-join fanout: 8

Number of partitions: 8

Nuber of slots: 23

Multiblock IO: 15

Block size(KB): 8

Cluster (slot) size(KB): 120

Minimum number of bytes per block: 8160

Bit vector memory allocation(KB): 128

Per partition bit vector length(KB): 16

Maximum possible row length: 270

Estimated build size (KB): 0

。。。

### Partition Distribution ###

Partition:0 rows:588 clusters:1 slots:1 kept=1

Partition:1 rows:638 clusters:1 slots:1 kept=1

Partition:2 rows:621 clusters:1 slots:1 kept=1

Partiton:3 rows:651 clusters:1 slots:1 kept=1

Partition:4 rows:645 clusters:1 slots:1 kept=1

Partition:5 rows:611 clusters:1 slots:1 kept=1

Partitio:6 rows:590 clusters:1 slots:1 kept=1

Partition:7 rows:656 clusters:1 slots:1 kept=1

。。。

# than the true number.

Number of buckets with 0 rows: 4429

Number of buckets with 1 rows: 2762

Number of buckets with 2 rows: 794

Number of buckets with 3 rows: 182

Number of buckets with 4 rows: 23

Number of buckets with 5 rows: 2

Number of buckets with 6 rows: 0

。。。

### Hash table overall statistics ###

Total buckets: 8192 Empty buckets: 4429 Non-empty buckets: 3763

Total number of rows: 5000

Maximum number of rows in a bucket: 5

PS:當小表上升到5000行的時候,bucket的rows最大也不過5行。注意,如果bucket行數過多,遍歷帶來的開銷會帶來性能的嚴重下降。

Average number of rows in non-empty buckets: 1.328727

結論:

Oracle數據庫10g中,內存問題并不是干擾Hash join的首要問題,現今硬件價格越來越便宜,內存2G,8G,64G的環境也很常見。大家在針對hash join調優的過程,更要偏重于partition和bucket的數據分配診斷。

標簽: Oracle 數據庫
主站蜘蛛池模板: 欧美啊v | 日韩一区中文字幕 | 中文字幕亚洲在线观看 | 日韩精品一区二区在线观看视频 | www.色涩涩.com网站 | 国产情侣小视频 | 日韩欧美精品一区二区三区 | 91精品国产综合久久久久久丝袜 | 99热婷婷| 日韩中文字幕在线免费观看 | 青青久视频| 国产乱码精品一区二区三区中文 | 精品九九九| 午夜精品久久久久久99热软件 | 亚洲人成人一区二区在线观看 | a中文在线 | 99国产精品久久久 | 成人免费在线电影 | 在线观看亚洲视频 | 高清视频一区二区三区 | 毛片a片| 91精品国产91久久久久久密臀 | 另类天堂av | 自拍偷拍欧美 | 日韩欧美国产精品 | 国产中文字幕一区二区三区 | 亚洲精品在线看 | 色综合天天 | 日夜夜精品 | av网站免费在线 | 国产欧美久久久久久 | 国产成人精品一区二区三区四区 | 日韩三及片 | 九九精品久久久 | 日韩精品一区二区三区 | 亚洲精品乱码久久久久久9色 | 一区二区三区自拍 | 免费成人av在线 | 国产91网| 亚洲免费视频在线观看 | 黄色91 | 91精品国产一区二区 | 国产一区二区久久久 | 精品国产乱码久久久久久蜜臀 | 亚洲欧美日韩精品久久亚洲区 | 嫩草研究院在线观看入口 | 一区二区不卡视频 | 国产免费看 | 欧美国产精品一区 | 激情久久久 | 91中文在线观看 | 国产精品免费一区二区三区四区 | 久久久久久亚洲精品视频 | 永久黄网站色视频免费 | 91在线观看视频 | 日韩在线免费观看视频 | 久久精品久久久久久久久久久久久 | 嫩草网址 | 精品国产综合 | 欧美男人天堂 | 成人在线视频免费观看 | 欧美成人二区 | 色综合免费 | 成人av教育 | av看片网 | 国产91久久精品 | 欧美一级全黄 | 久久精品这里只有精品 | 国产一区二区在线播放 | 在线播放黄色片网站 | 国产精品久久久久久久久久久久久久 | 欧美性久久 | 国产一区二区在线视频观看 | 欧美成人一区二区三区片免费 | 在线免费中文字幕 | 国产美女自拍视频 | 一区二区不卡 | 国产欧美日韩综合精品一区二区 | 91在线视频播放 | 亚洲精品v日韩精品 | 拍真实国产伦偷精品 | 伊人狠狠干 | 91精品国产色综合久久不卡98口 | 欧美精品综合 | 欧美精品中文字幕久久二区 | 欧美中文字幕在线 | 97国产在线 | 亚洲精品国产剧情久久9191 | 亚洲欧美国产精品专区久久 | 国产福利一区二区 | 一级黄色大片免费 | 久久久蜜桃一区二区人 | 国产综合久久 | 一级毛片在线播放 | 亚洲性视频网站 | 久久伊99综合婷婷久久伊 | 91精品入口蜜桃 | 999国产在线观看 | 性色av一区二区三区免费看开蚌 | 91久久久精品视频 | 日韩中文字幕免费在线播放 | 天天看天天操 | 中文字幕在线观看精品视频 | 亚洲伦理一区 | 在线精品亚洲欧美日韩国产 | 国产999精品久久久久久 | 国产色在线观看 | 精品久久久久久久久久久 | 亚洲三级在线观看 | 中文字幕在线观看www | 中文字幕久久精品 | 色精品视频 | 欧美日韩在线看 | 国产一区二区三区免费在线观看 | 国产精品爱久久久久久久 | 成人久久 | 亚洲一区在线视频 | 另类中文字幕 | 国产精品国产精品国产专区不卡 | 精品国产成人 | 黄色一级视频 | av手机电影| 久久久久久黄 | 日本狠狠干 | 国产精品久久久久无码av | 精品福利在线视频 | 日本私人网站在线观看 | 婷婷成人在线 | 亚洲综合色自拍一区 | 丁香五月亚洲综合在线 | 中文字幕乱码一区二区三区 | 亚洲毛片网站 | 97人人草 | 97色综合 | 日韩一区不卡 | 国产99精品视频 | 一级黄色短片 | 九九综合| www.国产精品| 一级片在线观看视频 | 欧洲精品一区 | 国产在线视频xxx | 午夜草民福利电影 | 天天摸天天看 | 国产免费久久 | 99这里只有精品视频 | 国产 日韩 欧美 在线 | 国产一区二区精品久久 | 一级大片一级一大片 | 暖暖视频日韩欧美在线观看 | 亚洲午夜视频在线观看 | av在线一区二区 | 欧美福利 | 日韩在线色 | 99riav在线 | 日韩欧美国产一区二区 | 精品国产一区二区在线 | 国产精品久久久久国产a级 99精品欧美一区二区三区综合在线 | 亚洲电影一区二区三区 | 精品九九九 | 欧洲亚洲精品久久久久 | 国产一级黄色大片 | 婷婷色狠狠 | 福利电影在线 | 亚洲精品一区二区三区在线 | 中文字幕一区二区三区乱码图片 | 一级高清视频 | av在线综合网 | 黄色一级在线观看 | 色性视频 | 黄色国产大片 | 国产精品成人一区二区三区夜夜夜 | 99精品欧美一区二区三区综合在线 | 欧美一级内谢 | 国产精品久久久久国产a级 91福利网站在线观看 | 偷拍做爰吃奶视频免费看 | 欧美日韩第一页 | 97久久久久久久久久久久 | 日韩在线观看中文字幕 | 精品久久久久久亚洲综合网站 | 日韩一级视频 | 日日操天天爽 | 欧美精品一区二区三区在线四季 | 欧美激情一区二区 | 99精品视频免费 | 日本伊人网站 | 日韩特黄一级欧美毛片特黄 | 国产在线综合视频 | 欧美激情国产日韩精品一区18 | 国产精品一码二码三码在线 | 香蕉视频91 | 欧美大片免费高清观看 | 久草视频在线观 | 免费国产一区二区 | 一 级 黄 色 片免费网站 | 综合网av | 亚洲美女一区 | 成人欧美| 国产亚洲精品久久久优势 | 色玖玖| 国产精品色婷婷亚洲综合看 | 国产精品久久久久久久午夜 | 国产一区二区三区久久 | 亚洲精品一区二区三区在线 | 天天操天天插 | 日韩国产欧美一区 | www国产成人免费观看视频,深夜成人网 | 中文字幕亚洲一区二区三区 | 国内自拍视频在线观看 | 亚洲国产视频一区 | 亚洲一区二区三区免费在线观看 | 亚洲精品美女视频 | 精一区二区 | 日韩精品中文字幕在线观看 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 黄色毛片在线播放 | 国产精品不卡视频 | 91视频在线看 | 亚洲自拍偷拍精品 | 在线观看理论电影 | 亚洲男人的天堂在线播放 | 国产精品99久久久久久www | 久热精品在线 | 欧美日韩三级 | 亚洲成人综合在线 | 国产欧美一区二区 | 精品99免费 | 成人片在线播放 | 亚洲精品综合中文字幕 | 久久免费精品视频 | 日本精品视频在线观看 | 亚洲依人| 国产欧美日韩在线 | 日本一区二区不卡视频 | 久久99这里只有精品 | 国产免费一区二区三区 | 中文字幕日韩一区二区三区 | 精品国产一区二区三区久久影院 | 中文久久 | 日本久久久久久 | 99精品电影 | 在线观看成人高清 | 国产一级片在线 | 成人免费毛片aaaaaa片 | 久草久草久草 | 亚洲国产精品一区二区第一页 | 欧美女优在线视频 | av午夜电影| 伊人热久久婷婷 | 亚洲国产精品久久 | 一区二区三区在线视频播放 | 一区二区三区在线 | 欧 | 久久久美女 | 激情欧美一区二区三区中文字幕 | 成人午夜毛片 | 国产区第一页 | 国产在线精品二区 | 亚洲视频自拍 | a视频在线| 亚洲国产精品99久久久久久久久 | 精品国产成人 | 日韩视频在线一区 | 国产成人99久久亚洲综合精品 | 中文字幕在线欧美 | 91在线精品一区二区 | 999久久久国产精品 免费视频一区 | 精品国产乱码一区二区三 | 久草视频在线播放 | 一区二区三区视频免费 | 天堂资源在线 | 免费一级片 | 极品久久 | 久久com| 日韩激情免费 | 9 1在线观看| 欧美激情网 | 黄色片免费 | 两性午夜视频 | 中国一级特黄毛片大片 | 一级黄色爱爱视频 | 午夜大片网 | 一道本一区二区三区 | 91视频一区二区三区 | 国产毛片精品 | 日韩欧美在线观看视频 | 久久久国产精品入口麻豆 | 一级欧美在线 | 国产精品一区一区 | 国产成人无遮挡在线视频 | 精品免费国产一区二区三区四区 | 99视频网站| 日韩精品免费在线视频 | 国产伦精品一区二区三区四区视频 | 久久国产婷婷国产香蕉 | 一区二区在线视频 | 亚洲欧美自拍视频 | 国产成人精品亚洲日本在线观看 | 精品欧美一区二区三区久久久 | 久久久久亚洲精品 | 欧美日韩亚洲国内综合网 | 国产精品视频播放 | 欧美日韩一区二区三区在线观看 | 99免费在线播放99久久免费 | 夜夜av| 黄色国产一级片 | 先锋av资源在线 | 日韩欧美在线免费观看 | 亚洲色域网 | av中文字幕在线播放 | 91九色视频国产 | 亚洲大片一区 | 91麻豆产精品久久久 | 久久美女| 欧美亚洲视频 | 成人久久久久爱 | 香蕉久久久久久 | 97碰碰碰| 午夜私人福利 | 精品久久久一区 | 免费日韩成人 | 视频一区二区中文字幕 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 成人午夜视频在线观看 | 午夜视频在线播放 | www国产亚洲精品久久网站 | 久久这里只有精品首页 | 亚洲免费人成在线视频观看 | 欧美综合一区二区 | 草草视频在线免费观看 | 欧美精产国品一二三区 | 久久人人爽人人爽人人片av软件 | 自拍视频在线观看免费 | 黄色免费在线观看网址 | 日本一区二区三区免费观看 | 一区免费看 | 久热av在线 | 日韩视频在线不卡 | 精品久久久久久久久久 | 亚洲美女网站 | 日韩中文字幕免费在线播放 | 福利视频网 | 欧美三级视频 | 成人午夜小视频 | 日本一区二区精品视频 | 日韩av不卡在线 | 色约约精品免费看视频 | 久久精品a一级国产免视看成人 | 一区二区三区亚洲精品国 | 一级免费毛片 | 久久国产精品免费一区二区三区 | 国产香蕉视频在线播放 | 国产在线不卡 | 一级大毛片 | 中文字幕在线观 | 亚洲精片| 国产精品久久久久久 | 久久久久久一区二区 | 五月婷婷综合激情网 | 欧美二区三区视频 | 在线视频久 | 久久久久久久久久一区二区 | 国产伦精品一区二区三区四区视频 | 中文字幕视频免费观看 | 久久人人网 | 最近免费中文字幕大全免费版视频 | 9 1在线观看| 亚洲精品乱码久久久久久蜜桃 | 四虎影院观看 | 中文久久 | 欧美精品久| 欧美中文一区 | 91成人区| 亚洲免费在线观看 | 久久久婷 | 成人在线免费视频 | 国产精品久久国产精品 | 天天澡天天狠天天天做 | 国产精品久久久久久久免费大片 | 久久99精品国产99久久6尤 | 亚洲成人久久久 | 激情网站免费 | 欧美国产三级 | 亚洲欧美日韩另类一区二区 | 亚洲一区二区三区视频免费观看 | 久久久国产视频 | 九九热有精品 | 久久综合久久综合久久 | 国精日本亚洲欧州国产中文久久 | 狠狠操操操 | 久久九九 | h成人在线 | 国产成人精品一区二区 | 亚洲一区二区av | 欧美精品一区二区三区在线 | 色婷婷狠狠 | 自拍偷拍视频网站 | 久久精品国产亚洲blacked | 精品亚洲一区二区 | 精品国产依人香蕉在线精品 | 国产一区二区三区在线 | 午夜影院在线观看 | 亚洲人人草 | 成年人免费看片 | 欧美成人一区二区三区片免费 | 午夜羞羞 | 日韩在线观看网站 | 国产精品国产三级国产a | 干一干操一操 | 日本久久精品电影 | 亚洲综合中文 | 热久久免费视频 | 亚洲人成人一区二区在线观看 | 欧美国产在线观看 | 日韩在线视频一区 | 影音先锋成人资源网 | 欧美日韩久久精品 | 国产高清视频在线 | 精品国产鲁一鲁一区二区在线观看 | 国产自在现线2019 | 久久成人免费视频 | 欧美一级欧美三级在线观看 | 看免费av| 亚洲国产精品久久久久秋霞不卡 | 99re99| 精品国产一区二区在线 | 亚州av在线 | 亚洲精品视频在线播放 | 好姑娘影视在线观看高清 | 91在线观看视频 | 成人免费在线观看网址 | 成人片网址 | 亚洲三区视频 | 日韩久久久久久 | 中文字幕av一区二区 | 久久99这里只有精品 | 欧美日韩不卡视频 | 亚洲精品国产高清 | 久久久久一区二区三区 | 亚洲精品国产成人 | 亚洲一区中文字幕 | 精品国产91乱码一区二区三区 | 成人深夜在线观看 | 国产高清免费视频 | 精品少妇一区二区三区在线播放 | 成人在线免费看 | 免费成人小视频 | 成人片网址 | 一区二区在线看 | 久久精品国产视频 | 在线一级片| 精品久久久久久久 | 国产日韩精品一区二区 | 欧美一级内谢 | 亚洲xxxx3d | 少妇精品视频在线观看 | av一区二区三区四区 | 在线观看毛片网站 | 午夜午夜精品一区二区三区文 | av超碰在线| 黄色片网站视频 | 一级免费毛片 | 亚洲国产aⅴ成人精品无吗 一区视频在线 | 99精品一区二区 | 国偷自产一区二区免费视频 | 一区二区日韩在线观看 | 四虎小视频 | 精品久久网站 | 亚洲高清在线观看视频 | 国产成人一区 | 亚洲首页 | 国产成人午夜 | 一级篇 | 亚洲精品视频免费 | 天天综合网网欲色 | 欧美成人一区二区三区片免费 | 久久精品久久精品 | 亚洲精品一区二区三区四区高清 | 成人免费视频网站在线看 | 午夜在线视频 | 欧美日韩精品电影 | 求av网址 | 日韩精品1区2区 | 激情小视频在线观看 | 日韩快播电影网 | 精品一区二区在线观看 | 曰本人一级毛片免费完整视频 | 一级片在线观看 | 成人黄页在线观看 | 欧美日韩在线免费观看 | 亚洲精品一区中文字幕乱码 | 欧美国产精品久久久 | 色综合天天综合网国产成人网 | 午夜影视| 色视频久久 | 日本综合视频 | 日本亚洲欧美 | 日韩性色视频 | 欧美a网站| 午夜影院免费 | 欧美成人福利 | 亚洲综合精品 | 二区在线视频 | 国产一级大片 | 黄色地址 | 国产精品美女久久久久久久久久久 | 精品免费视频 | 玖草在线视频 | 日韩精品一区二区三区视频播放 | 亚洲第一黄色 | 国产69精品99久久久久久宅男 | 一区二区在线 | 欧美精品免费在线观看 | 久久这里只有精品首页 | 国内精品一区二区 | 黄片毛片在线观看 | 亚洲精品视频在线观看免费视频 | 日本在线视频不卡 | 中文字幕成人 | 九九九九九九精品任你躁 | 华丽的挑战在线观看 | 久草成人| 黄色电影天堂 | 亚洲综合在线一区二区 | 国产午夜小视频 | 高清国产一区二区三区四区五区 | 91久久久精品视频 | 国产成人精品一区二区三区视频 | 中文学幕专区 | 亚洲精品色 | 激情欧美一区二区三区中文字幕 | 国产精品一区二区三 | 中文一区| 亚洲成人一区 | 亚洲久久| 黄色一级片免费 | 五月婷婷狠狠爱 | 97色在线视频 | 人操人人人| 精品成人久久 | 欧美国产在线视频 | 欧洲亚洲精品久久久久 | 久久久国产精品视频 | 99热免费精品 | www.788.com色淫免费 | av高清在线免费观看 | 天天干天天搞天天射 | 精品一区二区三区免费视频 | 国产精品日韩一区二区 | 中文字幕一区在线观看视频 | 欧美午夜在线 | 成人情趣视频 | 最新中文字幕在线资源 | 国产伦精品一区二区三区四区视频_ | 国产午夜精品一区二区三区嫩草 | 免费午夜电影 | 日韩成人免费电影 | 欧美∨a| 国产成人精品亚洲日本在线观看 | 精品成人 | 亚洲一区二区福利 | 99久热在线精品视频观看 | 欧美国产综合 | 国产精品久久影院 | av免费观看网站 | 亚洲欧美中文日韩在线v日本 | 少妇一区二区三区 | 亚洲一区二区高清视频 | 欧美综合久久久 | 精品国产不卡一区二区三区 | 男女做爰高清无遮挡免费视频 | 日韩在线免费视频 | 亚洲久久久久久 | 日本中文字幕一区二区 | 中文字幕在线视频免费观看 | 久久精美视频 | 国产精品美女久久久久久久久久久 | 日韩精品视频在线 | 色婷婷狠狠 | 久久久免费av | 91久久精品国产91久久 | 三级黄视频在线观看 | 国产一区二区三区精品久久久 | 欧美日韩亚洲国产 | 龙珠z国语291集普通话 | 日日干天天操 | 性一交一乱一透一a级 | 精品一区二区不卡 | 中文字幕在线免费视频 | 伊人网页| 成人精品视频在线观看 | 中文字幕在线观看免费 | av一区在线观看 | 亚洲成人福利在线观看 | 亚洲日韩中文字幕一区 | 久久精品国产99 | 在线观看你懂的网站 | 欧美高潮 | 一级片观看 | 午夜激情视频在线观看 | 天堂中文av在线 | av片在线观看网站 | 日韩av免费在线观看 | 狠狠操天天操 | 色婷婷一区二区三区四区 | 日韩一二区视频 | 亚洲乱码国产乱码精品精的特点 | 91福利在线导航 | 成人福利视频 | 欧洲美女性开放视频 | 欧美精品一区二区在线观看 | 黄色毛片在线播放 | 欧美一区二区三区免费电影 | 日本高清h色视频在线观看 日日干日日操 | 综合伊人久久 | 精品国产色 |