成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 五種提高 SQL 性能的方法

五種提高 SQL 性能的方法

熱門標簽:怎么在高德地圖標注多個點 商家地圖標注圖片 百度地圖標注信息怎么修改 電話機器人接口是什么樣的 四川穩(wěn)定外呼系統(tǒng)公司 沈陽外呼系統(tǒng)有效果嗎 溫州語音外呼系統(tǒng)排名 AI智能云呼電話機器人怎么注冊 福州外呼系統(tǒng)招商
發(fā)布日期: 4/1/2004 | 更新日期: 4/1/2004

Johnny Papa

Data Points Archive

有時, 為了讓應(yīng)用程序運行得更快,所做的全部工作就是在這里或那里做一些很小調(diào)整。啊,但關(guān)鍵在于確定如何進行調(diào)整!遲早您會遇到這種情況:應(yīng)用程序中的 SQL 查詢不能按照您想要的方式進行響應(yīng)。它要么不返回數(shù)據(jù),要么耗費的時間長得出奇。如果它降低了報告或您的企業(yè)應(yīng)用程序的速度,用戶必須等待的時間過長,他們就會很不滿意。就像您的父母不想聽您解釋為什么在深更半夜才回來一樣,用戶也不會聽你解釋為什么查詢耗費這么長時間。(“對不起,媽媽,我使用了太多的 LEFT JOIN?!保┯脩粝M麘?yīng)用程序響應(yīng)迅速,他們的報告能夠在瞬間之內(nèi)返回分析數(shù)據(jù)。就我自己而言,如果在 Web 上沖浪時某個頁面要耗費十多秒才能加載(好吧,五秒更實際一些),我也會很不耐煩。

為了解決這些問題,重要的是找到問題的根源。那么,從哪里開始呢?根本原因通常在于數(shù)據(jù)庫設(shè)計和訪問它的查詢。在本月的專欄中,我將講述四項技術(shù),這些技術(shù)可用于提高基于 SQL Server? 的應(yīng)用程序的性能或改善其可伸縮性。我將仔細說明 LEFT JOIN、CROSS JOIN 的使用以及 IDENTITY 值的檢索。請記住,根本沒有神奇的解決方案。調(diào)整您的數(shù)據(jù)庫及其查詢需要占用時間、進行分析,還需要大量的測試。這些技術(shù)都已被證明行之有效,但對您的應(yīng)用程序而言,可能其中一些技術(shù)比另一些技術(shù)更適用。

*
本頁內(nèi)容

      從 INSERT 返回 IDENTITY
      從 INSERT 返回 IDENTITY

      內(nèi)嵌視圖與臨時表
      內(nèi)嵌視圖與臨時表

      避免 LEFT JOIN 和 NULL
      避免 LEFT JOIN 和 NULL

      靈活使用笛卡爾乘積
      靈活使用笛卡爾乘積

      拾遺補零
      拾遺補零

從 INSERT 返回 IDENTITY

我決定從遇到許多問題的內(nèi)容入手:如何在執(zhí)行 SQL INSERT 后檢索 IDENTITY 值。通常,問題不在于如何編寫檢索值的查詢,而在于在哪里以及何時進行檢索。在 SQL Server 中,下面的語句可用于檢索由最新在活動數(shù)據(jù)庫連接上運行的 SQL 語句所創(chuàng)建的 IDENTITY 值:

SELECT @@IDENTITY

這個 SQL 語句并不復(fù)雜,但需要記住的一點是:如果這個最新的 SQL 語句不是 INSERT,或者您針對非 INSERT SQL 的其他連接運行了此 SQL,則不會獲得期望的值。您必須運行下列代碼才能檢索緊跟在 INSERT SQL 之后且位于同一連接上的 IDENTITY,如下所示:

INSERT INTO Products (ProductName) VALUES ('Chalk')

SELECT @@IDENTITY

在一個連接上針對 Northwind 數(shù)據(jù)庫運行這些查詢將返回一個名稱為 Chalk 的新產(chǎn)品的 IDENTITY 值。所以,在使用 ADO 的 Visual Basic? 應(yīng)用程序中,可以運行以下語句:

