a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

Understand Oracle執(zhí)行計(jì)劃

發(fā)布時(shí)間:  2012/8/26 15:25:42

一、什么是執(zhí)行計(jì)劃
An explain plan is a representation of the access path that is taken when a query is executed within Oracle.
二、如何訪問數(shù)據(jù)
At the physical level Oracle reads blocks of data. The smallest amount of data read is a single Oracle block, the largest is constrained by operating system limits (and multiblock i/o). Logically Oracle finds the data to read by using the following methods:
Full Table Scan (FTS)    --全表掃描
Index Lookup (unique & non-unique)    --索引掃描(唯一和非唯一)
Rowid    --物理行id
三、執(zhí)行計(jì)劃層次關(guān)系
When looking at a plan, the rightmost (ie most inndented) uppermost operation is the first thing that is executed. --采用最右最上最先執(zhí)行的原則看層次關(guān)系,在同一級如果某個(gè)動(dòng)作沒有子ID就最先執(zhí)行
1.一個(gè)簡單的例子:
SQL> select  /*+parallel (e 4)*/  *  from  emp  e;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=82 Bytes=7134)
   1    0   TABLE ACCESS* (FULL) OF 'EMP' (Cost=1 Card=82 Bytes=7134):Q5000
--[:Q5000]表示是并行方式
   1 PARALLEL_TO_SERIAL            SELECT /*+ NO_EXPAND ROWID(A1) */ A1."EMPNO"
                                   ,A1."ENAME",A1."JOB",A1."MGR",A1."HI
優(yōu)化模式是CHOOSE的情況下,看Cost參數(shù)是否有值來決定采用CBO還是RBO:
SELECT STATEMENT [CHOOSE] Cost=1234 --Cost有值,采用CBO
SELECT STATEMENT [CHOOSE]           --Cost為空,采用RBO(9I是如此顯示的)
2.層次的父子關(guān)系的例子:
PARENT1
**FIRST CHILD
****FIRST GRANDCHILD
**SECOND CHILD
Here the same principles apply, the FIRST GRANDCHILD is the initial operation then the FIRST CHILD followed by the SECOND CHILD and finally the PARENT collates the output.
四、例子解說
Execution Plan
----------------------------------------------------------
0 **SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=8 Bytes=248)
1 0 **HASH JOIN (Cost=3 Card=8 Bytes=248)
2 1 ****TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=3 Bytes=36)
3 1 ****TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=16 Bytes=304)
左側(cè)的兩排數(shù)據(jù),前面的是序列號(hào)ID,后面的是對應(yīng)的PID(父ID)。
A shortened summary of this is:
Execution starts with ID=0: SELECT STATEMENT but this is dependand on it's child objects
So it executes its first child step: ID=1 PID=0 HASH JOIN but this is dependand on it's child objects
So it executes its first child step: ID=2 PID=1 TABLE ACCESS (FULL) OF 'DEPT'
Then the second child step: ID=3 PID=2 TABLE ACCESS (FULL) OF 'EMP'
Rows are returned to the parent step(s) until finished
五、表訪問方式
1.Full Table Scan (FTS) 全表掃描
In a FTS operation, the whole table is read up to the high water mark (HWM). The HWM marks the last block in the table that has ever had data written to it. If you have deleted all the rows then you will still read up to the HWM. Truncate resets the HWM back to the start of the table. FTS uses multiblock i/o to read the blocks from disk.   --全表掃描模式下會(huì)讀數(shù)據(jù)到表的高水位線(HWM即表示表曾經(jīng)擴(kuò)展的最后一個(gè)數(shù)據(jù)塊),讀取速度依賴于Oracle初始化參數(shù)db_block_multiblock_read_count(我覺得應(yīng)該這樣翻譯:FTS掃描會(huì)使表使用上升到高水位(HWM),HWM標(biāo)識(shí)了表最后寫入數(shù)據(jù)的塊,如果你用DELETE刪除了所有的數(shù)據(jù)表仍然處于高水位(HWM),只有用TRUNCATE才能使表回歸,FTS使用多IO從磁盤讀取數(shù)據(jù)塊).
Query Plan
------------------------------------
SELECT STATEMENT [CHOOSE] Cost=1
**INDEX UNIQUE SCAN EMP_I1   --如果索引里就找到了所要的數(shù)據(jù),就不會(huì)再去訪問表
2.Index Lookup 索引掃描
There are 5 methods of index lookup:
index unique scan   --索引唯一掃描
Method for looking up a single key value via a unique index. always returns a single value, You must supply AT LEAST the leading column of the index to access data via the index.
eg:SQL> explain plan for select empno,ename from emp where empno=10;
 
