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

Oracle 11g 新特性--自適應游標共享

數據庫 Oracle
任何SQL語句優化引擎的核心是判定獲得SQL語句目標數據的最廉價和最有效的訪問路徑的能力,使用綁定變量可以限制需要存儲在庫緩存中返回相似結果集的SQL語句游標的數量。本文介紹Oracle 11g中的新特性——自適應游標共享,并說明實際情況中該如何使用它,以及如何限制帶有綁定變量的SQL語句的硬解析,同時提高這些語句的執行效率。

正如我過去做老師時告訴學生的那樣,我有一個好方法可以避免數據庫性能降低,說來也很簡單,就是要求應用程序開發人員不要在數據庫運行任何SQL語句,但這的確引來不少人的笑聲和嘲笑,還是回到現實中來吧,討論一下建立有效SQL語句的途徑,我認為沒有什么標準可供借鑒,但構造不佳的SQL語句遲早會導致聯機事務處理(OLTP)系統、決策支持系統(DSS)或混合數據庫表現不佳。

“偷窺”綁定變量:這不是作弊

幸運的是,Oracle數據庫為我們提供了一些很好的工具,用以確定需要改善性能的SQL語句,并為提升它們的性能提供建議,這個方法的核心是當確實需要一個新的執行計劃時,我們可以修改基于成本的SQL優化器解析SQL語句的方式。當然,當一條語句***次執行時必須硬解析,這樣優化器可以確定獲取所需數據的***路徑,因為解析是一個相對費時的操作,因此,DBA通常會限制存儲在庫緩存中的唯一性游標的數量,特別是在聯機事務處理環境下,相同的語句可能會被執行成百上千次,它們為用戶會話返回相似的結果集。

設置有效的游標共享最簡單的方法就是按照應用程序工作量的需要為CURSOR_SHARING初始化參數設定合適的值,將這個參數的值設為SIMILAR告訴優化器當SQL語句完全相同,除了謂詞部分外,可以使用游標共享,執行計劃提供相等或更優的性能,同樣,將其值設為CURSOR_SHARING時,不論是否存在更好的執行計劃,告訴優化器強制共享游標,當SQL語句包含綁定變量時,有極好的機會提供這方面的性能優勢,但當優化器在不知道是什么值來填充產生的游標時,怎樣才能構建一個有效的執行計劃呢?

早在Oracle 9i就進行了一些嘗試,為了克服可能出現的非***的執行計劃,引入了綁定變量偷窺,顧名思義,當一個包含綁定變量的SQL語句***執行時,Oracle會快速查看這些綁定變量的一個真實值,以便構建一個***的執行計劃,這個方法的優點很明顯:不再是猜測***的執行計劃了,因為那樣產生的執行計劃可能并不是***的,基于成本的優化器使用真實的值來構建執行計劃。

但不幸的是,這個方法對于非OLTP系統的缺點也很明顯,例如,如果決策支持系統下次運行的查詢指定了一套綁定變量的值,那此時要想高效地執行查詢,需要一個完全不同的執行計劃嗎?實際上,這種數據倉庫環境并不罕見,對于決策支持系統,它可能非常希望有多個可用的執行計劃作為候選,因為一個綁定變量集可能返回的結果集只包含幾百行的數據,而另一套綁定變量可能返回幾百萬行數據,因此,Oracle建議保留CURSOR_SHARING作為該初始化參數的默認值,以強制產生一個新的更有效的執行計劃。

自適應游標共享:更靈活的綁定

Oracle 11g提供自適應游標共享(ACS)以克服不該共享時的游標共享,ACS使用了兩個新的度量機制:綁定敏感度和綁定感知。

綁定敏感度:無論何時,當包含綁定變量的SQL語句***執行時,優化器在偷窺了綁定變量的值后,會為其標記一個綁定敏感度,以確定語句的謂詞,但偷窺結束時也類似,因為它也為后面相同語句相同綁定變量不同值時進行對比,以確定是否要產生新的執行計劃。