Set oRs = oCn.Execute("SET NOCOUNT ON;INSERT INTO Products _
(ProductName) VALUES ('Chalk');SELECT @@IDENTITY")

lProductID = oRs(0)

此代碼告訴 SQL Server 不要返回查詢的行計數(shù),然后執(zhí)行 INSERT 語句,并返回剛剛為這個新行創(chuàng)建的 IDENTITY 值。SET NOCOUNT ON 語句表示返回的記錄集有一行和一列,其中包含了這個新的 IDENTITY 值。如果沒有此語句,則會首先返回一個空的記錄集(因為 INSERT 語句不返回任何數(shù)據(jù)),然后會返回第二個記錄集,第二個記錄集中包含 IDENTITY 值。這可能有些令人困惑,尤其是因為您從來就沒有希望過 INSERT 會返回記錄集。之所以會發(fā)生此情況,是因為 SQL Server 看到了這個行計數(shù)(即一行受到影響)并將其解釋為表示一個記錄集。因此,真正的數(shù)據(jù)被推回到了第二個記錄集。當然您可以使用 ADO 中的 NextRecordset 方法獲取此第二個記錄集,但如果總能夠首先返回該記錄集且只返回該記錄集,則會更方便,也更有效率。

此方法雖然有效,但需要在 SQL 語句中額外添加一些代碼。獲得相同結(jié)果的另一方法是在 INSERT 之前使用 SET NOCOUNT ON 語句,并將 SELECT @@IDENTITY 語句放在表中的 FOR INSERT 觸發(fā)器中,如下面的代碼片段所示。這樣,任何進入該表的 INSERT 語句都將自動返回 IDENTITY 值。

CREATE TRIGGER trProducts_Insert ON Products FOR INSERT AS 
  SELECT @@IDENTITY 
GO

觸發(fā)器只在 Products 表上發(fā)生 INSERT 時啟動,所以它總是會在成功 INSERT 之后返回一個 IDENTITY。使用此技術(shù),您可以始終以相同的方式在應(yīng)用程序中檢索 IDENTITY 值。

返回頁首返回頁首

內(nèi)嵌視圖與臨時表

某些時候,查詢需要將數(shù)據(jù)與其他一些可能只能通過執(zhí)行 GROUP BY 然后執(zhí)行標準查詢才能收集的數(shù)據(jù)進行聯(lián)接。例如,如果要查詢最新五個定單的有關(guān)信息,您首先需要知道是哪些定單。這可以使用返回定單 ID 的 SQL 查詢來檢索。此數(shù)據(jù)就會存儲在臨時表(這是一個常用技術(shù))中,然后與 Products 表進行聯(lián)接,以返回這些定單售出的產(chǎn)品數(shù)量:

CREATE TABLE #Temp1 (OrderID INT NOT NULL, _
           OrderDate DATETIME NOT NULL)

INSERT INTO #Temp1 (OrderID, OrderDate)
SELECT   TOP 5 o.OrderID, o.OrderDate
FROM Orders o ORDER BY o.OrderDate DESC

SELECT   p.ProductName, SUM(od.Quantity) AS ProductQuantity
FROM   #Temp1 t 
  INNER JOIN [Order Details] od ON t.OrderID = od.OrderID
  INNER JOIN Products p ON od.ProductID = p.ProductID 
GROUP BY p.ProductName
ORDER BY p.ProductName

DROP TABLE #Temp1

這些 SQL 語句會創(chuàng)建一個臨時表,將數(shù)據(jù)插入該表中,將其他數(shù)據(jù)與該表進行聯(lián)接,然后除去該臨時表。這會導(dǎo)致此查詢進行大量 I/O 操作,因此,可以重新編寫查詢,使用內(nèi)嵌視圖取代臨時表。內(nèi)嵌視圖只是一個可以聯(lián)接到 FROM 子句中的查詢。所以,您不用在 tempdb 中的臨時表上耗費大量 I/O 和磁盤訪問,而可以使用內(nèi)嵌視圖得到同樣的結(jié)果:

SELECT p.ProductName, 
  SUM(od.Quantity) AS ProductQuantity
FROM   (
  SELECT TOP 5 o.OrderID, o.OrderDate
  FROM   Orders o 
  ORDER BY o.OrderDate DESC
  ) t 
  INNER JOIN [Order Details] od ON t.OrderID = od.OrderID
  INNER JOIN Products p ON od.ProductID = p.ProductID 
GROUP BY
  p.ProductName
ORDER BY
  p.ProductName