index range scan   --索引局部掃描
Index range scan is a method for accessing a range values of a particular column. AT LEAST the leading column of the index must be supplied to access data via the index. Can be used for range operations (e.g. > < <> >= <= between) .
eg:SQL> explain plan for select mgr from emp where mgr = 5;
 
index full scan   --索引全局掃描
Full index scans are only available in the CBO as otherwise we are unable to determine whether a full scan would be a good idea or not. We choose an index Full Scan when we have statistics that indicate that it is going to be more efficient than a Full table scan and a sort. For example we may do a Full index scan when we do an unbounded scan of an index and want the data to be ordered in the index order.
eg: SQL> explain plan for select empno,ename from big_emp order by empno,ename;
 
index fast full scan   --索引快速全局掃描,不帶order by情況下常發(fā)生
Scans all the block in the index, Rows are not returned in sorted order, Introduced in 7.3 and requires V733_PLANS_ENABLED=TRUE and CBO, may be hinted using INDEX_FFS hint, uses multiblock i/o, can be executed in parallel, can be used to access second column of concatenated indexes. This is because we are selecting all of the index.
eg: SQL> explain plan for select empno,ename from big_emp;
 
index skip scan   --索引跳躍掃描,where條件列是非索引的前導(dǎo)列情況下常發(fā)生
Index skip scan finds rows even if the column is not the leading column of a concatenated index. It skips the first column(s) during the search.
eg:SQL> create index i_emp on emp(empno, ename);
SQL> select /*+ index_ss(emp i_emp)*/ job from emp where ename='SMITH';
 
3.Rowid 物理ID掃描
This is the quickest access method available.Oracle retrieves the specified block and extracts the rows it is interested in. --Rowid掃描是最快的訪問數(shù)據(jù)方式
 
六、表連接方式
七、運(yùn)算符
1.sort    --排序,很消耗資源
There are a number of different operations that promote sorts:
(1)order by clauses (2)group by (3)sort merge join –-這三個(gè)會(huì)產(chǎn)生排序運(yùn)算
 
2.filter    --過濾,如not in、min函數(shù)等容易產(chǎn)生
Has a number of different meanings, used to indicate partition elimination, may also indicate an actual filter step where one row source is filtering, another, functions such as min may introduce filter steps into query plans.
 
3.view    --視圖,大都由內(nèi)聯(lián)視圖產(chǎn)生(可能深入到視圖基表)
When a view cannot be merged into the main query you will often see a projection view operation. This indicates that the 'view' will be selected from directly as opposed to being broken down into joins on the base tables. A number of constructs make a view non mergeable. Inline views are also non mergeable.
eg: SQL> explain plan for
select ename,tot from emp,(select empno,sum(empno) tot from big_emp group by empno) tmp
where emp.empno = tmp.empno;
Query Plan
------------------------
SELECT STATEMENT [CHOOSE]
**HASH JOIN
**TABLE ACCESS FULL EMP [ANALYZED]
**VIEW
****SORT GROUP BY
******INDEX FULL SCAN BE_IX
 
4.partition view     --分區(qū)視圖
Partition views are a legacy technology that were superceded by the partitioning option. This section of the article is provided as reference for such legacy systems.
示例:假定A、B、C都是不是小表,且在A表上一個(gè)組合索引:A(a.col1,a.col2) ,注意a.col1列為索引的引導(dǎo)列。考慮下面的查詢:
select A.col4   from  A , B , C
where B.col3 = 10  and A.col1 = B.col1 and A.col2 = C.col2 and C.col3 = 5;
Execution Plan
------------------------------------
  0   SELECT STATEMENT Optimizer=CHOOSE
  1  0 MERGE JOIN
  2  1 SORT (JOIN)
  3  2 NESTED LOOPS
  4  3 TABLE ACCESS (FULL) OF 'B'
  5  3 TABLE ACCESS (BY INDEX ROWID) OF 'A'
  6  5 INDEX (RANGE SCAN) OF 'INX_COL12A' (NON-UNIQUE)
  7  1 SORT (JOIN)
  8  7 TABLE ACCESS (FULL) OF 'C'