為了說明這些綁定敏感度是如何工作的,我在Oracle 11g的SH示例方案中的SH.SALES表上構造了一個簡單的查詢,因為它是方案中***的表了,并且也按時間范圍進行分區,如列表1所示:

列表1:

-- 清空緩沖去緩存和共享池

  ALTER SYSTEM FLUSH SHARED_POOL;

  ALTER SYSTEM FLUSH BUFFER_CACHE;

--聲明綁定變量

  VARIABLE cust_start NUMBER;

  VARIABLE cust_end NUMBER;

  VARIABLE time_start DATE;

  VARIABLE time_end DATE;

  VARIABLE total_sold NUMBER;

  VARIABLE total_qty NUMBER;

-- 測試#1

  BEGIN

  :cust_start := 2;

  :cust_end := 38;

  :time_start := '01 JAN 1998';

  :time_end := '31 MAR 1998';

  SELECT

  SUM(amount_sold)

  ,SUM(quantity_sold)

  INTO

  :total_sold

  ,:total_qty

  FROM sh.sales

  WHERE cust_id BETWEEN :cust_start AND :cust_end

  AND time_id BETWEEN :time_start AND :time_end;

  END;

這個查詢使用了四個綁定變量來確定SH.SALES.TIME_ID和SH.SALES.CUST_ID的開始和結束范圍。

自適應游標共享元數據:Oracle 11g提供了三個新的視圖,并在v$sql視圖中添加了兩個新列以便讓Oracle DBA確定優化器是否已經決定SQL語句是否適合自適應游標共享,優化器使用業務規則將SQL語句的執行計劃進行分類以便共享:

1  自適應游標共享視圖

視圖

V$SQL

 

V$SQL_CS_HISTOGRAM

描述

添加了兩列:

IS_BIND_SENSITIVE:表示SQL語句是否綁定敏感,如果這一列的值為Y,以為著優化器已經偷窺了綁定變量的值,以便確定每個謂詞的選擇。

IS_BIND_AWARE:表示優化器執行額外的語句后決定SQL語句的游標是否有綁定感知。

Oracle 11g使用分配的頻率決定SQL語句是否綁定敏感,包括執行的次數,特別是子游標被執行的次數。

V$SQL_CS_SELECTIVITY

包括有關SQL語句謂詞的相對選擇性信息,包括謂詞自身及高值、低值范圍,這些值也被稱為游標的選擇性立方體。

V$SQL_CS_STATISTICS

列出自適應游標是否被共享以及如何共享的統計信息,如果綁定設置已經用于構造自適應游標,PEEKED列會顯示一個Y值。

#p#

在列表2中我在這些視圖上構造一些簡單的查詢及格式化輸出。

列表2 :

-- 目的:顯示優化器選擇哪個SQL語句進行自適應游標共享

  TTITLE 'SQL Statements With Bind Sensitivity Enabled|(from V$SQL)'

  COL sql_id FORMAT A16 HEADING 'SQL ID'

  COL hash_value FORMAT 99999999999 HEADING 'Hash|Value'

  COL plan_hash_value FORMAT 99999999999 HEADING 'Plan|Hash|Value'

  COL iba_flag FORMAT A06 HEADING 'Bind|Aware?'

  COL sql_text FORMAT A80 HEADING 'SQL Text'

  SELECT

  sql_id

  ,hash_value

  ,plan_hash_value

  ,is_bind_sensitive ibs_flag

  ,is_bind_aware iba_flag

  ,sql_text

  FROM v$sql

  WHERE ((is_bind_sensitive <> 'N') OR (is_bind_aware <> 'N'))

  ORDER BY hash_value

  ;

  TTITLE OFF

--目的:顯示當前自適應游標共享元數據的分布情況

  TTITLE 'Histograms for Adaptive Cursor Sharing|(from V$SQL_CS_HISTOGRAM)'

  COL hash_value FORMAT 99999999999 HEADING 'Hash|Value'

  COL sql_id FORMAT A16 HEADING 'SQL ID'

  COL child_number FORMAT 9999 HEADING 'Chld|#'

  COL bucket_id FORMAT 9999 HEADING 'Bckt|ID#'

  COL count FORMAT 999999 HEADING 'Exec-|ution|Count'

  SELECT

  hash_value

  ,sql_id

  ,child_number

  ,bucket_id

  ,count

  FROM v$sql_cs_histogram

  ;

  TTITLE OFF