此查詢不僅比前面的查詢效率更高,而且長度更短。臨時表會消耗大量資源。如果只需要將數(shù)據(jù)聯(lián)接到其他查詢,則可以試試使用內(nèi)嵌視圖,以節(jié)省資源。

返回頁首返回頁首

避免 LEFT JOIN 和 NULL

當然,有很多時候您需要執(zhí)行 LEFT JOIN 和使用 NULL 值。但是,它們并不適用于所有情況。改變 SQL 查詢的構(gòu)建方式可能會產(chǎn)生將一個花幾分鐘運行的報告縮短到只花幾秒鐘這樣的天壤之別的效果。有時,必須在查詢中調(diào)整數(shù)據(jù)的形態(tài),使之適應(yīng)應(yīng)用程序所要求的顯示方式。雖然 TABLE 數(shù)據(jù)類型會減少大量占用資源的情況,但在查詢中還有許多區(qū)域可以進行優(yōu)化。SQL 的一個有價值的常用功能是 LEFT JOIN。它可以用于檢索第一個表中的所有行、第二個表中所有匹配的行、以及第二個表中與第一個表不匹配的所有行。例如,如果希望返回每個客戶及其定單,使用 LEFT JOIN 則可以顯示有定單和沒有定單的客戶。

此工具可能會被過度使用。LEFT JOIN 消耗的資源非常之多,因為它們包含與 NULL(不存在)數(shù)據(jù)匹配的數(shù)據(jù)。在某些情況下,這是不可避免的,但是代價可能非常高。LEFT JOIN 比 INNER JOIN 消耗資源更多,所以如果您可以重新編寫查詢以使得該查詢不使用任何 LEFT JOIN,則會得到非常可觀的回報(請參閱圖 1 中的圖)。


1查詢

加快使用 LEFT JOIN 的查詢速度的一項技術(shù)涉及創(chuàng)建一個 TABLE 數(shù)據(jù)類型,插入第一個表(LEFT JOIN 左側(cè)的表)中的所有行,然后使用第二個表中的值更新 TABLE 數(shù)據(jù)類型。此技術(shù)是一個兩步的過程,但與標準的 LEFT JOIN 相比,可以節(jié)省大量時間。一個很好的規(guī)則是嘗試各種不同的技術(shù)并記錄每種技術(shù)所需的時間,直到獲得用于您的應(yīng)用程序的執(zhí)行性能最佳的查詢。

測試查詢的速度時,有必要多次運行此查詢,然后取一個平均值。因為查詢(或存儲過程)可能會存儲在 SQL Server 內(nèi)存中的過程緩存中,因此第一次嘗試耗費的時間好像稍長一些,而所有后續(xù)嘗試耗費的時間都較短。另外,運行您的查詢時,可能正在針對相同的表運行其他查詢。當其他查詢鎖定和解鎖這些表時,可能會導(dǎo)致您的查詢要排隊等待。例如,如果您進行查詢時某人正在更新此表中的數(shù)據(jù),則在更新提交時您的查詢可能需要耗費更長時間來執(zhí)行。

避免使用 LEFT JOIN 時速度降低的最簡單方法是盡可能多地圍繞它們設(shè)計數(shù)據(jù)庫。例如,假設(shè)某一產(chǎn)品可能具有類別也可能沒有類別。如果 Products 表存儲了其類別的 ID,而沒有用于某個特定產(chǎn)品的類別,則您可以在字段中存儲 NULL 值。然后您必須執(zhí)行 LEFT JOIN 來獲取所有產(chǎn)品及其類別。您可以創(chuàng)建一個值為“No Category”的類別,從而指定外鍵關(guān)系不允許 NULL 值。通過執(zhí)行上述操作,現(xiàn)在您就可以使用 INNER JOIN 檢索所有產(chǎn)品及其類別了。雖然這看起來好像是一個帶有多余數(shù)據(jù)的變通方法,但可能是一個很有價值的技術(shù),因為它可以消除 SQL 批處理語句中消耗資源較多的 LEFT JOIN。在數(shù)據(jù)庫中全部使用此概念可以為您節(jié)省大量的處理時間。請記住,對于您的用戶而言,即使幾秒鐘的時間也非常重要,因為當您有許多用戶正在訪問同一個聯(lián)機數(shù)據(jù)庫應(yīng)用程序時,這幾秒鐘實際上的意義會非常重大。