Statistics(統(tǒng)計(jì)信息參數(shù),參見另外個(gè)轉(zhuǎn)載的文章)
--------------------------------------
     0 recursive calls(歸調(diào)用次數(shù))
     8 db block gets(從磁盤上讀取的塊數(shù),即通過update/delete/select for update讀的次數(shù))
     6 consistent gets(從內(nèi)存里讀取的塊數(shù),即通過不帶for update的select 讀的次數(shù))
     0 physical reads(物理讀—從磁盤讀到數(shù)據(jù)塊數(shù)量,一般來說是'consistent gets' + 'db block gets')
     0 redo size      (重做數(shù)——執(zhí)行SQL的過程中,產(chǎn)生的重做日志的大小)
    551 bytes sent via SQL*Net to client
    430 bytes received via SQL*Net from client
     2 SQL*Net roundtrips to/from client
     2 sorts (memory) (在內(nèi)存中發(fā)生的排序)
     0 sorts (disk)   (在硬盤中發(fā)生的排序)
     6 rows processed
  在表做連接時(shí),只能2個(gè)表先做連接,然后將連接后的結(jié)果作為一個(gè)row source,與剩下的表做連接,在上面的例子中,連接順序?yàn)锽與A先連接,然后再與C連接:
B   <---> A <--->  C
col3=10       col3=5
如果沒有執(zhí)行計(jì)劃,分析一下,上面的3個(gè)表應(yīng)該拿哪一個(gè)作為第一個(gè)驅(qū)動(dòng)表?從SQL語句看來,只有B表與C表上有限制條件,所以第一個(gè)驅(qū)動(dòng)表應(yīng)該為這2個(gè)表中的一個(gè),到底是哪一個(gè)呢?
 
B表有謂詞B.col3 = 10,這樣在對B表做全表掃描的時(shí)候就將where子句中的限制條件(B.col3 = 10)用上,從而得到一個(gè)較小的row source, 所以B表應(yīng)該作為第一個(gè)驅(qū)動(dòng)表。而且這樣的話,如果再與A表做關(guān)聯(lián),可以有效利用A表的索引(因?yàn)锳表的col1列為leading column)。
  上面的查詢中C表上也有謂詞(C.col3 = 5),有人可能認(rèn)為C表作為第一個(gè)驅(qū)動(dòng)表也能獲得較好的性能。讓我們再來分析一下:如果C表作為第一個(gè)驅(qū)動(dòng)表,則能保證驅(qū)動(dòng)表生成很小的row source,但是看看連接條件A.col2 = C.col2,此時(shí)就沒有機(jī)會(huì)利用A表的索引,因?yàn)锳表的col2列不為leading column,這樣nested loop的效率很差,從而導(dǎo)致查詢的效率很差。所以對于NL連接選擇正確的驅(qū)動(dòng)表很重要。
  因此上面查詢比較好的連接順序?yàn)?B - - > A) - - > C。如果數(shù)據(jù)庫是基于代價(jià)的優(yōu)化器,它會(huì)利用計(jì)算出的代價(jià)來決定合適的驅(qū)動(dòng)表與合適的連接順序。一般來說,CBO都會(huì)選擇正確的連接順序,如果CBO選擇了比較差的連接順序,我們還可以使用Oracle提供的hints來讓CBO采用正確的連接順序。如下所示
select /*+ ordered */ A.col4
from  B,A,C
where B.col3 = 10   and  A.col1 = B.col1   and  A.col2 = C.col2   and  C.col3 = 5
既然選擇正確的驅(qū)動(dòng)表這么重要,那么讓我們來看一下執(zhí)行計(jì)劃,到底各個(gè)表之間是如何關(guān)聯(lián)的,從而得到執(zhí)行計(jì)劃中哪個(gè)表應(yīng)該為驅(qū)動(dòng)表:
 