-- 目的:顯示使用了自適應游標共享的游標執行統計情況

  TTITLE 'Selectivity Metrics for Adaptive Cursor Sharing|(from V$SQL_CS_STATISTICS)'

  COL hash_value FORMAT 99999999999 HEADING 'Hash|Value'

  COL sql_id FORMAT A16 HEADING 'SQL ID'

  COL child_number FORMAT 9999 HEADING 'Chld|#'

  COL bind_set_hash_value FORMAT 99999999999 HEADING 'Hash|Value'

  COL peeked FORMAT A05 HEADING 'Peek?'

  COL executions FORMAT 999999 HEADING '# of|Exec-|utions'

  COL rows_processed FORMAT 999999 HEADING '# of|Rows'

  COL buffer_gets FORMAT 999999 HEADING 'Buffer|Gets'

  COL cpu_time FORMAT 999999 HEADING 'CPU|Time'

  SELECT

  hash_value

  ,sql_id

  ,child_number

  ,bind_set_hash_value

  ,peeked

  ,executions

  ,rows_processed

  ,buffer_gets

  ,cpu_time

  FROM v$sql_cs_statistics

  ;

  TTITLE OFF

-- 目的:顯示自適應游標共享決定兩個不同綁定變量的游標是否要創建新的執行計劃的選擇性度量

  TTITLE 'Selectivity Metrics for Adaptive Cursor Sharing|(from V$SQL_CS_SELECTIVITY)'

  COL hash_value FORMAT 99999999999 HEADING 'Hash|Value'

  COL sql_id FORMAT A16 HEADING 'SQL ID'

  COL child_number FORMAT 9999 HEADING 'Chld|#'

  COL range_id FORMAT 9999 HEADING 'Rng|ID#'

  COL low FORMAT A12 HEADING 'Low Value'

  COL high FORMAT A12 HEADING 'High Value'

  COL predicate FORMAT A80 HEADING 'Predicates'

  SELECT

  hash_value

  ,sql_id

  ,child_number

  ,range_id

  ,low

  ,high

  ,predicate

  FROM v$sql_cs_selectivity

  ;

  TTITLE OFF

我將在本文剩下的部分中使用到它們以說明自適應游標共享是如何工作的,此外,在列表3中我顯示了在這個元數據上***次執行這個語句的影響。

列表3:

SQL Statements With Bind Sensitivity Enabled (from V$SQL)

  Plan Bind

  Hash Hash Sensi- Bind

  SQL ID Value Value tive? Aware? SQL Text

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

  87qtpurhk664g 3777173647 787661731 Y N SELECT SUM(AMOUNT_SOLD) ,SUM(QUANTITY_SOLD) FROM SH.SALES WHERE CUST_ID BETWEEN

  :B4 AND :B3 AND TIME_ID BETWEEN :B2 AND :B1

  page 1

  Histograms for Adaptive Cursor Sharing

  (from V$SQL_CS_HISTOGRAM)

  Exec-

  Hash Chld Bckt ution

  Value SQL ID # ID# Count

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

  3777173647 87qtpurhk664g 0 0 0

  3777173647 87qtpurhk664g 0 1 1

  3777173647 87qtpurhk664g 0 2 0

  Selectivity Metrics for Adaptive Cursor Sharing

  (from V$SQL_CS_STATISTICS)

  # of

  Hash Chld Hash Exec- # of Buffer CPU

  Value SQL ID # Value Peek? utions Rows Gets Time

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

  3777173647 87qtpurhk664g 0 4302390 Y 1 1098 3178 0

***次這個語句被硬解析后,它的游標自動被標記為綁定敏感,但還沒有綁定感知,查詢的綁定變量值在***次執行期間被放在自適應游標共享三個直方圖的中間位置。

