精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

游標腳本性能問題詳解之游標分類特點篇

數(shù)據(jù)庫 SQL Server 數(shù)據(jù)庫運維
從上篇游標腳本性能問題詳解之案例實踐篇兩個腳本執(zhí)行情況的對比中可以看出,游標的選擇對語句執(zhí)行的性能具有一定的影響。下面我們來進行一定的比較分析,并學(xué)習(xí)如何使用各種游標。

從上篇游標腳本性能問題詳解之案例實踐篇兩個腳本執(zhí)行情況的對比中可以看出,游標的選擇對語句執(zhí)行的性能具有一定的影響。

在SQL Server聯(lián)機叢書上列出了不止十種游標類型,但是所有游標都可以被劃到兩大類別:

1. 通過從***得到結(jié)果的臨時拷貝映像靜態(tài)進行

2. 每次fetch都通過動態(tài)進行且真正查閱表

STATIC、KEYSET、READ_ONLY和FAST_FORWARD屬于***大類,F(xiàn)ORWARD_ONLY、DYNAMIC和OPTIMISTIC屬于第二大類。

下面我們來進行一定的比較分析,并學(xué)習(xí)如何使用各種游標。在進行這部分之前,我們要引入另一個set statistics的方法: set statistics profile on

這個option會幫助我們打印出文本格式的執(zhí)行計劃和每一布的執(zhí)行統(tǒng)計信息。這個部分的執(zhí)行語句執(zhí)行計劃都是通過這個option打印的。

1. 首先,我們把游標腳本中的SQL語句抽取出來直接運行而不使用游標:

  1. SELECT       T1.*  
  2. FROM         dbo.S_AUDIT_ITEM T1              
  3. LEFT OUTER JOIN dbo.S_USER T2   
  4. ON T1.USER_ID = T2.PAR_ROW_ID      
  5. WHERE   T1.BC_BASE_TBL = 'S_PARTY' AND   T1.RECORD_ID = '1-10350J' 
  6. ORDER BY       T1.OPERATION_DT DESC  

執(zhí)行情況如下:邏輯讀15次,使用的是索引查找(index seek)

  1. Table 'S_USER'. Scan count 1, logical reads 260, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  
  2. Table 'S_AUDIT_ITEM'. Scan count 1, logical reads 15, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  