在執(zhí)行計(jì)劃中,需要知道哪個(gè)操作是先執(zhí)行的,哪個(gè)操作是后執(zhí)行的,這對于判斷哪個(gè)表為驅(qū)動(dòng)表有用處。判斷之前,如果對表的訪問是通過rowid,且該rowid的值是從索引掃描中得來得,則將該索引掃描先從執(zhí)行計(jì)劃中暫時(shí)去掉。然后在執(zhí)行計(jì)劃剩下的部分中,判斷執(zhí)行順序的指導(dǎo)原則就是:最右、最上的操作先執(zhí)行。具體解釋如下:
 
得到去除妨礙判斷的索引掃描后的執(zhí)行計(jì)劃:Execution Plan
-------------------------------------
  0   SELECT STATEMENT Optimizer=CHOOSE
  1  0 MERGE JOIN
  2  1 SORT (JOIN)
  3  2    NESTED LOOPS
  4  3       TABLE ACCESS (FULL) OF 'B'
5            3       TABLE ACCESS (BY INDEX ROWID) OF 'A'
6  5         INDEX (RANGE SCAN) OF 'INX_COL12A' (NON-UNIQUE)
  7  1 SORT (JOIN)
  8  7    TABLE ACCESS (FULL) OF 'C'
  看執(zhí)行計(jì)劃的第3列,即字母部分,每列值的左面有空格作為縮進(jìn)字符。在該列值左邊的空格越多,說明該列值的縮進(jìn)越多,該列值也越靠右。如上面的執(zhí)行計(jì)劃所示:第一列值為6的行的縮進(jìn)最多,即該行最靠右;第一列值為4、5的行的縮進(jìn)一樣,其靠右的程度也一樣,但是第一列值為4的行比第一列值為5的行靠上;談?wù)撋舷玛P(guān)系時(shí),只對連續(xù)的、縮進(jìn)一致的行有效。
 

  從這個(gè)圖中我們可以看到,對于NESTED LOOPS部分,最右、最上的操作是TABLE ACCESS (FULL) OF 'B',所以這一操作先執(zhí)行,所以該操作對應(yīng)的B表為第一個(gè)驅(qū)動(dòng)表(外部表),自然,A表就為內(nèi)部表了。從圖中還可以看出,B與A表做嵌套循環(huán)后生成了新的row source ,對該row source進(jìn)行來排序后,與C表對應(yīng)的排序了的row source(應(yīng)用了C.col3 = 5限制條件)進(jìn)行SMJ連接操作。所以從上面可以得出如下事實(shí):B表先與A表做嵌套循環(huán),然后將生成的row source與C表做排序—合并連接。
       通過分析上面的執(zhí)行計(jì)劃,我們不能說C表一定在B、A表之后才被讀取,事實(shí)上,B表有可能與C表同時(shí)被讀入內(nèi)存,因?yàn)閷⒈碇械臄?shù)據(jù)讀入內(nèi)存的操作可能為并行的。事實(shí)上許多操作可能為交叉進(jìn)行的,因?yàn)镺racle讀取數(shù)據(jù)時(shí),如果就是需要一行數(shù)據(jù)也是將該行所在的整個(gè)數(shù)據(jù)塊讀入內(nèi)存,而且有可能為多塊讀。
    看執(zhí)行計(jì)劃時(shí),我們的關(guān)鍵不是看哪個(gè)操作先執(zhí)行,哪個(gè)操作后執(zhí)行,而是關(guān)鍵看表之間連接的順序(如得知哪個(gè)為驅(qū)動(dòng)表,這需要從操作的順序進(jìn)行判斷)、使用了何種類型的關(guān)聯(lián)及具體的存取路徑(如判斷是否利用了索引)
在從執(zhí)行計(jì)劃中判斷出哪個(gè)表為驅(qū)動(dòng)表后,根據(jù)我們的知識(shí)判斷該表作為驅(qū)動(dòng)表(就像上面判斷ABC表那樣)是否合適,如果不合適,對SQL語句進(jìn)行更改,使優(yōu)化器可以選擇正確的驅(qū)動(dòng)表。