綁定感知:一旦SQL語句的游標被標記為綁定敏感,優化器可能還會決定將其視為綁定感知,優化器是通過檢查提供給綁定變量的值是否與相同查詢后面的執行計劃匹配來實現的,如果優化器決定它可以使用現有的執行計劃,那就只需要更新游標執行直方圖以反應語句的執行情況,換句話說,如果綁定變量值發了重大變化,優化器可能會決定創建一個全新的子游標和執行計劃,如果是這樣的話,Oracle 11g也會存儲自適應游標共享元數據中的子游標的相對選擇性。

我覺得它有助于把這些選擇性評級作為“電子云”或影響范圍的中心點,Oracle文檔了使用的術語是“選擇性立方體”,在隨后游標的執行過程中,優化器會使用游標最近執行的統計信息與現有的選擇性統計信息進行比較,如果它觀察到大多數執行都使用系統的選擇性范圍,游標將會被標記為綁定感知。

我用同一個查詢的另外兩次執行來說明了這個概念,但使用了完全不同的綁定變量,如列表4所示:

列表4:

-- Execution #2

  -----

  BEGIN

  :cust_start := 42999;

  :cust_end := 50000;

  :time_start := '01 JAN 1997';

  :time_end := '31 MAR 1998';

  SELECT

  SUM(amount_sold)

  ,SUM(quantity_sold)

  INTO

  :total_sold

  ,:total_qty

  FROM sh.sales

  WHERE cust_id BETWEEN :cust_start AND :cust_end

  AND time_id BETWEEN :time_start AND :time_end;

  END;

  /

  -----

  -- Execution #3

  -----

  BEGIN

  :cust_start := 1000;

  :cust_end := 1400;

  :time_start := '01 JAN 1996';

  :time_end := '31 MAR 1997';

  SELECT

  SUM(amount_sold)

  ,SUM(quantity_sold)

  INTO

  :total_sold

  ,:total_qty

  FROM sh.sales

  WHERE cust_id BETWEEN :cust_start AND :cust_end

  AND time_id BETWEEN :time_start AND :time_end;

  END;

為查詢游標指定的自適應游標共享元數據產生的變化顯示在列表5中。

列表5:

SQL Statements With Bind Sensitivity Enabled

  (from V$SQL)

  Plan Bind

  Hash Hash Sensi- Bind

  SQL ID Value Value tive? Aware? SQL Text

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

  87qtpurhk664g 3777173647 2855975716 Y Y SELECT SUM(AMOUNT_SOLD) ,SUM(QUANTITY_SOLD) FROM SH.SALES WHERE CUST_ID BETWEEN

  :B4 AND :B3 AND TIME_ID BETWEEN :B2 AND :B1

  87qtpurhk664g 3777173647 787661731 Y N SELECT SUM(AMOUNT_SOLD) ,SUM(QUANTITY_SOLD) FROM SH.SALES WHERE CUST_ID BETWEEN

  :B4 AND :B3 AND TIME_ID BETWEEN :B2 AND :B1

  Histograms for Adaptive Cursor Sharing

  (from V$SQL_CS_HISTOGRAM)

  Exec-

  Hash Chld Bckt ution

  Value SQL ID # ID# Count

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

  3777173647 87qtpurhk664g 1 0 1

  3777173647 87qtpurhk664g 1 1 0

  3777173647 87qtpurhk664g 1 2 0

  3777173647 87qtpurhk664g 0 0 1

  3777173647 87qtpurhk664g 0 1 1

  3777173647 87qtpurhk664g 0 2 0

  Selectivity Metrics for Adaptive Cursor Sharing

  (from V$SQL_CS_STATISTICS)

  # of

  Hash Chld Hash Exec- # of Buffer CPU

  Value SQL ID # Value Peek? utions Rows Gets Time

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

  3777173647 87qtpurhk664g 1 1601990286 Y 1 1 2 0

  3777173647 87qtpurhk664g 0 4302390 Y 1 1098 3178 0

  Selectivity Metrics for Adaptive Cursor Sharing

  (from V$SQL_CS_SELECTIVITY)

  Hash Chld Rng

  Value SQL ID # ID# Low Value High Value Predicates

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

  3777173647 87qtpurhk664g 1 0 0.000616 0.000753 <=B1

  3777173647 87qtpurhk664g 1 0 0.900000 1.100000 >=B2

  3777173647 87qtpurhk664g 1 0 0.109520 0.133858 <=B3

  3777173647 87qtpurhk664g 1 0 0.821710 1.004312 >=B4