返回頁首返回頁首

靈活使用笛卡爾乘積

對于此技巧,我將進行非常詳細的介紹,并提倡在某些情況下使用笛卡爾乘積。出于某些原因,笛卡爾乘積 (CROSS JOIN) 遭到了很多譴責,開發(fā)人員通常會被警告根本就不要使用它們。在許多情況下,它們消耗的資源太多,從而無法高效使用。但是像 SQL 中的任何工具一樣,如果正確使用,它們也會很有價值。例如,如果您想運行一個返回每月數(shù)據(jù)(即使某一特定月份客戶沒有定單也要返回)的查詢,您就可以很方便地使用笛卡爾乘積。 圖 2 中的 SQL 就執(zhí)行了上述操作。

雖然這看起來好像沒什么神奇的,但是請考慮一下,如果您從客戶到定單(這些定單按月份進行分組并對銷售額進行小計)進行了標準的 INNER JOIN,則只會獲得客戶有定單的月份。因此,對于客戶未訂購任何產(chǎn)品的月份,您不會獲得 0 值。如果您想為每個客戶都繪制一個圖,以顯示每個月和該月銷售額,則可能希望此圖包括月銷售額為 0 的月份,以便直觀標識出這些月份。如果使用 圖 2 中的 SQL,數(shù)據(jù)則會跳過銷售額為 0 美元的月份,因為在定單表中對于零銷售額不會包含任何行(假設(shè)您只存儲發(fā)生的事件)。

圖 3 中的代碼雖然較長,但是可以達到獲取所有銷售數(shù)據(jù)(甚至包括沒有銷售額的月份)的目標。首先,它會提取去年所有月份的列表,然后將它們放入第一個 TABLE 數(shù)據(jù)類型表 (@tblMonths) 中。下一步,此代碼會獲取在該時間段內(nèi)有銷售額的所有客戶公司的名稱列表,然后將它們放入另一個 TABLE 數(shù)據(jù)類型表 (@tblCus-tomers) 中。這兩個表存儲了創(chuàng)建結(jié)果集所必需的所有基本數(shù)據(jù),但實際銷售數(shù)量除外。 第一個表中列出了所有月份(12 行),第二個表中列出了這個時間段內(nèi)有銷售額的所有客戶(對于我是 81 個)。并非每個客戶在過去 12 個月中的每個月都購買了產(chǎn)品,所以,執(zhí)行 INNER JOIN 或 LEFT JOIN 不會返回每個月的每個客戶。這些操作只會返回購買產(chǎn)品的客戶和月份。

笛卡爾乘積則可以返回所有月份的所有客戶。笛卡爾乘積基本上是將第一個表與第二個表相乘,生成一個行集合,其中包含第一個表中的行數(shù)與第二個表中的行數(shù)相乘的結(jié)果。因此,笛卡爾乘積會向表 @tblFinal 返回 972 行。最后的步驟是使用此日期范圍內(nèi)每個客戶的月銷售額總計更新 @tblFinal 表,以及選擇最終的行集。

如果由于笛卡爾乘積占用的資源可能會很多,而不需要真正的笛卡爾乘積,則可以謹慎地使用 CROSS JOIN。例如,如果對產(chǎn)品和類別執(zhí)行了 CROSS JOIN,然后使用 WHERE 子句、DISTINCT 或 GROUP BY 來篩選出大多數(shù)行,那么使用 INNER JOIN 會獲得同樣的結(jié)果,而且效率高得多。如果需要為所有的可能性都返回數(shù)據(jù)(例如在您希望使用每月銷售日期填充一個圖表時),則笛卡爾乘積可能會非常有幫助。但是,您不應(yīng)該將它們用于其他用途,因為在大多數(shù)方案中 INNER JOIN 的效率要高得多。

返回頁首返回頁首

拾遺補零

這里介紹其他一些可幫助提高 SQL 查詢效率的常用技術(shù)。假設(shè)您將按區(qū)域?qū)λ袖N售人員進行分組并將他們的銷售額進行小計,但是您只想要那些數(shù)據(jù)庫中標記為處于活動狀態(tài)的銷售人員。您可以按區(qū)域?qū)︿N售人員分組,并使用 HAVING 子句消除那些未處于活動狀態(tài)的銷售人員,也可以在 WHERE 子句中執(zhí)行此操作。在 WHERE 子句中執(zhí)行此操作會減少需要分組的行數(shù),所以比在 HAVING 子句中執(zhí)行此操作效率更高。HAVING 子句中基于行的條件的篩選會強制查詢對那些在 WHERE 子句中會被去除的數(shù)據(jù)進行分組。