執(zhí)行計劃為:

  1. Rows                 Executes             StmtText                                                                                                   
  2. -------------------- -------------------- ---------------------------------------------------------------------------------------------------------  
  3. 4                    1                    SELECT  T1.*  FROM  dbo.S_AUDIT_ITEM T1                                                                                                                     
  4. LEFT OUTER JOIN dbo.S_USER T2                                                                                                                        
  5. ON T1.USER_ID = T2.PAR_ROW_ID                                                                                                                        
  6. WHERE   T1.BC_BASE_TBL = 'S_PARTY' AND   T1.RECORD_ID = '1-10350J'                                                                                 ORDER BY  T1.OPERATION_DT DESC            1    1    0      NULL         NULL                     
  7. 4                    1                      |--Sort(ORDER BY:([T1].[OPERATION_DT] DESC))                                                             
  8. 4                    1                           |--Nested Loops(Left Outer Join, WHERE:([testcursor].[dbo].[S_AUDIT_ITEM].[USER_ID] as [T1].[USER_  
  9. 4                    1                                |--Nested Loops(Inner Join, OUTER REFERENCES:([Uniq1002], [T1].[ROW_ID]) OPTIMIZED)            
  10. 4                    1                                |  |--Index Seek(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_M3] AS [T1]), SEEK  
  11. 4                    4                                |  |--Clustered Index Seek(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_P1] AS [  
  12. 66908                4                                |--Table Scan(OBJECT:([testcursor].[dbo].[S_USER] AS [T2]))     

2. 下面通過T-SQL語句打開一個游標。注意,這里創(chuàng)建的游標為dynamic類型,因為新聲明的游標默認類型為dynamic。。本文開頭使用的存儲過程是調(diào)用API游標的寫法,這里是用T-SQL語句打開游標,兩種寫法使用的游標類型和執(zhí)行的語句是完全一樣的。

  1. declare @CONFLICT_ID int 
  2. declare curTest cursor 
  3.  
  4. FOR 
  5.     SELECT   
  6.        T1.CONFLICT_ID  
  7.     FROM         dbo.S_AUDIT_ITEM T1              
  8.     LEFT OUTER JOIN dbo.S_USER T2  
  9.     ON T1.USER_ID = T2.PAR_ROW_ID      
  10.     WHERE      T1.BC_BASE_TBL = 'S_PARTY' AND   T1.RECORD_ID ='1-10350J'     
  11.     ORDER BY       T1.OPERATION_DT    
  12.  
  13. OPEN curTest  
  14. FETCH NEXT FROM curTest   
  15. INTO @CONFLICT_ID  
  16. CLOSE curTest  
  17.  
  18. deallocate curTest 

執(zhí)行情況為:邏輯讀明顯增多,使用索引掃描(index scan)

  1. Table 'Worktable'. Scan count 0, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.                 
  2. Table 'S_USER'. Scan count 1, logical reads 64, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.                   
  3. Table 'S_AUDIT_ITEM'. Scan count 1, logical reads 3026834, physical reads 1292, read-ahead reads 5574, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  

執(zhí)行計劃如下:

  1. Rows                 Executes             StmtText                                                                                                                          
  2. -------------------- -------------------- --------------------------------------------------------------------------------------------------------------------------------  
  3. 1                    1                    FETCH NEXT FROM curTest                                                                                                           
  4. INTO @CONFLICT_ID                                                                                                                                                           
  5. 1                    1                      |--Clustered Index Insert(OBJECT:(CWT), SET:([CWT].[COLUMN0] = [testcursor].[dbo].[S_AUDIT_ITEM].[ROW_ID] as   
  6. 1                    1                           |--Compute Scalar(DEFINE:([Expr1008]=CWT_ROWID()))                                                                         
  7. 1                1                                |--Nested Loops(Left Outer Join, WHERE:([testcursor].[dbo].[S_AUDIT_ITEM].[USER_ID] as   
  8. 1                    1                                     |--Nested Loops(Inner Join, OUTER REFERENCES:([Uniq1004], [T1].[ROW_ID]))                                        
  9. 1007751              1                                     |    |--Index Scan(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_M4] AS     
  10. 1                    1007751                               |    |--Clustered Index Seek(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_P1] AS   
  11. 16401                1                                     |--Table Scan(OBJECT:([testcursor].[dbo].[S_USER] AS [T2]))  

接下來,我們使用其他類型的游標進行測試,從它們的測試結(jié)果會發(fā)現(xiàn):

當(dāng)使用STATIC、KEYSET、READ_ONLY、FAST_FORWARD類型的游標,可以得到理想的執(zhí)行計劃(索引S_AUDIT_ITEM_M3上使用索引查找)。

但是,如果使用其他第二類游標類型,得到的執(zhí)行計劃就不甚理想了(索引S_AUDIT_ITEM_M4上使用索引掃描)。

從上面的測試,我們知道STATIC、KEYSET、READ_ONLY及FAST_FORWARD游標可以帶給我們同樣的理想結(jié)果。那么,這些游標有什么共同點?

我們可以分析一下兩大游標類型執(zhí)行計劃的不同:

1. STATIC、KEYSET、READ_ONLY、FAST_FORWARD類型游標的執(zhí)行計劃:

  1. Executes             StmtText                                                                                                              
  2. -------------------- --------------------------------------------------------------------------------------------------------------------  
  3. 1                    OPEN curTest                                                                                                          
  4. 1                      |--Clustered Index Insert(OBJECT:(CWT), SET:([CWT].[COLUMN0] = [testcursor].[dbo].[S_AUDIT_ITEM].[CONFLICT_ID] as   
  5. 1                           |--Sequence Project(DEFINE:([Expr1008]=i4_row_number))                                                         
  6. 1                                |--Segment                                                                                                
  7. 1                                     |--Sort(ORDER BY:([T1].[OPERATION_DT] ASC))                                                          
  8. 1                                          |--Nested Loops(Left Outer Join, WHERE:([testcursor].[dbo].[S_AUDIT_ITEM].[USER_ID] as [T1].[U  
  9. 1                                               |--Nested Loops(Inner Join, OUTER REFERENCES:([Uniq1004], [T1].[ROW_ID]) OPTIMIZED)        
  10. 1                                               |    |--Index Seek(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_M3] AS [T1]),   
  11. 4                                               |    |--Clustered Index Seek(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_P1]   
  12. 4                                               |--Table Scan(OBJECT:([testcursor].[dbo].[S_USER] AS [T2]))                                
  13.                                                                                                       
  14. Executes             StmtText                                                                                        StmtId      NodeId    
  15. -------------------- ----------------------------------------------------------------------------------------------- ----------- --------  
  16. 1                    FETCH NEXT FROM curTest INTO @CONFLICT_ID                       2           1           
  17. 1                      |--Clustered Index Seek(OBJECT:(CWT), SEEK:([CWT].[ROWID]=FETCH_RANGE((0))) ORDERED FORWARD)  2           2         

2. dynamic類型游標的執(zhí)行計劃

  1. Executes   StmtText                                                                                                                      
  2. ---------------------------------------------------------------------------------------------------------------------------------------  
  3. 1          FETCH NEXT FROM curTest                                                                                                       
  4.                                                                                                                                          
  5. 1            |--Clustered Index Insert(OBJECT:(CWT), SET:([CWT].[COLUMN0] = [testcursor].[dbo].[S_AUDIT_ITEM].[ROW_ID] as [T1].[ROW_ID]  
  6. 1                 |--Compute Scalar(DEFINE:([Expr1008]=CWT_ROWID()))                                                                     
  7. 1                      |--Nested Loops(Left Outer Join, WHERE:([testcursor].[dbo].[S_AUDIT_ITEM].[USER_ID] as [T1].[USER_ID]=[testcurso  
  8. 1                           |--Nested Loops(Inner Join, OUTER REFERENCES:([Uniq1004], [T1].[ROW_ID]))                                    
  9. 1                           |    |--Index Scan(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_M4] AS [T1]), ORDERED BACKWARD)   
  10. 1007751                     |    |--Clustered Index Seek(OBJECT:([testcursor].[dbo].[S_AUDIT_ITEM].[S_AUDIT_ITEM_P1] AS [T1]), SEEK:([T  
  11. 1                           |--Table Scan(OBJECT:([testcursor].[dbo].[S_USER] AS [T2]))  

比較一下兩個執(zhí)行計劃的FETCH NEXT部分(SQL Server在游標打開階段不會讀取表):在***個執(zhí)行計劃中,F(xiàn)ETCH是直接從臨時對象CWT中得到行,然后從CWT.ROWID中找到相應(yīng)范圍。而在第二個計劃中,F(xiàn)ETCH是動態(tài)的而且是真正對表進行了讀取,從表中取得數(shù)據(jù)。
 

責(zé)任編輯:艾婧 來源: ITPUB
相關(guān)推薦

2011-04-06 08:54:38

游標腳本性能問題

2011-04-07 11:02:52

游標

2010-11-16 15:40:21

oracle游標

2011-04-19 15:38:16

MongodbCursor

2010-11-16 15:11:52

Oracle隱式游標

2010-11-16 15:23:28

Oracle游標

2010-08-03 12:58:29

DB2游標循環(huán)

2010-07-26 11:27:43

SQL Server打

2010-05-26 18:08:30

Linux性能監(jiān)控

2013-05-20 16:09:39

SQL Server

2010-07-23 18:33:57

SQL Server游

2021-11-17 08:11:35

MySQL

2010-09-26 13:51:48

SQL游標

2010-04-02 09:51:37

SQL Server

2019-10-16 00:37:36

Oracle數(shù)據(jù)庫游標數(shù)

2010-04-21 15:02:50

Oracle使用游標

2010-04-21 15:10:35

Oracle游標

2010-10-22 13:34:49

SQL Server游

2010-05-26 16:41:09

MySQL 游標

2022-05-11 15:06:02

MySQL游標SQL
點贊
收藏

51CTO技術(shù)棧公眾號

一级特黄aaaaaa大片| 日本少妇xxxx| 国产午夜精品久久久久免费视| 蜜桃精品在线观看| 欧美成人免费在线视频| 俄罗斯女人裸体性做爰| 伊人网在线播放| 国产精品免费看片| 国产精品一区二区不卡视频| 岛国av中文字幕| 亚洲精品网址| 精品一区二区亚洲| 999在线精品视频| 性欧美xxx69hd高清| 国产精品美女久久久久久久久 | 国产原创一区二区三区| 国内精品久久久久伊人av| 丁香激情五月少妇| 一本一道久久a久久| 久久在线视频| 欧美一卡二卡在线| 免费在线激情视频| 乱人伦中文视频在线| 99v久久综合狠狠综合久久| 国产精品丝袜久久久久久不卡| 少妇影院在线观看| 欧洲杯足球赛直播| 日韩hd视频在线观看| 天天干天天曰天天操| 欧美日韩免费看片| 亚洲小说欧美激情另类| 亚洲电影一二三区| 无码精品一区二区三区在线| 国内精品在线播放| 国产精品第一第二| 在线观看免费国产视频| 中文字幕一区二区三区在线视频 | 国产chinesehd精品露脸| 精品3atv在线视频| 天天综合天天做天天综合| 国产精品av免费| 国产粉嫩一区二区三区在线观看| 成人午夜电影网站| 成人黄视频免费| 一卡二卡在线观看| 免费观看日韩电影| 国产mv免费观看入口亚洲| 亚洲一区 视频| 午夜精品999| 久久精品国产亚洲7777| 久久久久久久久福利| 你懂的视频欧美| 亚洲精品视频免费在线观看| 欧美在线一级片| 澳门成人av| 日韩一区二区在线播放| 色婷婷激情视频| 欧美性生活一级| 欧美日韩综合在线| 久久国产精品国产精品| 91亚洲视频| 欧美视频日韩视频在线观看| 成人一区二区三| 韩国精品主播一区二区在线观看| 日本乱人伦aⅴ精品| 92看片淫黄大片一级| 亚洲精品国产精品国产| 欧美日韩中文在线| 日韩欧美xxxx| 全球最大av网站久久| 欧美色视频在线观看| wwww.国产| 狂野欧美性猛交xxxx| 在线精品视频小说1| 中文字幕在线导航| 四虎国产精品免费久久| 7777女厕盗摄久久久| 日本人dh亚洲人ⅹxx| 哺乳挤奶一区二区三区免费看 | 午夜视频在线免费播放| 26uuu色噜噜精品一区二区| 蜜桃网站成人| 欧美高清视频| 亚洲综合一二区| 欧美精品99久久| 欧美7777| 91精品在线观看入口| 中文字幕66页| 9l亚洲国产成人精品一区二三| 日韩精品久久久久久福利| 亚洲精品乱码久久久久久久久久久久| 日本一二区不卡| 久久99精品久久久久久噜噜 | 精品999网站| 欧美重口另类videos人妖| 亚洲精品国产精品乱码视色| 国内久久婷婷综合| 欧美1o一11sex性hdhd| 欧美午夜电影一区二区三区| 亚洲一区av在线| 国产日韩一区二区在线观看| 亚洲日日夜夜| 日韩精品欧美国产精品忘忧草| 成年人免费视频播放| 亚洲日产国产精品| 国产精品永久在线| 天天色综合久久| 亚洲视频免费在线| 免费av手机在线观看| 国产91在线精品| 亚洲第一天堂无码专区| 超碰人人人人人人人| 91久久视频| 成人午夜黄色影院| 欧美偷拍视频| 亚洲综合在线免费观看| 欧美成人福利在线观看| 香蕉人人精品| 色综合久久久888| 亚洲视频在线观看免费视频| www.亚洲色图| gogogo免费高清日本写真| 中文字幕在线免费观看视频| 欧美一区二区成人6969| 大胸美女被爆操| 羞羞答答国产精品www一本| 91九色蝌蚪成人| 亚洲欧美视频一区二区| 日韩欧美国产黄色| 国产女人18毛片水真多18| 亚洲精品网址| 成人黄色av网站| fc2在线中文字幕| 都市激情亚洲色图| 美女搡bbb又爽又猛又黄www| 亚洲激情中文在线| 成人女保姆的销魂服务| 一本一道波多野毛片中文在线| 日本乱人伦一区| 亚洲区自拍偷拍| 国产一区白浆| 精品一区二区日本| 成人在线免费观看黄色| 精品蜜桃在线看| 男女免费视频网站| 国产成人在线视频网站| 在线观看18视频网站| 日韩三级一区| 久久精品成人动漫| 国产精品久久久久久无人区| 国产精品白丝在线| 国产永久免费网站| 亚洲草久电影| 亚洲专区在线视频| 香蕉久久aⅴ一区二区三区| 91精品国产免费| 中文字幕五月天| 国产精品1024| a级黄色小视频| 美日韩黄色大片| 91精品国产91| 日本中文字幕电影在线观看| 色哟哟一区二区| 成人性生交大免费看| 久久福利精品| 亚州欧美一区三区三区在线| 99久久er| 蜜臀久久99精品久久久久久宅男| av手机免费看| 亚洲国产日韩精品| 中文字幕 亚洲一区| 老司机亚洲精品| 夜夜爽www精品| 欧美片网站免费| 久久青草精品视频免费观看| 天堂91在线| 欧美专区亚洲专区| 中国毛片直接看| 欧美日韩一本| 亚洲亚洲人成综合网络| 亚洲女人在线观看| 欧美日一区二区在线观看 | 国产欧美视频一区二区| 欧美成年人视频在线观看| 亚洲va在线| 国产精品三区www17con| 午夜影院一区| 日韩最新中文字幕电影免费看| 国产ts变态重口人妖hd| 动漫精品一区二区| 四虎884aa成人精品| 成人h动漫精品一区二区| 成人精品视频一区二区| 91tv精品福利国产在线观看| 好看的日韩精品| 91精品国产66| 久久久久久91| 成a人片在线观看www视频| 91精品国产综合久久福利| 国产区在线观看视频| 国产精品不卡一区二区三区| 中文字幕a在线观看| 久久精品国产亚洲高清剧情介绍| www插插插无码免费视频网站| 一本久久青青| 国产成人精品一区二区三区福利 | 成人免费激情视频| 亚洲欧美电影| 欧美寡妇偷汉性猛交| 国产福利在线看| 精品国产123| 在线观看免费观看在线| 精品毛片三在线观看| 亚洲天堂黄色片| 国产欧美一区二区三区网站 | 91日韩在线专区| 韩国一区二区在线播放| 丝袜国产日韩另类美女| 欧美国产视频一区| 欧美www视频在线观看| 久久精品ww人人做人人爽| 99久热在线精品视频观看| 国产精欧美一区二区三区| missav|免费高清av在线看| 久久精品免费电影| www.av在线| 亚洲天堂av高清| 亚洲色图欧美视频| 欧美疯狂做受xxxx富婆| 成人黄色免费网| 欧美日韩综合视频| 日本污视频在线观看| 亚洲靠逼com| 国产传媒免费在线观看| 欧美国产精品一区二区三区| 久久精品无码一区| 久久久.com| 国产真实乱人偷精品人妻| 91亚洲精品乱码久久久久久蜜桃 | 国产亚洲短视频| 无码人妻精品一区二区三区温州| 国产成都精品91一区二区三| 亚洲日本黄色片| 久久99热狠狠色一区二区| 在线免费av播放| 日本午夜精品视频在线观看| 亚洲熟妇av一区二区三区| 国产精品一国产精品k频道56| 福利视频一二区| 影音先锋久久久| 一卡二卡三卡视频| 亚洲欧洲一区二区天堂久久| 日本欧美视频在线观看| 999在线观看精品免费不卡网站| 丁香六月激情网| 激情综合在线| 亚洲美免无码中文字幕在线| 91久久午夜| 亚洲精品乱码久久久久久自慰| 久久av一区| 天天操天天摸天天爽| 日本美女一区二区三区| 亚洲一级片网站| 国产一区二区三区在线观看精品| 日日夜夜精品视频免费观看| 国产91高潮流白浆在线麻豆| 黄色网址在线视频| 国产亚洲精品aa午夜观看| av在线播放中文字幕| 亚洲人成网站色在线观看| 欧美成人一区二区三区高清| 亚洲国产精品自拍| 精品国产一区二区三区四| 欧美亚洲综合色| 国产男男gay网站| 亚洲高清久久久久久| 欧美精品a∨在线观看不卡| 色久欧美在线视频观看| 天堂8中文在线| 热草久综合在线| 亚洲国产精选| 九九九九九精品| 成人激情免费视频| 美女黄色免费看| 性伦欧美刺激片在线观看| 午夜精品久久久久久久99热影院| 国产宾馆实践打屁股91| 国产毛片久久久久久久| 亚洲免费毛片网站| 性色av免费观看| 日韩精品一区二区三区视频| 涩涩视频在线观看免费| 久久久精品免费| 在线天堂中文资源最新版| 亚洲已满18点击进入在线看片| 香蕉视频一区二区三区| 亚洲天堂第一区| 日韩和欧美一区二区| 91精品人妻一区二区三区蜜桃2| 久久久久久久久伊人| 久久精品99久久久久久| 欧美亚洲一区二区在线观看| 精品国产999久久久免费| 欧美一卡2卡3卡4卡| 国产精品羞羞答答在线| 亚洲精品videossex少妇| 久久精品视频观看| 性欧美在线看片a免费观看| 亚洲女同av| 国产免费一区二区| 999久久久免费精品国产| 一二三四中文字幕| 蜜桃av噜噜一区| 少妇一级淫免费观看| 亚洲男人的天堂网| www.久久视频| 精品国产一区二区三区av性色 | 综合国产在线视频| 最新超碰在线| 国产一区红桃视频| 久久99精品国产自在现线| 99re99热| 麻豆精品网站| 国产精品91av| 亚洲乱码国产乱码精品精可以看| 伦av综合一区| 日韩高清免费观看| 中文在线手机av| 国产精品久久久久久久久久免费 | jizz亚洲| 2021国产精品视频| 六月丁香久久丫| 400部精品国偷自产在线观看| 日本一不卡视频| 在线免费观看麻豆| 午夜精品福利一区二区三区蜜桃| 亚洲AV无码精品色毛片浪潮| 日韩在线视频网| 亚洲wwww| 免费试看一区| 一本色道88久久加勒比精品| xxxxwww一片| 最新日韩av在线| 91黄色在线视频| 久久伊人免费视频| 亚洲国产天堂| a级片一区二区| 久久精品久久精品| 日本高清www| 一本色道久久综合亚洲91| 亚洲av成人精品毛片| 欧美在线亚洲在线| 群体交乱之放荡娇妻一区二区| 免费看日本毛片| av电影天堂一区二区在线观看| 黄色在线观看免费| 精品国产91亚洲一区二区三区婷婷 | 日韩精品无码一区二区三区| 久久久久久自在自线| 黄色性生活一级片| 亚洲香肠在线观看| 青青草观看免费视频在线| 欧美诱惑福利视频| 精品国产一区探花在线观看| 少妇人妻互换不带套| 久久久精品国产免费观看同学| 欧美videossex极品| 亚洲欧洲成视频免费观看| www.国产精品| 自拍视频一区二区三区| 国产盗摄女厕一区二区三区| 久久久久免费看| 欧美成人官网二区| 在线观看的黄色| 日本黄网免费一区二区精品| 激情都市一区二区| 免费成年人视频在线观看| 日韩免费一区二区三区在线播放| 在线黄色网页| 国产一区二区免费电影| 亚洲欧美日本视频在线观看| 午夜成人亚洲理伦片在线观看| 91精品中文字幕一区二区三区| 免费在线小视频| 日韩精品不卡| 福利91精品一区二区三区| 天堂资源在线播放| 日韩精品在线免费观看| 999精品嫩草久久久久久99| 人妻互换免费中文字幕| 国产亚洲成年网址在线观看| 99精品视频免费看| 国产99在线|中文| 久久久久久免费视频| 真人bbbbbbbbb毛片| 欧美视频一区二区三区| 日本欧美电影在线观看| 亚洲美女搞黄| 成人中文字幕电影| 中文字幕在线观看免费|