本文出自:億恩科技【www.ibaoshan.net】

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線

     
     
    两根硕大一起挤进小紧H共妻| 伊人久久综合无码成人网| 蜜臀精品无码AV在线播放| 国产AVXXXX无套内射| 伊人久久大香线焦AV色| 丝袜国偷自产中文字幕| 噜噜噜噜噜18禁私人影视| 国产精品乱码久久久久久软件| 重囗味SM在线观看无码| 无码专区一VA亚洲V天堂| 浓毛BGMBGMBGM胖老太太| 国内精品自线一区麻豆| YES4444视频在线观看| 亚洲AV无码片一区二区三区 | 黑人精品一区二区三区| 爸的比老公大两倍儿媳叫什么呢 | 真人视频直播APP免费观看| 无码人妻精一区二区三区老牛| 女儿国在线观看免费版高清| 国产真人无码作爱免费视频| 办公室狂肉校花H陈舒| 亚洲综合激情另类专区| 偷窥 间谍 隐 TUBE| 男配每天都在体内成结节| 孩交乱子XXXX高清影视| 成人AV片在线观看免费| 尤物YW午夜国产精品视频| 无码人妻精品一区二区三区99不卡 | ACG性奴成熟人妻全彩漫画| 亚洲成A人片在线观看无码3D| 日日狠狠久久偷偷色| 毛片A级毛片免费观看品善网| 国产熟人AV一二三区| ZOOM人与ZOOM| 亚洲性色AV片在线观看网址| 铜铜铜铜铜铜铜好多水谜妹| 欧美大波少妇在厨房被| 精品人妻无码中字系列| 公交车上穿短裙被狂C| 337P日本欧洲亚洲大胆69影| 亚洲第一SE情网站| 十八禁无遮无拦视频免费| 农民工猛吸女大学奶头| 精品国产不卡一区二区三区| 国产成人精品免费午夜APP| AV人摸人人人澡人人超碰手机版| 亚洲乱亚洲乱少妇无码| 挺进邻居漂亮的娇妻| 欧美一卡二卡三卡四卡视 | 美女扒开内裤无遮挡| 国内精品九九久久精品| 大荫蒂又大又长又硬又紧| [中文] [3D全彩H漫]新来| 亚洲精品无码久久千人斩 | 精品人妻系列无码人妻在线不| 国产成人AV一区二区三区不卡| FREEEⅩXX性欧美HD浪妇| 亚洲伊人久久综合成人网站| 新婚之夜玩弄人妻系列| 日韩一区二区三区射精| 免费无码AV片在线观| 精品无码一区二区三区电影 | 无码人妻一区二区三区精品视频| 琪琪秋霞午夜AV影院| 久久婷婷六月综合色液啪| 国产又黄又爽又刺激的免费网址| 纯肉无遮挡H肉动漫在线观看3D| 主人给我戴上奶牛榨乳器调教 | 曰韩人妻无码一区二区三区综合部| 亚洲 欧美 综合 另类 中字| 色欲蜜臀av无码久久浪潮一区| 女人露P毛视频·WWW| 久久久WWW成人免费精品| 国产无套护士在线观看| 俄罗斯ZOOM与人性ZOOM| BIGBANG幼稚视频入门幼年| 一边做一边潮喷18P| 亚洲AV综合色区无码4区| 我把护士日出水了视频| 日韩成人一区二区三区在线观看| 女被男狂揉吃奶胸60分钟视频| 久久久久久久精品免费看人女| 国精产品999国精产品官网| 国产成人精品日本亚洲专区不卡 | 亚洲AV免费高潮喷水| 牲交A欧美牲交AⅤ免费一| 人鲁交YAZHONGHUCXX| 免费看成熟丰满少妇AⅤ无码精品| 精品熟女少妇A∨免费久久| 国产乱码精品一区二区三区中文| 大乳VIDEOS巨大吃奶| PITBULL的妻子| 中文字幕一本性无码| 亚洲色老汉AV无码专区最| 亚洲AV秘 无码一区白峰美| 挺进邻居人妻雪白的身体| 日韩精品无码人成视频手机| 欧美熟妇搡BBBB搡BBBB| 毛茸茸的撤尿正面BBW| 久久精品第一国产久精国产宅男6 久久精品第九区免费观看 | 日韩精品久久久久久久电影蜜臀 | 国产久9视频这里只有精品| 丰满人妻AV无码一区二区三区| Z Z〇Z〇另类女人ZOZ〇| 8x8x熟妇一区二区三区| 呦交小U女精品视频| 亚洲色大成网站WWW看下面| 亚洲成AV人片一区二区三区| 小雪尝禁果又粗又大的中国地图| 婷婷色婷婷开心五月| 色噜噜狠狠色综合网| 人妻熟妇乱又伦精品视频APP| 女人张开腿让男人添| 麻豆视传媒官网免费观看| 久久久久久精品免费免费WER| 精品美女AⅤ国产女教师蜜臀| 国产精品自在欧美一区| 国产成人8X视频网站| 房中之术御女之功秘术| 波多野结衣一区二区三区高清| JEAⅠOUSVUE成熟HD| 99久久人妻精品免费一区| 中文字幕AV一区中文字幕天堂| 一二三四免费观看视频中国| 亚洲人成线无码7777| 亚洲国产精品VA在线观看麻豆| 亚洲AV成人一区二区三区在线看 | 亚洲AV成人无码精品直播在线| 无码高潮少妇毛多水多水免费| 少妇太爽了在线观看免费视频| 日韩人妻无码精品专区| 日本熟妇人妻XXXXX野外呻| 人人澡人人澡人人看添AV| 欧美性爱群交视频| 欧美性猛交XXXX乱大交丰满| 欧美精品人妻大乳一区二区 | 国产精华液一二三区别在哪| 国产97色在线 | 免| 丰满少妇女人A毛片视频| 被群CAO的合不拢腿H纯肉视频| IJZZIJZZIJ亚洲大全| FREE少妇野战HD| JAPANESEMATURE亲| chinese人妻无码人妻| A∨变态另类天堂无码专区| 97夜夜澡人人爽人人喊中国片| 最新无码人妻在线不卡| 中国CHINESE老熟女| 杂乱小说2第400部| 在线亚洲97SE亚洲综合在线| 在线观看成人网站| 中文在线А√在线| 中文字幕高清免费日韩视频在线| 中文在线っと好きだった| 在线观看特色大片免费网站| 在线天堂资源WWW在线中文| 中文有无人妻VS无码人妻激烈 | 国产尤物亚洲精品不卡| 国产在线视频www色| 黑人粗大与亚裔乱P视频| 黄a无码片内射无码视频| 交换人生俱乐部全文免费阅读 | 在线精品国产一区二区三区| 又大又粗进出白浆直流视频在线| 永久免费观看午夜成人网站| 在线观看成人无码中文AV天堂不| 制服 丝袜 亚洲 中文 综合| 中文字幕日韩一区二区不卡| 18岁日韩内射颜射午夜久久成人| 51无人区码一码二码三码免费| 9999久久久久精品无码| A级毛片毛片免费观看丝瓜| Www内射熟妇COm| 超碰97人人射妻| 各种少妇正面着BBW撒尿视频| 国产成人亚洲精品| 国产精品久久久天天影视香蕉| 国产区图片区小说区亚洲区| 果冻传媒播放观看免费| 精品少妇人妻AV一区二区| 久久久久久久精品成人热色戒| 鲁丝片一区二区三区免费| 男生白内裤自慰GV白袜男同| 欧美熟妇另类久久久久久不卡| 人妻中出受孕 中文字幕在线| 日韩AV无码AV免费AV不卡| 撕开奶罩揉吮奶头高潮视频| 五月丁香国产在线视频| 亚洲AV无码国产一区二区三区| 亚洲精品自在在线观看| 一本大道香蕉大无线吗| 在线 | 一区二区三区| 51国偷自产一区二区三区| MACBOOKPRO免费网站| 成人无码H在线观看网站| 国产成人AV男人的天堂| 国产无遮挡裸体免费视频| 精东传媒VS天美传媒| 久久香蕉国产线看观看怡红院妓院 | 色一情一乱一伦一区二区三区日本|