另一個提高效率的技巧是使用 DISTINCT 關(guān)鍵字查找數(shù)據(jù)行的單獨報表,來代替使用 GROUP BY 子句。在這種情況下,使用 DISTINCT 關(guān)鍵字的 SQL 效率更高。請在需要計算聚合函數(shù)(SUM、COUNT、MAX 等)的情況下再使用 GROUP BY。另外,如果您的查詢總是自己返回一個唯一的行,則不要使用 DISTINCT 關(guān)鍵字。在這種情況下,DISTINCT 關(guān)鍵字只會增加系統(tǒng)開銷。

您已經(jīng)看到了,有大量技術(shù)都可用于優(yōu)化查詢和實現(xiàn)特定的業(yè)務(wù)規(guī)則,技巧就是進行一些嘗試,然后比較它們的性能。最重要的是要測試、測試、再測試。在此專欄的將來各期內(nèi)容中,我將繼續(xù)深入講述 SQL Server 概念,包括數(shù)據(jù)庫設(shè)計、好的索引實踐以及 SQL Server 安全范例。

如有向 Johnny 提出的問題和建議,請發(fā)送電子郵件到 mmdata@microsoft.com

Johnny Papa 是北卡羅來納州羅利市的 MJM 研究公司的信息技術(shù)副總裁,他著有?Professional ADO 25 RDS Programming with ASP 30?? (Wrox, 2000),并經(jīng)常在行業(yè)會議中做演講。要與他聯(lián)系,請發(fā)送電子郵件到 datapoints@lancelotweb.com

摘自 MSDN Magazine 2002 年 7 月 刊。可以在您當?shù)氐膱髷偵腺徺I此雜志

標簽:寶雞 無錫 邯鄲 來賓 七臺河 西寧 汕尾 營口