注意,Oracle 11g已經為hash值為2855975716的SQL語句創建了新的子游標,不將它們都標記為綁定敏感和綁定感知,元數據中為這些游標指定的選擇性度量值也更新了。

當綁定變量的值超出了現有綁定感知游標影響的范圍時,執行包含這個綁定變量的查詢會發生什么?在語句的硬解析期間,優化器可能只會選擇擴大選擇范圍,以包括新的綁定值,這是通過創建新的子游標結合這兩套綁定變量值,然后刪除舊的、范圍小的游標來實現的,顯然,這樣只會產生幾個的確需要的幾個子游標。

那么如何激活這一新功能呢?好消息是在Oracle 11g中默認就已經啟動了,它完全與CURSOR_SHARING初始化參數無關,這大大增加了在OLTP/DSS系統中SQL語句使用綁定變量的機會。

對SQL計劃管理(SPM)的影響:如果你讀過我之前寫的SQL計劃管理方面的文章,你可能會疑惑自適應游標共享是否會影響SQL計劃管理捕獲和保存SQL執行計劃到SQL管理基礎庫中的功能,下面列出它們之間交互的摘要信息:

如果初始化參數OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES被設置為TRUE以激活自動捕獲執行計劃,那么帶有綁定變量的SQL語句也會被標記為啟用和接收執行計劃。

如果同一個語句構建了第二個執行計劃 – 并不是自適應游標共享 – 那么該計劃只會簡單地添加到語句的計劃歷史中,但它不會立即被使用,因為SPM首先會要求校驗這個新的執行計劃。

不幸的是,這意味著一個很好的執行計劃會被忽略,解決這個問題的一個好辦法是將自動捕獲計劃設置為FALSE,然后在庫緩存中將所有子游標捕獲到SMB中,這樣將會強制所有子游標的計劃被標記為SQL計劃基線。

結束語

Oracle 11g的新特性自適應游標共享為包含有綁定變量的SQL語句有效共享執行計劃提供了一個更簡單的方法,但只有綁定變量有值時才有意義,自適應游標共享有時也會產生新的執行計劃,但共享的游標會保持相對小的數量。

【編輯推薦】

  1. Oracle 11g 新特性- RMAN
  2. 解析Oracle 11g閃回數據歸檔新功能
  3. Oracle 11g新特性之模式管理
責任編輯:楊鵬飛 來源: IT168
相關推薦

2012-05-07 13:45:45

Oraclen 11g虛擬列數據庫

2009-02-15 14:41:19

SQL Perform新特性Oracle

2010-04-16 09:50:26

Oracle 11g

2009-11-20 12:55:08

Oracle 11g功

2009-09-02 15:35:57

Oracle 11g

2009-04-15 09:49:20

2010-01-11 10:08:14

Oracle 11g

2009-03-05 11:02:12

NTP列式壓縮云計算

2010-01-19 10:17:41

Oracle 11g

2010-01-13 16:08:09

Oracle 11g 數據衛士

2009-09-15 09:52:25

Oracle 11g分

2010-04-30 13:35:28

Oracle 11g

2010-04-13 15:56:03

Oracle 11g

2011-04-15 09:11:21

2010-04-07 17:27:38

Oracle 11g

2009-03-12 10:28:32

數據庫Oracle11g自我調整

2010-04-01 15:19:56

Oracle 11g壓

2010-05-10 14:46:54

Oracle 11g

2009-07-08 00:24:00

數據壓縮Oracle 11g

2022-11-29 17:03:00

數據庫Oracle
點贊
收藏

51CTO技術棧公眾號

