黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

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

Oracle Freelist和HWM原理探討及相關性能優化

瀏覽:80日期:2023-11-15 19:56:36
Oracle Freelist和HWM原理探討及相關性能優化中興通訊重慶研究所 游波要害詞:Freelist,HWM,存儲參數,段,塊,dump,優化文章摘要: 近期來,FreeList的重要作用逐漸為Oracle DBA所熟悉,網上也出現一些相關的討論。本文以FreeList為線索對Oracle的存儲治理的原理進行較深入的探討,涉及Oracle段區塊治理的原理,FreeList算法等。而與FreeList密切相關的一個重用特性HWM,與sql性能密切相關,本文也作了原理分析介紹。在原理探討的基礎上,介紹了常用的存儲參數分析方法,并對所涉及的存儲優化、HWM的優化和Freelist競爭優化作了說明。縮略語: ASSM:auto segement space management HWM:high water mark DBA:data block address OLTP:online transaction process OPS:oracle parallel server1.簡介 Oracle的空間治理和存儲參數治理是Oracle治理及優化的重要部分。FreeList作為Oracle底層存儲參數中的核心參數,其行為方式對Oracle的存儲治理及性能優化有重大影響,而現有的Oracle文檔對此方面的內容比較缺乏。雖然Oracle 9i已出現了ASSM,但是作為深入調優對FreeList熟悉仍是必要的。 近期來,FreeList的重要作用逐漸為Oracle DBA所熟悉,網上也出現一些相關的討論。本文以FreeList為線索對Oracle的存儲治理的原理進行較深入的探討,涉及Oracle段區塊治理的原理,FreeList算法等。而與FreeList密切相關的一個重用特性HWM,與sql性能密切相關,本文也作了原理分析介紹。在原理探討的基礎上,介紹了常用的存儲參數分析方法,并對所涉及的存儲優化、HWM的優化和Freelist競爭優化作了說明。 這些原理分析和性能優化都建立在探討的基礎上,限于篇幅和本人經驗可能存在局限、偏差或謬誤。 為了準確文中部分結構和字段的說明直接用英文描述。 限于篇幅本文不對同樣很重要的block結構作更深入的討論,對OPS性能有重要影響的free list group本文也未提及,因此本文在單一free list group下討論。對于block的深入討論、free list group的介紹與優化以及PCTUSED和PCTFREE等重要參數的優化請參見參考文獻和資料。2.原理探討 FreeList作為一個Oracle存儲治理的核心參數。其行為方式由Oralce內部控制,我們一般不需要把握和控制。但是我們可能會碰到這些問題,當插入一條記錄,會插入到那個塊中?是使用新塊,還是插入有數據的老塊?段是什么時候擴展的,如何擴展的?表中只有一條記錄,但是作一次select時代價卻是上千個塊,為什么?假如我們從原理上清楚了Oracle的存儲治理方式,對相關這些問題的解決及性能優化就清楚自然了。2.1 Oracle的邏輯儲存結構 Oralce的邏輯存儲結構按表空間,段,區,塊進行治理。塊是Oracle用來治理存儲空間的最基本單元,Oracle數據庫在進行輸入輸出操作時,都是以塊為單位進行邏輯讀寫操作的。區由一系列連續的塊組成,Oralce在進行空間分配、回收和治理時是以區為基本單位的。段由多個區組成,這些區可以是連續的也可以是不連續的,一般情況下一個對象擁有一個段。表空間中容納段和區。 在生成段的時候,會同時分配初始區(initial extents), 初始區的第一個塊就格式化為segment header,并被用來記錄free list描述信息、extents信息,HWM信息等。2.2 free list概念free list是一種單向鏈表用于定位可以接收數據的塊,在字典治理方式的表空間中,Oracle使用free list來治理未分配的存儲塊。Oracle記錄了有空閑空間的塊用于insert或Update。空閑空間來源于兩種方式:1.段中所有超過HWM的塊,這些塊已經分配給段了,但是還未被使用。2.段中所有在HWM下的且鏈入了free list的塊,可以被重用。free list具有下列屬性l flag指示free list 被使用(1)或未使用(0)l free list 鏈的首塊的地址DBA(data block address)l free list 鏈的尾塊的地址DBAfree list 的信息通常保留在segment header中,這里給出segment header block dump片段加以說明:nfl = 3, nfb = 1 typ = 1 nxf = 0SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 SEG LST:: flg: USEDlhd: 0x03c00233 ltl: 0x03c00233 SEG LST:: flg: USEDlhd: 0x03c00234 ltl: 0x03c00234 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 Segment Header:==> nfl: number of free lists/block==> nfb: number of free list blocks + segment header==> typ: block type ==> nxf: number of transaction free listsSegment List:==> flg: flag USED or UNUSED the free list==> lhd: head of free list==> ltl: tail of free list在每一個塊中都有一個標記flg用來表明塊是否鏈入了 free list鏈中。 假如這個標志置上,該塊中后向指針指向free list鏈中下一個塊的DBA。假如當前塊是鏈的最末尾的塊,該后向指針值為0。這里給出位于free list上的block dump的片段Block header dump:; 0x03c00235Object id on Block? Yseg/obj: 0xe2d8; csc: 0x00.6264c61; itc: 1; flg: O; typ: 1 - DATA ;fsl: 1; fnx: 0x3c00234 ver: 0x01==> Seg/obj Object ID in dictionary==> csc SCN of last block cleanout ==> itc Number of ITL slots==> flg O = On freelist , - = Not on freelist==> typ 1 = DATA 2 = INDEX==> fsl ITL TX freelist slot==> fnx DBA of NEXT block on freelist舉例來說假如有五個塊在free list中,分別為A,B,C,D,E就會形成segment header->A->B->C->D->E--同時segment header->E2.3 free list類別在段中存在3類free list, 即Master Freelists (MFL), Process Freelists (PrFL), 和 Transaction Freelists. 2.3.1 Master Free List(公用空閑空間池): 每一個段中有一個Master free list,在段創建的時候自動生成。對于每一個段來說都有這樣一個空閑空間池,對每個進程都是公用的,空閑空間就是位于master free list 的塊上。由于Master free list是公用的,因此當多個進程同時插入行到同一個段上,master free list競爭使用程度就會增加。2.3.2 Process Free Lists為了減少Master Free list的競爭問題, 引入了另一種free list叫做Process free lists, 根據sql命令 CREATE/ALTER 中的參數FREELISTS 創建. 這樣多個free list 就可以分攤空閑空間的治理,以提高OLTP應用作高度并發插入和更新事務時空間分配治理的性能。通過指定CREATE TABLE / CLUSTER or INDEX的子句STORAGE的參數FREELISTS 來創建,例如: CREATE TABLE flg ( . . . .) . . . STORAGE ( ... FREELISTS 10 ...)。缺省的FREELISTS為1,此時不會創建Process free lists。當FREELISTS>=2時,創建Process free lists。 進程在使用process free list是根據進程的Oracle PID (Process ID)來選擇的,公式如下:select list entry = (PID % NFL) + 1 NFL : FREELISTS定義的Process free list個數2.3.3 Transaction Free Lists當Oracle需要時動態創建。一個Transaction Free List 是一種專門給某一個事務使用的free list. 每個段至少有16個transactions free lists, 并且這個值在需要時會增長,直到達到Segment Header塊的大小限制。一個事務只有下面情況下會需要分配一個Tx Free Lists entry: 塊中釋放空間時(DELETE or UPDATE) 并且還不存在Tx Free Lists entry時。 2.4 Free list行為2.4.1 Freelist Link and Unlink 操作 Freelist 按后進先出隊列(LIFO) 方式治理。也就是說最后被link到freelist的塊擁有最先unlink的機會。當塊中空閑空間增加到大于PCTFREE時,塊放入freelist中。free list中的塊可用來作update 或insert。 當塊中沒有足夠的空間用于insert操作時并且使用空間大于PCTUSED,塊就會從free list中移出。在塊在DELETE or UPDATE 操作之后,假如使用空間落到PCTUSED下,塊再次link到free list中。每次塊加入free list時,都是link到鏈表的頭部。例如:考慮段中有120個塊編號由1到120。其中有6個塊在free list上并假設HWM是 80。(block實際使用DBA編號)10->24->45->46->65->80-現在作INSERT 操作,需要400 bytes空間。假設塊10上空間不足,但塊24上空間可用。現在數據插入到塊 24 ,現在塊24的剩余空間小于該表的PCTUSED。因此塊 24 從free list鏈表中移出。PCTFREE and PCTUSED參數的目的就是用來控制數據塊從free list的鏈表中移入/移出行為的。現在free lists象這樣:10->45->46->65->80-然后在同一事務中作DELETE同一個段的數據,使塊 54 和 67落到PCTUSED下。現在這些塊加入到free list鏈中。free list鏈現在象這樣:67->54->10->45->46->65->80-2.4.2 Transaction Free List 算法掃描segment Header塊中所有的Tx free list,檢查是否還沒有Tx free list entry分配給transaction, 如何沒有,將尋找未使用的entry或已經提交了事務的空的Tx free list。 假如上述搜索過程失敗, 新的entry會在segment Header塊中Tx free lists區域中開辟。假如沒有空間來生成, 事務就必須等待entry的釋放。segment header中的最大free list個數:Block Size;Max # Freelists ---------------------------- 2K; ;24 4K; ;50 8K; ;101 16k; ;204 事務T1釋放出來的空閑塊(DELETE or UPDATE)的使用 : l 立即被T1所重用l 當T1 commit后被其它需要空閑塊的事務重用,過程舉例如下: 2.5 HMW概念HIGH WATER MARK代表一個表使用的最大的(top limit)塊 。2.1中已經提到HIGH WATER MARK 記錄在segment header中,并且在Oracle插入數據時一般增長5個blocks(并非總是5個塊,具體參見2.4.2中流程圖中HMW增長方式)。segment header block中與HWM相關信息說明如下:EXTENT CONTROL: Extent Header:: spare1: 0;;;space2: 0;;;#extents: 13;;#blocks: 1429; last map; 0x00000000; #maps: 0;;;offset: 4128; Highwater::; 0x020004d0; ext#: 12;;blk#: 275;ext size: 475#blocks in seg. hdr's freelists: 5;;#blocks below: 1229; mapblk; 0x00000000; offset: 12;Unlocked==> spare1:this field is no longer used (old inc#, now always 0)==> space2:this field is no longer used (old ts#, now always 0)==> #extents: number of extents allocated to segment==> #blocks:; number of blocks allocated to segment==> last map: address of last extent map block 0 if extent map is entirely in the segment header==> #maps:;number of extent map block==> offset:offset to end of extent map==> HWM dba:; address of block at highwater mark==> ext#:;;HWM extent number relative to segment==> blk#:;;HWM block number within extent==> ext size: HWM extent size (in blocks)==> #blocks in seg. hdr's freelists: number of blocks in seg. hdr's free list ==> #blocks below: number of blocks below HWM==> mapblk dba: dba of extent map block containing HWM extent is 0 if HWM is in the segment header==> offset:offset within extent map block is the ext# if HWM is in segment header==> Locked by: if locked by a transaction, the xid is displayedHWM可以說是已經使用過的存儲空間和未使用過的存儲空間之間的分界線。 在表使用過程中,HWM一直向一個方向移動,插入記錄時HWM可能會向增加的方向移動,但是刪除記錄時HWM并不會向相反的方向移動。參見2.4.2。下圖顯示了某個數據段中HWM的位置情況。圖2.5HIGH WATER MARK之所以重要是因為它對全表掃描性能的影響。當實施一個全表掃描時,Oracle會讀取所有HIGH WATER MARK下的塊即使它們是空塊。當HIGH WATER MARK 下有很多unused block時實施全表掃描會增加額外的不必要的I/O。它也會在全局共享區中填充很多很多空塊。3.分析方法 存儲參數基本上屬于oracle internal的東西,因此oralce并沒有提供很好的手段來分析。但是對于DBA來說,還是可以通過block dump和DBMS_SPACE等手段來獲取部分信息。3.1 提取block和free list信息創建dbms_space使用的存儲過程show_spaceSQL>create or replace procedure show_space( p_segname in varchar2,p_owner in varchar2 default user,p_type in varchar2 default 'TABLE',p_partition in varchar2 default NULL )asl_free_blks number;l_total_blocks number;l_total_bytes number;l_unused_blocks number;l_unused_bytes number;l_LastUsedExtFileId number;l_LastUsedExtBlockId number;l_last_used_block number;procedure p( p_label in varchar2, p_num in number )isbegindbms_output.put_line( rpad(p_label,40,'.') p_num );end;begindbms_space.free_blocks( segment_owner => p_owner,segment_name => p_segname,segment_type => p_type,partition_name => p_partition,freelist_group_id => 0,free_blks => l_free_blks );dbms_space.unused_space( segment_owner => p_owner,segment_name => p_segname,segment_type => p_type,partition_name => p_partition,total_blocks => l_total_blocks,total_bytes => l_total_bytes,unused_blocks => l_unused_blocks,unused_bytes => l_unused_bytes,last_used_extent_file_id => l_LastUsedExtFileId,last_used_extent_block_id => l_LastUsedExtBlockId,last_used_block => l_last_used_block );p( 'Free Blocks', l_free_blks );p( 'Total Blocks', l_total_blocks );p( 'Total Bytes', l_total_bytes );p( 'Unused Blocks', l_unused_blocks );p( 'Unused Bytes', l_unused_bytes );p( 'Last Used Ext FileId', l_LastUsedExtFileId );p( 'Last Used Ext BlockId', l_LastUsedExtBlockId );p( 'Last Used Block', l_last_used_block );end;過程已創建。SQL> create table t1(a char(1000)) storage( freelists 3);表已創建。 SQL> set serveroutput on;SQL> exec show_space('T1');Free Blocks.............................0;;;;<==Number of blocks on freelistTotal Blocks............................5;;;;<==Total data blocks in segmentTotal Bytes.............................20480<==Total bytes in segmentUnused Blocks...........................4;;;;<==Total unused blocks in segmentUnused Bytes............................16384<==Total unused bytes in segmentLast Used Ext FileId....................15;;;<==File id of last used extentLast Used Ext BlockId...................562;;<==Block id of last used extentLast Used Block.........................1;;;;<==Last used block in extentPL/SQL 過程已成功完成。有關show_space的進一步使用技巧可參考文獻5。以下利用上面得到的數據對segment header block進行dump。SQL>alter system dump datafile 15 block 562;在udump/ora10792.trc中*** 2004-09-08 15:29:57.343Start dump data blocks tsn: 27 file#: 15 minblk 562 maxblk 562buffer tsn: 27 rdba: 0x03c00232 (15/562)scn: 0x0000.064560e4 seq: 0x02 flg: 0x00 tail: 0x60e41002frmt: 0x02 chkval: 0x0000 type: 0x10=DATA SEGMENT HEADER - UNLIMITED Extent Control Header ----------------------------------------------------------------- Extent Header:: spare1: 0;;;space2: 0;;;#extents: 1;;;#blocks: 4;; last map; 0x00000000; #maps: 0;;;offset: 2080; Highwater::; 0x03c00233; ext#: 0;;;blk#: 0;;;ext size: 4;; #blocks in seg. hdr's freelists: 0;; #blocks below: 0;; mapblk; 0x00000000; offset: 0;; Unlocked Map Header:: next; 0x00000000; #extents: 1;obj#: 60033; flag: 0x40000000 Extent Map ----------------------------------------------------------------- 0x03c00233; length: 4;; nfl = 3, nfb = 1 typ = 1 nxf = 0 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000 End dump data blocks tsn: 27 file#: 15 minblk 562 maxblk 562 對于上述塊中字段的說明,以及相關試驗。 由于篇幅所限,本文不再列舉。可參考文獻7。對非segment header的data block的dump方法和上述類似。data block的結構和segment header block不一樣,假如需要了解,可查閱參考文獻和資料。3.2 提取HWM信息3.2.1 HWM位置HWM位置按下面的公式計算: HWM = useed byte = Total Bytes - Unused BlocksTotal Bytes和Unused Blocks都可以用show_space提取。還可以通過ANALYZE tables得到HWM信息. DBA_TABLES視圖中包含了可用于各表空間分析的列。其中blocks代表已使用過的塊即HWM,empty_blocks代表未使用的空間。3.2.1 HWM下空間利用信息要比較有數據行的塊的塊數和HIGH WATER MARK下總塊數,可以用下面的公式來展示HWM下未用空間的比例。p = 1- r/hr:有數據行的塊的塊數h:HWM下的塊數.r可以通過如下方法獲得:Oracle7:SELECT count(distinct substr(rowid, 15,4) substr(rowid, 1,8) ); FROM schema.table;Oracle8 and Oracle9:SELECT count(distinct substr(rowid, 7,3) substr(rowid, 10,6) ); FROM schema.table;假如公式計算的結果 p是0,就不需要對表進行重建。假如結果p大于0,應該考慮系統狀況和應用需要來決定是否需要總組表。4.優化4.1手工回收存儲空間在HIGH WATER MARK以上的塊對性能沒有影響,但是會耗費空間。如何空間大小是一個考慮的問題,就可以決定回收空塊。假設表T1的存儲示意圖如圖2.5所示,使用ALTER TABLE ... DEALLOCATE UNUSED語句可以回收HWM以上的空間。比如:alter table t1 deallocate unused;回收后T1的存儲示意如圖4.1.1圖4.1.1 假如在ALTER TABLE ... DEALLOCATE UNUSED語句中使用了KEEP要害字,則可以在HWM之后保留指定大小的空閑空間,比如: alter table t1 deallocate unused keep 10K;回收后T1的存儲示意如圖4.1.2圖4.1.24.2刪減表 根據3.2.1可以得到HWM以下塊的使用情況。如何p大于時,對全表掃描性能會產生影響,同時也會耗用空間。假如能夠確認應用有良好的索引幾乎不會用到全表掃描,那么HIGH WATER MARK以下的空塊,盡管耗費了空間,不會對訪問產生影響。假如不能確定,那么就需要考慮刪減表。 刪減表的操作將刪除表中所有的記錄,并且重置HWM標記。表在刪減之后將成為一個空表。 在Oracle中刪減表只有如下的兩種辦法:1.使用drop語句 先使用drop語句刪除整個表,然后再重建這個表。在刪除-重建的過程中,與表相關的所有索引、完整性約束以及觸發器都會丟失,并且所有依靠于該表的對象都會變為INVALID狀態,同時原來爭對表的授權也會失效。因此采用這種方式刪除表中的記錄代價太大。2.使用TRUNCATE語句 TRUNCATE語句屬于DDL語句,不會產生任何回退信息,并且被立即自動提交。在執行TRUNCATE語句時不會影響到與被刪減表相關的任何數據庫對象與授權,也不會觸發表中所定義的觸發器。此外,在對標進行刪減時,HWM將重置,已經為表分配的存儲空間將被回收。 在執行TRUNCATE語句時,可以通過drop storage子句和reuse storage子句來控制被釋放的區是否回收到表空間中。如何作在線系統的TRUNCATE,不希望表長時間鎖住,那么可以使用reuse storage子句,僅將HWM重置。4.3 free list優化free list 競爭出現在多個進程使用同一個free list并試圖同時修改free list頭部數據塊時。可以通過查詢視圖v$waitsate的class類型為data block 的記錄來檢查競爭情況。 產生data block類型競爭的主要原因是多個進程試圖同時修改free list頭部數據塊。 然而,它也會出現在當進程預備將塊讀入buffer cathe時,另一個進程需要訪問同一個塊。假如能在V$SESSION_WAIT中正好捕捉buffer busy waits,就可以通過查詢V$SESSION_WAIT中的P3來判定是那一類。A 0 或 1014代表讀類型,其他的值為修改競爭的類型。 下一步需要確定競爭涉及那些段。 假如能夠在V$SESSION_WAIT捕捉waits,就可以用P1和P2的值 (對應file 和 block) 在DBA_EXTENTS中找到段名。 如何是一個表,就很可能需要重建表來創建更多的process freelists。 一種計算需要創建多少個freelist的方法是dump一些段中接近HWM的塊,檢查interested transaction list的個數,具體方法可參見3.1。interested transactions個數的峰值加1 就是需要的最小process freelists的值。從2.3和2.4可以看出,使用多個free list可能導致更多的空塊未被使用, 也可能導致段更快地擴展。 假如性能是當前所關心的重點,那么多free lists 可以用來提高并發訪問能力,當然會增加一些額外空間的耗用。然而,假如空間使用大小是首先考慮的因素,那么推薦使用single freelist,使參數FREELISTS=1, 當然就不能提升并發事務的性能了。V$WAITSTAT 也可顯示其他類型class的競爭,包括segment header 和free list。 出現在同一個free list group中多個事務需要同時更新它們的free list header記錄時。 有多種方法來解決這個問題如重建表采用更多的free list groups,或者增加 _bump_highwater_mark_count大小,或者調整應用本身。參考文獻和資料:1.《FREELISTS and FREELIST GROUPS. SCOPE & APPLICATION 》2.《INITRANS, MAXTRANS, FREELISTS and FREELIST GROUPS, PCTFREE and PCTUSED》,Mike Ault3.《Freelist Internals: An OverviewKnowledge》,XPert for Oracle Administration4.《Blockdump - 8.x Data Segment Header in Oracle》5.《AskTom dbms_space_free_space》,http://asktom.oracle.com6.《Data Blocks and Freelists》,http://www.ixora.com.au7.《偷窺Data block 的物理結構》,http://www.itpub.net8.《Oracle 9i for windows nt/2000數據系統培訓教程》,清華大學出版社上述部分文章在我的blog網站http://blog.csdn.net/youbo2004上可找到,對于研究free list,free list group和block等有很好的幫助。
標簽: Oracle 數據庫
主站蜘蛛池模板: 国产精品国产精品国产专区不片 | 国产一区91精品张津瑜 | 九九精品网| 国产美女包臀裙一区二区 | 97无码免费人妻超级碰碰碰碰 | 国产三级毛片 | 国产一区二区三区影院 | 国产老女人精品毛片久久 | 国产乱老熟视频网88av | 亚洲最大看欧美片网站 | 大香焦久久| 国产精品区在线观看 | 18禁黄网站禁片免费观看女女 | 日韩国产欧美综合 | 欧美高潮在线 | 亚洲天堂五码 | 夜夜激情网 | 免费观看成人鲁鲁鲁鲁鲁视频 | 中文字幕一区日韩精品 | 蜜臀va| av国産精品毛片一区二区三区 | 在线播放黄色网址 | 九九国产在线观看 | 成人性做爰片免费视频 | 成人在线观看国产 | 久久久精品一区aaa片 | 裸体女人a级一片 | 四虎国产精品永久在线国在线 | 久久午夜夜伦鲁鲁片免费无码 | 天天综合天天做天天综合 | av网天堂 | 欧美你懂的 | zzijzzij亚洲丰满少妇 | a免费视频 | 亚洲色www成人永久网址 | 国产精品久久久国产盗摄 | 精品久久久久久久久久软件 | 污视频免费在线观看网站 | 四虎国产成人永久精品免费 | 热久久亚洲 | 国产视频三级 | 日韩中文字幕在线一区二区 | 日本在线视频中文字幕 | 视频在线观看免费大片 | 国产又爽又黄的激情精品视频 | avhd101高清在线迷片麻豆 | 人妻激情偷乱视频一区二区三区 | 国产91嫩草| 四虎影视8848hh | 偷窥自拍欧美色图 | 中文字幕一区二区三区乱码不卡 | 亚洲性影院 | 成人久久久 | 亚洲精品资源在线 | 国产毛片视频 | 中文字幕丰满人孑伦 | 欧美人与野鲁交xxx视频 | 黄色特级一级片 | 国产视频一区二区三区四区 | 日本丰满白嫩大屁股ass | 日韩不卡高清 | 久久国产精品福利一区二区三区 | 日本va欧美va欧美va精品 | 亚洲精品18在线观看 | 黄色免费网站视频 | 少妇1~3伦理| 欧美中文视频 | 亚洲乱码日产精品bd在线观看 | 中日韩一线二线三线视频 | 国产三级网站 | 天天看片天天爽 | 午夜88| 成人黄色免费视频 | 精品国产一区二区三区久久久蜜月 | 亚洲另类春色校园小说 | 91另类| 日本不卡网| 男人扒开女人内裤强吻桶进去 | 四虎永久在线精品免费一区二区 | 色爽| www激情网| 18禁无遮挡免费视频网站 | 高h辣h情趣道具h黄n男一女 | 国产免费不卡 | 欧美日韩午夜爽爽 | av在线网页 | 久久久国产精品免费 | av网址在线| 无码人妻av一区二区三区蜜臀 | 亚洲精品婷婷 | 国产又粗又猛又爽又黄的 | 久久影院午夜理论片无码 | 日韩高清国产一区在线 | jizz成熟丰满日本少妇 | 最近免费中文字幕大全免费版视频 | 天天操bb | 东北少妇不戴套对白第一次 | 新x8x8拨牐拨牐永久免费影库 | 久久精品日产第一区二区三区乱码 | 欧美成人手机在线视频 | 欧美黑人疯狂性受xxxxx喷水 | 天天综合一区 | 亚洲国产真实交换 | 三级网站国产 | 丁香婷婷亚洲 | 91popn国产在线 | 久久导航精品一区 | 欧美一区二区三区精品免费 | 黄色91免费版 | 欧美人与禽zozzo视频 | 国产成人欧美一区二区三区 | 男女在楼梯上高潮做啪啪 | 成人欧美一区二区三区黑人动态图 | 成人一区视频 | 懂色av一区二区三区免费观看 | 国产猛男猛女无套av | 国产丝袜在线视频 | 久久久久久99精品久久久 | 中文字幕亚洲欧美日韩 | 好吊妞视频988gao免费 | 欧美 日韩 国产精品 | 午夜无码大尺度福利视频 | 真实国产乱啪福利露脸 | 亚洲视频在线观看 | 欧美色图一区二区三区 | 九色丨9lpony丨国产 | 久久99久久98精品免观看软件 | 99夜夜 | 亚洲欧美第一页 | 隔壁邻居是巨爆乳寡妇 | 成人黄色在线 | 亚洲综合av在线在线播放 | 日韩大片免费观看视频播放 | 久久综合伊人 | 亚洲专区视频 | 97青草| 欧美在线一区二区三区四区 | 色欲狠狠躁天天躁无码中文字幕 | 成人黄色大片在线观看 | 中文字幕丰满人伦在线 | 免费观看成人www动漫视频 | 男女激情在线观看 | 中文成人精品久久一区 | 国产传媒毛片精品视频第一次 | 欧美熟妇另类久久久久久多毛 | 久久www免费人成看片好看吗 | 最新视频–x99av | 少妇之白洁番外篇 | 91视频综合 | 四虎影视网 | 亚洲 欧洲 无码 在线观看 | 肥白大屁股bbwbbwhd | 新婚少妇出差沦陷 | 婷婷射精av这里只有精品 | 69堂成人精品免费视频 | jzjzjz亚洲丰满少妇 | 亚洲天堂国产精品 | 日本综合久久 | 三上悠亚人妻中文字幕在线 | 拍真实国产伦偷精品 | 北条麻妃一区二区免费播放 | 特级a级片 | 欧美成人乱码一二三四区免费 | 少妇太爽了在线观看 | 亚洲蜜臀av | 日韩一二三区在线观看 | 国产片一区二区三区 | 国产精品va无码一区二区 | 亚洲自偷自拍另类第1页 | 亚洲一区波多野结衣在线app | 国产男女猛烈无遮挡免费视频 | 全部免费a级毛片 | 国产精品中文久久久久久久 | 丰满少妇被猛烈进入高清播放 | 波多野结衣成人在线 | 在线 国产 欧美 亚洲 天堂 | 久草在线视频资源站 | 国产制服91一区二区三区制服 | 贱奴的sm(高h调教) | 国产做受高潮漫动 | 午夜精品一区二区三区的区别 | 国产精品视频全国免费观看 | 国产91富婆露脸刺激对白 | 人人草av| 色哺乳xxxxhd国产 | 亚洲女同视频 | 色综合视频一区二区三区 | 欧美爽爽爽 | 天天天天天天操 | 色婷婷蜜桃 | 亚洲人成网亚洲欧洲无码久久 | 欧美成人精品激情在线观看 | 丰满少妇人妻hd高清大乳在线 | 国产不卡视频在线 | 日韩一区二区在线观看视频 | 成人黄色片视频 | 国产一级内谢一级一内高请 | 日韩精品在线一区 | 久久免费激情视频 | 国产三级全黄 | 狠狠躁18三区二区一区传媒剧情 | 国产成人三级在线播放 | 色婷婷国产精品 | 国产日韩一区二区三区 | 国产一极毛片 | 懂色av成人一区二区三区 | 色综合久久综合网 | 91免费大片网站 | 杨思敏全身裸体毛片看 | 国产精品美女久久久久av爽 | 色诱久久久久综合网ywww | 亚洲成av人片天堂网老年人 | 美女100%挤奶水视频吃胸 | 国产在线观看中文字幕 | 国产成a人无v码亚洲福利 | 亚洲一区二区三区偷拍女厕 | 中国肥老太婆高清video | 欧美激情69 | 中文字幕一区二区三区精品 | 久久无码av中文出轨人妻 | 亚洲v日韩v综合v精品v | 军人粗大的内捧猛烈进出视频 | 国内精品偷拍视频 | 蜜桃堂女性向av片在线观看 | 亚洲成av人的天堂在线观看 | 天天爱天天插 | 欧美videossex另类 | 女女百合高h喷汁呻吟视频 女女百合国产免费网站 | 国产浮力影院 | 亚洲国产精品成人综合色在线婷婷 | 欧美激情小视频 | 88av在线播放| 久久久久久久久蜜桃 | 欧美黑人性xxx| 免费中文字幕日韩欧美 | 你懂的网址在线 | 99这里都是精品 | 亚洲黑人巨大videos | 亚洲一级免费在线观看 | 欧美在线中文 | 亚洲影院丰满少妇中文字幕无码 | 自拍偷拍视频网站 | 在线视频三区 | www.在线国产| 黄色片一级毛片 | 性xxxx18免费观看视频 | 无码色偷偷亚洲国内自拍 | 欧美日本在线观看 | 荡女乱翁床第高h | 中文字幕人成乱码在线观看 | 亚洲精品一卡二卡 | 国产精品久久久久影院嫩草 | 综合网日日天干夜夜久久 | 国产精品成人av在线观看春天 | 中文字幕文字暮 | 7799精品视频 | sese在线视频| 亚洲6080yy久久无码产自国产 | 久久丫精品忘忧草西安产品 | 中文字幕人妻无码视频 | 日韩一区二区三 | 一区二区三区毛片 | 专干老熟女视频在线观看 | 精品少妇一区二区三区在线观看 | 欧美高清成人 | 一级特黄视频 | 欧美另类在线观看 | 亚洲欧美色中文字幕在线 | 日韩在线精品强乱中文字幕 | 亚洲一区中文字幕在线观看 | 中文www新版资源在线 | 国产三级影院 | 黄色麻豆视频 | 琪琪在线视频 | 卧室激情呻吟黄暴h文 | 欧美人与拘性视交免费看 | 久久www免费人成_网站 | 久久艹这里只有精品 | 天天躁日日躁狠狠躁性色av王爷 | 日韩欧美成人免费观看 | 99在线观看 | 日韩av综合| 奇米综合四色77777久久 | 九九热在线观看视频 | 久久亚洲一区二区三区四区五区 | 免费成人高清在线视频 | 国产精品理论片 | 在线观看日本www | 深夜爽爽福利 | 多p混交群体交乱小说h | 一级视频片 | 婷婷天天 | 国产免费一区二区三区香蕉精 | 精品国产大片大片大片 | 午夜久久网 | 久久久久亚洲精品中文字幕 | 毛片无遮挡高清免费 | 天天综合永久入口 | 成年片黄色日本大片网站视频 | 人妻被按摩师玩弄到潮喷 | 欧美日韩一区二区久久 | 羞羞国产一区二区三区四区 | av青青草| 91丨九色丨国产在线 | 中文字幕精| 国产精品普通话 | 亚洲欧美成人精品香蕉网 | 亚洲欧美国产毛片在线 | 91精品国产一区二区 | 美女隐私免费观看视频 | 三级亚洲| 上司的丰满人妻中文字幕 | 青青草超碰在线 | 午夜88| 国产清纯白嫩初高生在线观看性色 | 国产精品成人精品久久久 | 国产精品初高中害羞小美女文 | 国产麻豆一区二区 | 久久久久有精品国产麻豆 | 中出少妇 | 男人和女人在床的app | 亚洲色图狠狠爱 | 欧美亚洲另类小说 | 亚洲精品3| 亚洲网友自拍 | 邻居少妇张开腿让我爽视频 | 国产天美传媒性色av | 丝袜美腿一区二区三区 | 免费又黄又爽又猛的毛片 | 成人精品视频99在线观看免费 | 国模av在线| 噼里啪啦完整高清观看视频 | 精品国产乱码久久久久久88av | 欧美一级淫片免费视频欧美辣图 | 张柏芝ⅹxxxxhd96| 久久久久久蜜桃一区二区 | av片在线播放 | 农民人伦一区二区三区剧情简介 | 黄色一级视频网站 | 三级免费黄 | 久久欧美亚洲另类专区91大神 | 女人高潮抽搐aaa | 日韩久久久久久久久 | 亚洲最大色综合成人av | 亚洲伦理在线播放 | 国产肉体xxxx裸体137大胆 | 成人免费黄色片 | 最新av观看| 国产亚洲精品久久久闺蜜 | 又大又粗又爽的少妇免费视频 | 国产精品久久久久久一二三四五 | 少妇激三级做爰在线观看 | 美女裸奶100%无遮挡免费网站 | 免费在线观看av | 国产精品一二区 | 亚洲中文字幕无码爆乳av | 久久夜色噜噜噜av一区二区 | 床上激情网站 | 女人被狂躁c到高潮视频 | 羞羞色男人的天堂 | 伊人夜夜躁av伊人久久 | 日韩欧美国产一区二区在线观看 | 久久久久久久久久久久久大色天下 | 人妻丰满熟妇aⅴ无码 | 中文字幕人成乱码熟女香港 | 夜夜撸av| 日韩一级理论片 | 久久96| 国产日产欧产精品精品首页 | 色94色欧美sute亚洲线路一久 | 97免费人做人爱在线看视频 | 有码一区二区三区 | 国产精品高清网站 | 日韩欧美精品在线视频 | 午夜精品久久久久久久传媒 | 男男av网站 | 狂野欧美性猛交xxxx777 | 亚洲福利精品 | 97亚洲熟妇自偷自拍另类图片 | 特级西西人体444www高清大胆 | 国产欧美久久一区二区三区 | 成人夜间视频 | av中文字幕不卡 | 日产mv免费观看 | 国产性猛交xx乱老孕妇 | 天天精品视频 | 偷拍久久久 | 中文字幕一二区 | 爱爱爱爱网站 | 六月婷婷久香在线视频 | 女人被狂躁的高潮免费视频 | 国产xxxx成人精品免费视频频 | 国产果冻豆传媒麻婆 | 人妖另类巨茎双性人欧美视频 | 99re热这里只有精品视频 | 日韩午夜毛片 | 亚洲日本在线播放 | 欧美日韩亚洲中文字幕二区 | 精品国产欧美一区二区 | 乱亲女h秽乱长久久久 | 女医生大乳奶水 | 尤物九九久久国产精品的特点 | 谁有毛片网址 | 国产91对白在线播放 | 99久久国产综合精品麻豆 | 欧美日韩亚洲另类 | 久久久国产精品免费 | 无码一区二区波多野结衣播放搜索 | 亚洲国产视频一区 | 欧美日韩一二三四区 | 国产又黄又爽又色的视频 | 逼特逼视频在线观看 | 国产成人久久婷婷精品流白浆 | 欧美真人性野外做爰 | 麻花传媒mv在线观看 | 国产亚洲精品aaaaaaa片 | 亚洲第一综合网 | 国产va在线| 国产无套精品一区二区三区 | 亚洲深深色噜噜狠狠爱网站 | 日本一卡2卡3卡4卡无卡免费网站 | 99草草国产熟女视频在线 | 亚洲福利视频网站 | 国产精品久久久久aaaa | 国产欧洲精品亚洲午夜拍精品 | 热久久精品免费视频 | 久操视频免费观看 | 毛片色毛片18毛片美女 | 国产又粗又猛又爽视频 | 五月天黄色小说 | 免费一级做a爰片久久毛片潮喷 | 东京热无码av男人的天堂 | 国产高潮久久久久久绿帽 | 国产毛片精品一区二区 | 亚洲综合小说 | 成人黄色免费观看 | 亚洲国产欧美日韩 | 超碰在线观看97 | 国产又色又爽无遮挡免费 | 人人超人人超碰超国产97超碰 | 欧美自拍嘿咻内射在线观看 | 欧美大片www | 亚洲25p | 性国产激情精品 | 中文字幕人妻熟女人妻 | 一级大黄色片 | 国产福利在线观看视频 | 神马久久久久 | 91玉足脚交白嫩脚丫在线播放 | 日韩av网址在线观看 | 久久aⅴ免费观看 | 亚洲揄拍窥拍久久国产自揄拍 | 青青草一区二区三区 | av一区二区三区在线观看 | 诱人的奶水h男 | 亚洲 变态 欧美 另类 捆绑 | 香蕉视频一区二区 | 婚后日日高h文孕 | www.se天堂| 黑人巨大无码中文字幕无码 | yp在线观看视频网址入口 | 4438x五月天| 成人国产精品久久久 | 麻豆污视频 | 秋霞影院午夜丰满少妇在线视频 | 69国产精品视频 | 国产一区二区三区自拍 | 日韩色综合 | √8天堂资源地址中文在线 丰满少妇人妻久久久久久 a片在线免费观看 | 亚洲成人av一区 | 久久中文一区二区 | 欧美日韩视频在线观看免费 | 性欧美13处14破xxx极品 | 白又丰满大屁股bbbbb | 久久久精品人妻久久影视 | 永久免费国产 | 黄色一级在线播放 | 伊人久久大香线蕉av色婷婷色 | 欧美福利视频一区二区 | 91久久综合 | 91精品国产乱码久久久久 | 日本japanese学生丰满 | 久久综合影视 | 狠狠操综合| www精品国产| 中文字幕在线看片 | 军人粗大的内捧猛烈进出视频 | 三男玩一个饥渴少妇爽叫视频播放 | 久久国产精品久久w女人spa | 亚洲石原莉奈一区二区在线观看 | 欧美激情四区 | 国产第5页 | 视频在线一区二区三区 | 亚洲综合在线观看视频 | 强乱中文字幕亚洲精品 | www婷婷av久久久影片 | 国产熟妇乱子伦视频在线观看 | 欧洲视频一区二区 | 国内精品一区二区 | 欧美日韩国产高清视频 | 欧美三区在线 | 久久五月网 | 国产一级特黄aaa大片评分 | 一区二区三区无码视频免费福利 | 肉色超薄丝袜脚交69xx | 中文日产日产乱码乱偷在线 | 亚洲欧美日韩色图 | 国产日韩精品欧美一区喷水 | 国产乱了实正在真 | 欧美性猛交xxxxx按摩欧美 | 欧美与黑人午夜性猛交久久久 | 久久精品无码观看tv | 青青在线 | 国产偷抇久久精品a片69 | 黄色大片视频网站 | 中文字幕h | 亚洲激情视频在线观看 | 日本中文字幕在线 | 人妻少妇精品视频专区 | 午夜精品久久久久久久99芒果 | 日韩欧美视频在线播放 | jizz高潮| 米奇777超碰欧美日韩亚洲 | 香港裸体三级aaaaa | 亚洲www啪成人一区二区 | 久久影院国产 | 青青草原精品99久久精品66 | 中午字幕在线观看 | 亚洲国产成人极品综合 | 人人爽人人爽少妇免费 | 免费av资源 | 成人国内精品久久久久影院vr | 亚洲精品人成无码中文毛片 | 中国一级片黄色一级片黄 | 中文字幕一二三 | 日本一区二区视频免费 | 国产呻吟久久久久久久92 | 免费不卡的av | 欧美精品videossex少妇 | 性网爆门事件集合av | 久久久嫩草 | 麻豆一区二区三区精品视频 | 国产1级片 | 综合网在线视频 | 韩日午夜在线资源一区二区 | 国产午夜精品一区二区三区在线观看 | 美州a亚洲一视本频v色道 | 人妻熟妇女的欲乱系列 | 国产乱码精品一区二区三区中文 | 操大逼免费视频 | √天堂资源地址在线官网 | 伦理片午夜 | 日本特黄特色大片免费视频老年人 | 夜影影视剧大全在线观看 | 国产精品乱码人人做人人爱 | 国产日韩欧美一区二区东京热 | 蜜臀久久99精品久久一区二区 | 久久精品一二三区白丝高潮 | wwwcom捏胸挤出奶 | 欧美中文字幕在线视频 | 乱码一区二区三区 | 欧美jizzhd精品欧美喷水 | 日韩人妻精品一区二区三区视频 | 极品尤物被啪到呻吟喷水 | 久久久无码精品亚洲日韩按摩 | 国产在线精品成人免费怡红院 | 久久久久一级片 | 成人xxx| 国产在线观看禁18 | 99re在线观看视频 | 少妇搡bbbb搡bbb搡古装 | 国产91在线观看丝袜 | 美女的隐私免费看 | 国产精品免费久久久久影院仙踪林 | 欧美三级毛片 | 丁香婷婷激情综合俺也去 | 欧美 国产 综合 欧美 视频 | 国产超碰人人做人人爽av牛牛 | 免看一级a毛片一片成人不卡 | 午夜视频福利网站 | 日韩免费观看完整 | 国产精品免费久久久久久久久久中文 | 中国丰满少妇熟乱xxxx | 中文在线字幕av | 一个人看的www片免费高清视频 | 午夜精品视频一区 | 瑜伽裤国产一区二区三区 | 99久久免费看视频 | 一级做a爰| 91张津瑜 午夜在线播放 | 亚洲 自拍 另类 欧美 丝袜 | 另类三区 | 黄色软件视频大全 | 久久精品三级视频 | 亚洲精品日韩综合观看成人91 | 在线看黄色av | 91传媒视频在线观看 | 97超级碰碰人国产在线观看 | 午夜丰满少妇性开放视频 | 亚洲精品国产精品乱码在线观看 | 国产精品一区在线播放 | 国产精品一级二级 | 伊人久久噜噜噜躁狠狠躁 | 亚洲啪av永久无码精品放毛片 | 免费h片在线观看 | 8x8ⅹ国产精品一区二区二区 | 97人妻天天摸天天爽天天 | 精品国产成人一区二区 | 五月婷婷在线视频 | 69av片| 亚洲色图欧美自拍 | 免费成人黄 | 九色蜜桃臀丨porny丨自拍 | 精品国产av一区二区三区 | www春色|