巨人網(wǎng)絡(luò)通訊聲明:本文標題《五種提高 SQL 性能的方法》,本文關(guān)鍵詞  五種,提高,SQL,性能,的,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《五種提高 SQL 性能的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于五種提高 SQL 性能的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成人在线直播| 国产999精品久久| 成人激情视频免费在线| 黄色三级中文字幕| 国产成人精品免费看在线播放| www.日本在线视频| 99国产一区二区三精品乱码| 青娱乐一区二区| 怡红院怡春院首页| 欧美美女视频在线观看| 国产成人1区| 91超碰碰碰碰久久久久久综合| 久本草在线中文字幕亚洲欧美| 国产视频911| 精品999在线| 亚洲柠檬福利资源导航| 青青草视频在线青草免费观看| 91蝌蚪porny| 亚洲超碰97人人做人人爱| 亚洲欧洲精品一区二区三区波多野1战4| 国产一级二级视频| japanese日本护士撒尿| 久久久久久久中文字幕| 国产日产欧美一区二区视频| 污黄网站在线观看| 国产成人在线免费看| 成人av资源网址| 国产精品福利在线播放| 日本h片久久| 国产小视频你懂的| 天天操天天操天天操天天| 91社区在线观看| 先锋影音中文字幕| 亚洲二区av| 日韩精品一区二区在线| 成人一区二区三| 国产福利小视频| 日韩欧美一区在线| 一本一道波多野结衣一区二区| 精灵使的剑舞无删减版在线观看| 亚洲激情综合网| 91成年人视频| 精品国产一二| 国产一区二区三区中文字幕| 成人欧美一区二区三区黑人免费| 欧美日韩国产综合一区二区| 久久久久亚洲av成人毛片韩| 国产精品亚洲成人| www.xxxx国产| 国产精品久久久久久无人区| 成人高清av| 日本免费网站| 奇米色777欧美一区二区| 欧美成人a视频| 欧美另类女人| 日韩网站免费观看高清| 一区二区不卡久久精品| 精品视频一区二区三区在线观看| 国产精品视频一区二区三区四| 婷婷开心久久网| 成人羞羞视频免费| 国产精品久久久毛片| 熟女视频一区二区三区| 成人网av.com/| youjizz国产精品| 欧美在线一区二区视频| 91国产精品成人| 日韩av成人高清| 成人国产免费电影| 在线观看欧美一区二区| 天天色天天爽| 制服丝袜成人动漫| 成人av男人的天堂| 亚洲精品乱码久久久久久日本蜜臀| 99re8这里只有精品| 在线看黄网址| 综合欧美一区二区三区| 日本精品一区二区三区在线播放| 精品国免费一区二区三区| 天堂社区日本电影超碰| 九九九伊在线综合永久| 日韩一区二区三区精品| 变态另类丨国产精品| 国产精品尤物视频| 国产免费成人在线视频| 中国女人内谢25xxxxx| 麻豆一区二区三区四区精品蜜桃| jizzjizzjizz美国| 国产精品综合在线| 亚洲 国产 日韩 综合一区| 日韩欧美久久久| 精品中文字幕一区二区三区| www.黄在线| 国产在线精品一区在线观看麻豆| 国产九九在线视频| 国产日韩中文在线| 四虎国产精品成人免费影视| 九九热视频这里只有精品| 精品91久久久久| 7777精品伊人久久久大香线蕉最新版| 久久电影一区| 欧美性猛交xxx高清大费中文| 1024手机看片国产| 国产精品白丝jk黑袜喷水| 欧美成人一区在线| 日本999视频| 亚洲网中文字幕| 国产视频手机在线观看| www.天堂在线观看| 高清视频一区二区三区| 区二区三区在线| 午夜激情成人网| 先锋成人影院| 免费永久视频| 999久久久| 99精品视频在线免费观看| 高清国语自产在线观看| 色爱区综合激月婷婷| 久久最新资源网| 成人伊人精品色xxxx视频| 日韩欧美在线不卡| 九色91播放| 一本大道久久a久久精品综合| 黄色毛片在线观看| 中午字幕在线观看| 日本一区二区在线观看视频| 宅男午夜视频| 波多野结衣av在线观看| 国产成人精品视频在线| www.日本高清| 这里都是精品| 亚洲免费激情视频| 亚洲精品中文字幕在线播放| 热re66久久精品国产99re| 欧美日韩色图| 91嫩草国产在线观看| 成人免费视频国产免费麻豆| www.天天操.com| 国产精品主播在线观看| 亚洲毛片在线观看.| 久久影视电视剧免费网站清宫辞电视| 91p九色成人| 欧美一级精品片在线看| 久久久久久伊人| 91丨九色丨国产| 懂色av粉嫩av蜜乳av| 成人羞羞国产免费图片| 亚洲成人av综合| 欧美老人xxxx18| 秋霞国产精品| 丰满的亚洲女人毛茸茸| 九九热线视频只有这里最精品| 亚洲第一网站| 欧美成人一区二区三区| 日本一级特级毛片视频| 国内精品国产三级国产在线专| 日日干天夜夜| 99视频在线免费播放| 亚洲福利视频二区| 亚洲欧美国产日韩综合| 欧美被狂躁喷白浆精品| 中文字幕在线观看第二页| 亚洲欧美在线x视频| 国产在线欧美在线| 久久人人爽人人人人片| 亚洲伊人成综合成人网| 日韩影院免费视频| 一本一本久久a久久综合精品蜜桃| 极品美女扒开粉嫩小泬| 毛片av中文字幕一区二区| 青草在线视频在线观看| 黄色一级大片在线免费看产| 欧美久久久久久久久久久| 国产一区二区三区在线| 少妇激情综合网| 精品日产免费二区日产免费二区| 日韩欧美一区二区不卡| 亚洲免费资源| 精品国产伦一区二区三区观看体验| 台湾佬中文娱乐久久久| 激情视频免费观看在线| 九九爱免费视频在线观看| 日本www在线视频| 伊人影院蕉久影院在线观看| 亚洲成年人视频| 先锋影音网一区| 人人香蕉久久| 国产日韩欧美中文字幕| 97精品国产97久久久久久久久久久久| 国产视频高清免费| 欧美日韩成人网| 成人免费自拍视频| 国产日韩综合av| 在线看福利影| 国产成人免费视频精品含羞草妖精| 国产情侣激情自拍| 精品一区二区男人吃奶| 亚洲第一精品在线观看| 免费国产a级片| 亚洲免费成人av电影| 中文字幕在线观看精品| 影院欧美亚洲| 久久免费精彩视频| 麻豆一区二区三区精品视频| 精品久久亚洲| 成人精品亚洲人成在线| 色偷偷av亚洲男人的天堂| 超薄肉色丝袜脚交一区二区| 亚洲香蕉久久| 四虎精品成人免费观看| а天堂中文最新一区二区三区| 欧美激情一区二区三级高清视频| 岛国精品一区二区| 久久久久久久影视| 天使萌一区二区三区免费观看| bl视频在线免费观看| 色哟哟亚洲精品| 久久黄色免费看| 免费看成年人视频在线观看| 国产91久久久| 午夜在线免费观看视频| 国产免费高清视频| 岛国精品资源网站| 337p亚洲精品色噜噜狠狠p| 日韩午夜精品视频| 国产成人av一区二区三区不卡| 精品日韩在线视频| 亚洲不卡视频| 亚洲成色777777在线观看影院| xvideos成人免费中文版| 18禁免费无码无遮挡不卡网站| 91色视频在线导航| 中文字幕乱码日本亚洲一区二区| 国产激情第一页| 老司机精品视频导航| 亚洲啪啪综合av一区二区三区| 日韩成人性视频| 欧美在线3区| av免费不卡国产观看| 日韩激情视频| 欧美午夜女人视频在线| 欧美午夜电影在线播放| 狠狠色丁香久久综合频道| 宅男深夜国产| 在线sese| 国产午夜精品在线观看| 99精品人妻无码专区在线视频区| 在线播放国产精品二区一二区四区| 亚洲国产精品成人一区二区在线| 日韩成人av网| 亚洲1区在线| 欧美高清性粉嫩交| 亚洲制服丝袜在线播放| 羞羞影视羞羞在线| 午夜欧美在线| 欧美人与禽猛交乱配| 亚洲国产精品一区二区久久hs| 亚洲3atv精品一区二区三区| 岛国视频一区免费观看| 日韩视频不卡中文| 国产精品18久久久久久久网站| 自拍视频第一页| 一区二区三区韩国| caoliu在线| 青青草在线观看视频| 中文亚洲视频在线| www.17c.com喷水少妇| 国内精品免费视频| 欧美自拍偷拍网| 欧美精品色网| 亚洲天堂网站| 国内精品久久久久影院 日本资源| 欧洲精品久久久久毛片完整版| 亚洲精品第一国产综合野| 91亚色免费| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 白白色在线发布| 午夜久久久久久噜噜噜噜| 亚洲国产精品无码久久久| 亚洲精品乱码久久久久久久久久久久| 亚洲国产日韩欧美在线99| 菠萝蜜视频在线观看一区| 天天操天天干天天舔| 漂亮人妻被中出中文字幕| 久久久久久日产精品| 亚洲成人人体| 九色在线播放| 欧美精品一区二区三区久久久竹菊| freexxxx性特大另类| 亚洲婷婷综合网| 久青草国产97香蕉在线视频| 亚洲男女性事视频| 日韩一级片免费在线观看| 免费a v网站| 色av成人天堂桃色av| 小嫩嫩精品导航| 国产成人精品综合久久久久99| 久久久亚洲精品一区二区三区| 亚洲av无码一区二区三区人| 99riav视频一区二区| www.国产亚洲| 精品视频在线播放一区二区三区| 亚洲男人天堂av| 在线成人www免费观看视频| 在线视频免费观看一区| 欧洲精品视频在线观看| 久久综合国产精品| 国产精品电影在线观看| 国产字幕在线观看| 亚洲精品国产成人av在线| 中文字幕乱码一区二区三区| 午夜视频网站在线观看| 久久久久国产免费| 成人啪啪18免费游戏链接| 亚洲免费观看高清| 免费亚洲婷婷| 国产电影精品久久禁18| 国内精品久久久久久久影视简单| 黑人中文字幕一区二区三区| 精品一区二区三区视频在线播放| 大黑人交xxx极品hd| 51国产偷自视频区视频| 国产高清视频色在线www| 日本中文字幕在线观看| 中文字幕中文字幕在线中心一区| 亚洲精品久久久一区二区三区| 国产精品视屏| 搞黄网站在线看|