国产成人免费在线视频| 日韩欧美不卡| 欧美日韩中文字幕在线视频| 蜜桃av色综合| 中文字幕在线播出| 欧美99在线视频观看| 亚洲成色999久久网站| 日本免费黄视频| 日本韩国在线视频爽| 国产91色综合久久免费分享| 26uuu另类亚洲欧美日本一| 男人的天堂av网| 亚洲精品国产九九九| 大伊人狠狠躁夜夜躁av一区| 亚洲看片网站| 高清一区二区三区四区| 肉色丝袜一区二区| 欧美高清videos高潮hd| 在哪里可以看毛片| 粉嫩av一区二区| 欧美日韩在线播放三区四区| 黄色大片中文字幕| 激情成人四房播| 久久一区二区三区四区| 99在线热播| 一本大道伊人av久久综合| 亚洲一区欧美二区| 欧美激情视频一区二区| 青青青视频在线播放| 欧美日韩看看2015永久免费 | 欧美久久久网站| 精品成人久久av| 国产对白在线播放| 高清av在线| 久久久精品一品道一区| 国产亚洲情侣一区二区无| 97精品久久人人爽人人爽| 久热精品视频| 人妖精品videosex性欧美| 久久久久久欧美精品se一二三四| 欧美wwwww| 亚洲最新中文字幕| 插吧插吧综合网| 日韩母乳在线| 亚洲国产小视频| 中文写幕一区二区三区免费观成熟| 国产亚洲欧美日韩精品一区二区三区| 欧美日韩国产综合新一区| 隔壁人妻偷人bd中字| 成人短视频在线| 国产精品毛片高清在线完整版| 欧美日本韩国一区二区三区| 午夜视频免费看| 99久久er热在这里只有精品15| 国产 高清 精品 在线 a| 精品国产无码一区二区| 韩国成人精品a∨在线观看| 国产精品日韩在线| 中文字幕免费在线看| 日韩av网站免费在线| 国产精品av网站| 色老头在线视频| 日韩精品成人一区二区在线| 国产精品电影观看| 中文字幕乱码在线观看| 久久精品国产99| 成人中文字幕在线观看| 中文字幕一区二区人妻| 久久精品国产精品亚洲精品| 成人有码视频在线播放| 国产特级aaaaaa大片| 国产激情偷乱视频一区二区三区| 91久久久久久久| www.国产麻豆| www.视频一区| 免费一区二区三区| 超碰在线国产| 亚洲人成网站在线| 日韩a级在线观看| 九色porny自拍视频在线观看| 日韩欧美第一页| 在线观看av网页| 精品亚洲二区| 日韩国产精品亚洲а∨天堂免| 久久久久久久无码| av一区二区高清| 欧美xxxx做受欧美| 波多野结衣视频网站| 六月婷婷色综合| 国产精品嫩草在线观看| 免费资源在线观看| 亚洲日本成人在线观看| 国产人妻777人伦精品hd| 天天免费亚洲黑人免费| 欧美色图第一页| 色婷婷狠狠18禁久久| 亚洲婷婷伊人| 精品亚洲aⅴ在线观看| 日本免费www| 狠狠色丁香久久综合频道| 日本老师69xxx| 精品人妻一区二区三区麻豆91 | 免费视频91蜜桃| 欧美91大片| 国产精欧美一区二区三区| 性生活黄色大片| 中文在线资源观看网站视频免费不卡| 日本中文字幕一级片| 深夜成人影院| 亚洲国产免费av| 日韩在线不卡av| 美女诱惑黄网站一区| 2019国产精品视频| h网站视频在线观看| 午夜精品福利久久久| 涩涩网站在线看| 蜜乳av综合| 韩国美女主播一区| 国产免费av观看| 久久久不卡网国产精品二区| 国产一区二区四区| www.久久久.com| 一区二区三区四区视频| 久久夜色精品亚洲| 国产不卡在线视频| 一区二区av| 日韩高清成人| 日韩精品视频在线免费观看| 免费无遮挡无码永久在线观看视频| 日韩av一区二区三区四区| 美乳视频一区二区| caoporn-草棚在线视频最| 欧美一级黄色片| 日本不卡一二区| 日本午夜一区二区| 欧美一区国产一区| av电影一区| 日韩av综合网| 亚洲精品www久久久久久| 国产sm精品调教视频网站| av不卡在线免费观看| 热久久久久久| 综合av色偷偷网| 中文在线免费观看| 国产婷婷一区二区| 日本男人操女人| 激情婷婷综合| 国产精品久久久久国产a级| 黄色大片在线看| 色琪琪一区二区三区亚洲区| 91精品人妻一区二区三区蜜桃欧美| 91久久在线| 精品国产综合| 手机在线观看av网站| 亚洲国产精品999| 中文字幕在线字幕中文| 91免费视频网| 三级a在线观看| 97色伦图片97综合影院| 成人信息集中地欧美| а√天堂在线官网| 欧美白人最猛性xxxxx69交| 久久久久久久蜜桃| 不卡在线视频中文字幕| 超碰97人人射妻| 欧美一级淫片| 亚洲www在线| 污视频网站免费在线观看| 亚洲а∨天堂久久精品喷水| 日本免费观看视| 欧美激情在线一区二区| 中文字幕有码av| 一区二区中文字| 国产一区免费视频| 唐人社导航福利精品| 日韩在线www| 黑人精品一区二区| 一本到三区不卡视频| 一二三四国产精品| 国产一区二区成人久久免费影院| 91传媒免费视频| 日韩高清影视在线观看| 国产精品色悠悠| 午夜激情在线| 亚洲天堂影视av| 国产精品久久久久久免费免熟 | 穿情趣内衣被c到高潮视频| 136导航精品福利| 日本一区二区三区在线播放| 麻豆tv入口在线看| 亚洲激情视频在线| 97人妻精品一区二区三区软件| 亚洲女与黑人做爰| 亚洲精品乱码久久久久久久| 麻豆精品久久久| 少妇高潮喷水在线观看| 日韩精品影视| 国内不卡一区二区三区| 日本在线一区二区| 81精品国产乱码久久久久久| 国产三区在线观看| 亚洲天堂男人天堂女人天堂| 精品国产一级片| 欧美亚洲综合另类| 国产午夜小视频| 国产精品久久久久久久久快鸭| xfplay5566色资源网站| 久久99在线观看| 精品国产一二三四区| 2023国产精品久久久精品双| 欧美一区二区在线| 加勒比中文字幕精品| 成人性教育视频在线观看| 成人免费直播| 高清一区二区三区四区五区 | 欧美精品久久久久久久免费观看| 国产黄色片在线播放| 亚洲大胆人体av| 99草在线视频| 欧美日韩亚洲综合| 国产精品suv一区| 亚洲一区二区三区四区不卡| av资源在线免费观看| 久久免费偷拍视频| 精品熟女一区二区三区| 国产精品亚洲午夜一区二区三区 | 久久麻豆视频| 欧美在线观看网址综合| 99爱在线观看| 久久久久女教师免费一区| 久草资源在线| 国产亚洲欧美日韩精品| 青青草娱乐在线| 日韩风俗一区 二区| 丰满人妻一区二区三区免费视频| 91精品国产麻豆国产自产在线| 国产三级理论片| 色狠狠桃花综合| 51国产偷自视频区视频| 黄色精品在线看| 日韩欧美三级在线观看| 一级特黄大欧美久久久| 在线观看亚洲网站| 18欧美亚洲精品| 自拍偷拍第9页| 国产精品乱人伦| 女同久久另类69精品国产| 国产欧美精品一区二区三区四区 | 亚洲黄色尤物视频| 欧美亚洲日本在线| 一区二区三区在线免费视频| 欧美日韩免费做爰视频| 一区二区三区不卡在线观看| 久久久久国产精品夜夜夜夜夜| 亚洲另类色综合网站| 欧美黄色免费看| 亚洲香肠在线观看| 国产精品老女人| 一本一本久久a久久精品综合麻豆| 国产精品美女久久久久av爽| 日韩欧美国产黄色| 中文字幕制服诱惑| 91精品国产综合久久精品app| 国产精品一级视频| 精品国产凹凸成av人网站| 视频一区二区三区在线看免费看| 日韩av网站在线| 国产黄在线播放| www.亚洲一区| 日韩123区| 欧美中文字幕精品| 四虎精品在线观看| 超碰97人人人人人蜜桃| 国产一区福利| 日韩电影免费观看高清完整| 久久人人99| 美女扒开大腿让男人桶| 亚洲专区免费| 最新天堂中文在线| 国产激情一区二区三区四区| 亚洲av成人片色在线观看高潮| 日本一区二区综合亚洲| 在线观看美女av| 黑人与娇小精品av专区| 91国偷自产中文字幕久久| 欧美大片一区二区| 噜噜噜在线观看播放视频| 久久精品成人欧美大片| 高潮在线视频| 国产精品亚洲网站| 激情av综合| 杨幂一区欧美专区| 亚洲伦伦在线| 国产乱码一区二区三区四区| 成人不卡免费av| 中文国语毛片高清视频| 精品久久久久久久久久久| 一本色道久久综合熟妇| 亚洲白拍色综合图区| 日本视频不卡| 日本成人免费在线| 在线观看视频一区二区三区| 四虎一区二区| 99精品视频免费全部在线| 三级性生活视频| 久久精品水蜜桃av综合天堂| 一级黄色录像视频| 91福利在线看| 亚洲高清视频在线播放| 少妇激情综合网| caoporn视频在线| 91久久精品美女高潮| 欧美性感美女一区二区| www..com日韩| 国产精品99久久久久久似苏梦涵| 久久亚洲无码视频| 五月天一区二区三区| 精品久久久无码中文字幕| 最近中文字幕2019免费| 另类专区亚洲| 国产一区在线观| 伊人情人综合网| 中文字幕永久有效| 国产日韩在线不卡| 在线观看免费av片| 日韩成人免费视频| av男人的天堂在线观看| 国产日韩欧美夫妻视频在线观看| 久久99精品久久久久久园产越南| 少妇高潮喷水在线观看| 成人激情动漫在线观看| 免费无遮挡无码永久在线观看视频| 欧美美女一区二区在线观看| www日韩tube| 国产精品7m视频| 国产精品一线天粉嫩av| 人妻无码视频一区二区三区| xnxx国产精品| 在线免费黄色av| 日韩毛片中文字幕| 综合日韩av| 久久另类ts人妖一区二区| 国产欧美一区二区三区国产幕精品| 欧美日韩一区二区区| 一区二区三区高清不卡| 亚洲精品国产精品国| 欧美丰满少妇xxxxx| 久久天堂久久| 在线视频一二三区| 国产激情一区二区三区四区 | 国产黄色在线播放| 国产噜噜噜噜久久久久久久久| 欧美特黄一级大片| 婷婷免费在线观看| 亚洲视频在线观看一区| av免费观看在线| 久久久久久国产三级电影| 精品久久对白| 日韩av资源在线| 欧美国产一区二区| 一级黄色大片网站| 免费不卡欧美自拍视频| 国产精品videossex| 欧美黄网站在线观看| 国产精品免费人成网站| 国产精品久久久久久免费| 欧美韩日一区二区| 欧亚精品一区| 亚州精品一二三区| 亚洲免费视频中文字幕| 狠狠躁日日躁夜夜躁av| 欧美最顶级丰满的aⅴ艳星| 精品欧美久久| 国内av一区二区| 亚洲成av人片| 第一视频专区在线| 91pron在线| 国产精品一级| 国产极品美女在线| 亚洲精品乱码久久久久久金桔影视| 久久毛片亚洲| 992tv成人免费观看| 成人黄色一级视频| 国产一级片一区二区| 色综合久综合久久综合久鬼88| 国产伦精品一区二区三区在线播放| 欧美色图色综合| ...av二区三区久久精品| 少妇人妻精品一区二区三区| 国产精品大片wwwwww| 中文字幕av亚洲精品一部二部| 国产免费一区二区三区最新6| 在线看不卡av| 久草在线新免费首页资源站| 欧美一二三四五区| 国产乱理伦片在线观看夜一区| 成人免费a视频| 欧美大胆a视频| 精品大片一区二区| 日本少妇xxxx|