在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁面

SQL Server 連接基礎(chǔ)知識

SQL Server 連接基礎(chǔ)知識

更新時間:2025-10-20 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)數(shù)據(jù)庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應(yīng)...
數(shù)據(jù)庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨立的數(shù)據(jù)集合。
引言
  該堆棧的頂部是 API 或?qū)ο髱鞂印?yīng)用程序通過對象庫公開的 API 函數(shù)或接口連接到 Microsoft® SQL Server。用于訪問 SQL Server 的 API 示例包括 ODBC 和 DB-Library。用于訪問 SQL Server 的對象庫示例包括 OLE DB、ADO 和 ADO.NET。由于 ADO 最終使用 OLE DB 與服務(wù)器通信,因此 Windows 應(yīng)用程序在與 SQL Server 通信時實際上只使用兩個常用的對象庫,即 OLE DB 和 ADO.NET。由于通過 ADO 或 ADO.NET 進(jìn)行連接通常比通過 ODBC 進(jìn)行連接更普遍(但 SQL Server 的查詢分析器和企業(yè)管理器仍通過 ODBC 進(jìn)行連接),因此本文將從 ADO/OLE DB 和 ADO.NET 的角度介紹 SQL Server 連接體系結(jié)構(gòu)的客戶端。如今,大多數(shù)應(yīng)用程序均通過對象庫(而非 ODBC 或類似 API)連接到 SQL Server。

ADO 和 OLE DB
  OLE DB 客戶端(也稱作使用者)通過客戶端提供程序與服務(wù)器以及其他后端程序進(jìn)行通信。此提供程序是一組 COM 組件(一個或多個),用于將應(yīng)用程序請求轉(zhuǎn)換為網(wǎng)絡(luò)進(jìn)程間通信 (IPC) 請求。在使用 SQL Server 的情況下,最常用的 OLE DB 提供程序是 SQLOLEDB,它是 Microsoft 為 SQL Server 提供的 OLE DB 提供程序。SQLOLEDB 隨附于 SQL Server 中,并作為 Microsoft 數(shù)據(jù)訪問組件 (MDAC) 庫的一部分安裝。

  為了使用 ADO 與 SQL Server 進(jìn)行通信,應(yīng)用程序首先使用 Connection 對象建立與服務(wù)器的連接。ADO 的 Connection 對象接受一個連接字符串,該字符串指定要使用的 OLE DB 提供程序以及傳遞給它的參數(shù)。如果應(yīng)用程序使用 SQLOLEDB 提供程序連接到 SQL Server,則該字符串中將顯示“SQLOLEDB”。

  ADO 應(yīng)用程序還可以通過 ODBC 連接到 SQL Server。為此,應(yīng)用程序?qū)⑹褂眠m用于 ODBC 的 OLE DB 提供程序,并指定在其連接字符串中引用目標(biāo) SQL Server 的 ODBC 數(shù)據(jù)源。這種情況下,應(yīng)用程序與 OLE DB 進(jìn)行通信,同時 ODBC 的 OLE DB 提供程序調(diào)用相應(yīng)的 ODBC API,以便與 SQL Server 進(jìn)行會話。

ADO.NET
  ADO.NET 應(yīng)用程序通常使用 .NET Framework Data Provider for SQL Server 連接到 SQL Server。該本機提供程序使 ADO.NET 對象能夠與 SQL Server 直接進(jìn)行通信。通常,應(yīng)用程序使用 SqlConnection 對象建立連接,然后使用 SqlCommand 對象向服務(wù)器發(fā)送命令,并接收服務(wù)器返回的結(jié)果。SqlDataAdapter 和 SqlDataReader 類通常與 SqlCommand 一起使用,以便通過托管的代碼應(yīng)用程序與 SQL Server 進(jìn)行交互。

  通過 OleDbConnection 類,ADO.NET 應(yīng)用程序還可以使用 SQLOLEDB OLE DB 提供程序與 SQL Server 進(jìn)行交互。此外,它們可以通過 OdbcConnection 類使用 ODBC 訪問 SQL Server。因此,僅通過托管代碼,您就有三種不同的方法從應(yīng)用程序訪問 SQL Server。從故障排除的角度而言,了解這些方法是非常有用的,因為它可以幫助您將遇到的與連接相關(guān)的問題歸結(jié)到特定的數(shù)據(jù)訪問層或庫。

客戶端 Net-Library
  該堆棧中的下一層是 Net-Library。Net-Library 在 API 或?qū)ο髱欤☉?yīng)用程序使用它與 SQL Server 進(jìn)行通信)與網(wǎng)絡(luò)協(xié)議(用于與網(wǎng)絡(luò)交換數(shù)據(jù))之間提供了一個通道。SQL Server 為所有主要的網(wǎng)絡(luò)協(xié)議提供了 Net-Library。這些庫以透明方式將客戶端發(fā)出的請求發(fā)送到 SQL Server,并將服務(wù)器發(fā)出的響應(yīng)返回給客戶端。可以使用 SQL Server 的客戶端網(wǎng)絡(luò)實用程序配置適用于特定客戶端的 Net-Library。支持的客戶端協(xié)議包括 TCP/IP、命名管道、NWLink、多協(xié)議 (RPC) 和其他一些協(xié)議。

  尤其值得一提的 Net-Library 是共享內(nèi)存 Net-Library。顧名思義,該 Net-Library 使用 Windows 的共享內(nèi)存功能在 SQL Server 客戶端與服務(wù)器之間進(jìn)行通信。顯然,這意味著客戶端與服務(wù)器必須位于同一臺物理計算機上。

  由于它能夠繞過物理網(wǎng)絡(luò)堆棧,因此共享內(nèi)存 Net-Library 要比其他 Net-Library 快得多。對共享內(nèi)存區(qū)域的訪問受到同步對象的保護(hù),因此客戶端與服務(wù)器之間的通信速度主要受限于 Windows 對內(nèi)核對象進(jìn)行調(diào)度的能力,以及進(jìn)程與共享內(nèi)存區(qū)域之間進(jìn)行數(shù)據(jù)復(fù)制的能力。

  可以在連接時將某個時間段或(本地)指定為您的計算機名,來指示使用共享內(nèi)存 Net-Library。也可以在連接時為計算機\實例名加上前綴 lpc:,來指示要使用共享內(nèi)存 Net-Library。

  注意,即使連接到同一臺計算機上的 SQL Server,共享內(nèi)存 Net-Library 也未必就是最佳的連接選項。在某些情況下,客戶端與服務(wù)器之間的直接連接可能限制它的擴展性。與應(yīng)用程序整體體系結(jié)構(gòu)中的其他元素一樣,應(yīng)始終對給定技術(shù)解決方案進(jìn)行全面的測試,然后才能判斷它是否有良好的擴展性以及是否比其他方法更快。

連接
  客戶端進(jìn)行連接時,SQL Server 的用戶模式計劃程序 (UMS) 組件將它指定給特定的計劃程序。啟動時,SQL Server 為系統(tǒng)上的每個 CPU 創(chuàng)建一個單獨的 UMS 計劃程序。當(dāng)客戶端連接到服務(wù)器時,這些客戶端將指定給具有最少連接數(shù)的計劃程序。連接后,客戶端將不會更換計劃程序 - 它將始終受到指定計劃程序的控制,直到連接斷開。

  這對與服務(wù)器建立多個連接的應(yīng)用程序很重要。如果應(yīng)用程序性能較差,或無法在它的多個連接上平均分配工作,則在該應(yīng)用程序的某些連接之間可能造成不必要的 CPU 資源爭用,而其他連接實際上卻處于空閑狀態(tài)。

  例如,應(yīng)用程序與雙處理器計算機上運行的 SQL Server 建立了四個連接,連接 1 和 3 隸屬于處理器 0,連接 2 和 4 隸屬于處理器 1。如果應(yīng)用程序的大部分工作通過連接 1 和 3 執(zhí)行,則這兩個連接將爭用 CPU 0,而 CPU 1 實際上可能仍處于空閑狀態(tài)。這種情況下,應(yīng)用程序只能斷開某些連接或重新連接某些連接,并希望連接 1 和 3 隸屬于不同的 CPU (連接時無法指定處理器隸屬關(guān)系),或在它的連接上重新分配工作負(fù)荷,以便每個連接的工作負(fù)荷更加均衡。當(dāng)然,后一種情況要遠(yuǎn)好于前一種情況。

[page_break]連接內(nèi)存
  SQL Server 為客戶端請求的每個連接保留三個數(shù)據(jù)包緩沖區(qū)。每個緩沖區(qū)的大小取決于 sp_configure 存儲過程指定的默認(rèn)網(wǎng)絡(luò)數(shù)據(jù)包大小。如果默認(rèn)網(wǎng)絡(luò)數(shù)據(jù)包大小小于 8 KB,則這些數(shù)據(jù)包的內(nèi)存將由 SQL Server 的緩沖池提供。否則,該內(nèi)存將由 SQL Server 的 MemToLeave 區(qū)域分配。

  值得一提的是,.NET Framework Data Provider for SQL Server 的默認(rèn)網(wǎng)絡(luò)數(shù)據(jù)包大小為 8KB,因此,與托管代碼客戶端連接關(guān)聯(lián)的緩沖區(qū)通常由 SQL Server 的 MemToLeave 區(qū)域提供。而典型的 ADO 應(yīng)用程序卻不同,它們的默認(rèn)數(shù)據(jù)包大小為 4 KB,因此緩沖區(qū)將由 SQL Server 緩沖池分配。

事件
  連接后的客戶端請求通常分為兩種廣泛類別:語言事件和遠(yuǎn)程過程調(diào)用。盡管還存在其他類別,但大多數(shù)由 SQL Server 客戶端發(fā)送到服務(wù)器的請求由以下兩種類型之一構(gòu)成:語言事件是從客戶端發(fā)送到服務(wù)器的 一組 T-SQL。例如,如果調(diào)用 ADO Command 對象(其 CommandText 屬性設(shè)置為 T-SQL 查詢,CommandType 屬性設(shè)置為 adCmdText)的 Execute 方法,則查詢將作為語言事件提交給服務(wù)器。同樣,如果將 CommandType 設(shè)置為 adCmdTable 并調(diào)用 Execute 方法,則 ADO 將生成一個內(nèi)部查詢(它將選擇 CommandText 屬性標(biāo)識的表中的所有列),并將它作為語言事件提交給服務(wù)器。另一方面,如果將 CommandType 設(shè)置為 adStoredProc,則調(diào)用 Execute 將使 ADO 向服務(wù)器提交一個遠(yuǎn)程過程調(diào)用請求,以執(zhí)行 CommandText 屬性中列出的存儲過程。

  為何要關(guān)心將請求作為語言事件還是作為 RPC 提交給服務(wù)器呢?通常,這是因為 RPC 的功能更為出色,特別是在重復(fù)調(diào)用具有不同篩選值的同一查詢時。盡管 SQL Server 可以自動將普通的語言事件請求參數(shù)化,但這種能力非常有限。它從不嘗試自動將某些類型的查詢參數(shù)化。這可能會導(dǎo)致基本相同的查詢產(chǎn)生不同的執(zhí)行,從而只因為這些不同的執(zhí)行提供不同的值,而導(dǎo)致在服務(wù)器上白白浪費計劃編譯的成本。這通常不是您所希望的結(jié)果 - 您希望針對查詢的第一次執(zhí)行編譯一個新的計劃,然后將該計劃重復(fù)用于具有不同參數(shù)的執(zhí)行。

  而 RPC 則通過顯式參數(shù)化查詢(而不是依賴服務(wù)器參數(shù)化查詢)來支持計劃重復(fù)使用。為過程的第一次執(zhí)行生成一個計劃后,隨后的執(zhí)行將自動重復(fù)使用該計劃,即使它們提供的參數(shù)值不同。與通過語言事件調(diào)用存儲過程相比,使用 RPC 調(diào)用存儲過程不僅節(jié)省了計劃編譯所需的執(zhí)行時間和 CPU 資源,還增強了 SQL Server 內(nèi)存資源的利用率,因為它避免了冗余執(zhí)行計朔訓(xùn)哪詿妗?

  在執(zhí)行動態(tài) T-SQL 時,通常首選 sp_executesql 而不是 EXEC() 也出于同樣的原因。Sp_executesql 的工作方式是:使用指定的查詢創(chuàng)建一個存儲過程,然后使用提供的參數(shù)調(diào)用它。與 EXEC() 不同,sp_executesql 提供了一個允許您參數(shù)化動態(tài) T-SQL 并支持計劃重復(fù)使用的機制。使用 sp_executesql 執(zhí)行的動態(tài)查詢比使用 EXEC() 的查詢能夠在更大程度上避免不必要的編譯和資源消耗。

TDS
  從客戶端發(fā)送到 SQL Server 的 RPC、語言事件和其他類型的請求被格式化為稱作表格數(shù)據(jù)流 (TDS) 的 SQL Server 特定數(shù)據(jù)格式。TDS 是 SQL Server 客戶端和服務(wù)器之間使用的“語言”。對于它的確切格式將不作介紹,但是,如果客戶端要與 SQL Server 進(jìn)行通信,就必須使用 TDS。

  目前,SQL Server 支持三種版本的 TDS:TDS 8.0(適用于 SQL 2000 客戶端)、TDS 7.0(適用于 SQL Server 7.0 客戶端)和 TDS 4.2(適用于 SQL Server 4.2、6.0 和 6.5 客戶端)。完全支持所有 SQL Server 2000 功能的版本只有 TDS 8.0。其他版本保持向后兼容。

服務(wù)器端 Net-Library
  在服務(wù)器端,客戶端請求最初由 SQL Server 為偵聽特定網(wǎng)絡(luò)協(xié)議而建立的偵聽器接收。這些偵聽器由服務(wù)器上的網(wǎng)絡(luò)庫以及服務(wù)器端的 Net-Library(在它們與服務(wù)器之間提供管道)構(gòu)成。您可以使用 SQL Server 網(wǎng)絡(luò)實用程序配置服務(wù)器偵聽的協(xié)議。SQL Server 與客戶端支持同樣范圍的網(wǎng)絡(luò)協(xié)議(處理群集的情況除外)。對于群集化的 SQL Server,只有 TCP/IP 和命名管道可用。

  SQL Server 為偵聽客戶端請求所使用的每個網(wǎng)絡(luò)協(xié)議設(shè)置一個線程,并使用 Windows 的 I/O 完成端口機制等待和有效處理請求。從網(wǎng)絡(luò)接收到 TDS 數(shù)據(jù)包時,Net-Library 偵聽器將其重新匯編為它們的原始客戶端請求,并將這些請求傳遞到 SQL Server 的命令處理層,即開放式數(shù)據(jù)服務(wù) (ODS)。

將結(jié)果返回到客戶端
  服務(wù)器在準(zhǔn)備將特定客戶端請求的結(jié)果返回時,將使用最初接收請求時所用的網(wǎng)絡(luò)堆棧。它通過服務(wù)器端 Net-Library 將結(jié)果發(fā)送到相應(yīng)的網(wǎng)絡(luò)協(xié)議,隨后這些結(jié)果將通過網(wǎng)絡(luò)以 TDS 格式返回到客戶端。

  在客戶端上,客戶端 Net-Library 將從服務(wù)器接收的 TDS 數(shù)據(jù)包從 IPC 層重新匯編,并將其繼續(xù)轉(zhuǎn)發(fā)到初始化該請求的 API 或?qū)ο髱臁?br>
小結(jié)
  盡管涉及了所有組件,但 SQL Server 客戶端與服務(wù)器之間的往返過程卻相當(dāng)快 - 特別是在使用內(nèi)存 Net-Library 時,亞秒響應(yīng)時間非常普遍。構(gòu)建和調(diào)整您自己的 SQL Server 客戶端應(yīng)用程序時,以下幾個與數(shù)據(jù)相關(guān)的問題值得注意:

  如果應(yīng)用程序與 SQL Server 運行在同一臺計算機上,則建議您使用共享內(nèi)存 Net-Library(如果尚未使用它)。基于共享內(nèi)存 Net-Library 的連接通常比其他類型的連接快很多。在注意上述內(nèi)容的同時,還應(yīng):始終全面測試解決方案并將它與其他可行方案進(jìn)行對比,這樣才能判斷它是否確實更好或更快。事實勝于雄辯。

  由于客戶端在第一次連接時將指定給特定的 UMS 計劃程序,并只有在斷開連接后,才會擺脫該計劃程序的控制,因此確保在應(yīng)用程序與服務(wù)器建立的連接上均衡分配工作負(fù)荷非常重要。工作負(fù)荷不均衡可導(dǎo)致不必要的 CPU 爭用并降低資源使用率。

  在服務(wù)器上配置的默認(rèn)網(wǎng)絡(luò)數(shù)據(jù)包大小以及客戶端在連接時指定的網(wǎng)絡(luò)數(shù)據(jù)包大小將直接影響它們在服務(wù)器上所需的內(nèi)存量和分配內(nèi)存的池。對服務(wù)器進(jìn)行擴展性和速度配置時,應(yīng)記住這一點。還應(yīng)記住,默認(rèn)情況下,ADO.NET 應(yīng)用程序的網(wǎng)絡(luò)數(shù)據(jù)包大小比 ADO 應(yīng)用程序的更大。

  通常,在向服務(wù)器發(fā)送請求時,應(yīng)首選 RPC 而非語言事件。為此,應(yīng)在使用的 ADO 或 ADO.NET 對象中設(shè)置相應(yīng)的屬性。

  執(zhí)行動態(tài) T-SQL 時,應(yīng)在可能的情況下使用 sp_executesql 代替 EXEC()。唯一例外的情況是,當(dāng)使用 EXEC() 的功能將查詢片斷連接而成的動態(tài)查詢字符串的大小超過單個本地變量的存儲大小時(這種情況非常少見)。

  當(dāng)遇到客戶端問題,并且懷疑它可能和連接服務(wù)器時所用的對象庫或 API 有關(guān)時,可以使用的一個故障排除技巧就是更改所用的客戶端機制,這樣可以將問題歸結(jié)為特定的組件。例如,假設(shè)您升級 MDAC 并開始在 SQL Server 錯誤日志中看到 17805 錯誤,這表明客戶端 ADO 應(yīng)用程序發(fā)送的 TDS 數(shù)據(jù)包的格式不正確。您可能嘗試讓應(yīng)用程序轉(zhuǎn)為使用 ODBC 的 OLE DB 提供程序,如果您可以較為容易地做到這一點,應(yīng)看看該問題是否與 SQLOLEDB 提供程序有一定的關(guān)系。相反,如果基于 ADO 的應(yīng)用程序一直通過 ODBC 進(jìn)行連接,則可以切換到 SQLOLEDB,看看這是否能解決問題,或至少幫助您縮小問題的范圍。

  同樣,在對連接問題進(jìn)行故障排除時,更改正在使用的 Net-Library 有時會有所幫助。如果使用 TCP/IP,命名管道也許值得一試。例如,如果 DHCP 服務(wù)器出現(xiàn)問題,并且沒有有效的 IP 地址,則您將無法使用 TCP/IP 連接到 SQL Server。通過切換到命名管道,可以快速地將問題歸結(jié)為 TCP/IP 特定的因素上。另一方面,如果在切換 Net Library 后仍存在同樣的問題,則可以排除 Net-Library 方面的問題。問題的原因可能是服務(wù)器已關(guān)閉,或在您與服務(wù)器之間的某處網(wǎng)絡(luò)基礎(chǔ)設(shè)施無法正常工作。最后,還可以容易地更改應(yīng)用程序使用的 Net-Library,而不必更改應(yīng)用程序本身,這樣就為您提供一個幫助縮小問題范圍的工具。盡管從長遠(yuǎn)角度而言,使用某一特定 Net-Library 并不可行,但讓客戶端臨時使用它可以幫助您縮小連接相關(guān)問題的范圍。


全新的路由器不僅讓你更穩(wěn)定快速地連接無線網(wǎng)絡(luò),更可以讓家中的智能設(shè)備連接在一起。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 激情内射人妻1区2区3区| 天堂av在线8| 国产资源第一页| 成年网站在线播放| 国产成人久久婷婷精品流白浆| 日本丰满大乳奶| 国产毛片久久久久久| 毛片毛片毛片毛| 日韩av.com| 男女视频在线看| 黄色三级视频片| 色18美女社区| 久久香蕉视频网站| 91黄色在线看| 北条麻妃在线视频观看| 无码人妻精品一区二区三区66| 国产情侣av自拍| 亚洲视频一二三四| 欧美少妇在线观看| 久久综合九色综合88i| 欧美丰满熟妇bbbbbb百度| 欧美污视频网站| 日韩av片免费观看| 男人插女人视频在线观看| 国产亚洲天堂网| 永久免费的av网站| 蜜桃网站在线观看| 日韩精品视频久久| 中文字幕在线综合| 免费高清一区二区三区| 欧美三级午夜理伦三级| 爱爱爱爱免费视频| 国产www免费| 欧美亚洲日本在线观看| 一级片免费在线观看视频| 国产又粗又猛又爽又黄的网站| 91猫先生在线| 国产福利精品一区二区三区| 国产免费裸体视频| 亚洲久久中文字幕| 日韩小视频在线播放| 日韩精品视频一区二区在线观看| 午夜免费精品视频| 日本中文字幕网址| 中文字幕第一页在线视频| 国产极品在线视频| 青青视频免费在线观看| 国产又黄又猛又粗又爽的视频| 国产一级大片免费看| 男人添女人下面免费视频| 毛片在线视频播放| 毛片在线视频观看| 91香蕉视频免费看| 亚洲精品自拍网| 国产免费999| 免费av观看网址| h无码动漫在线观看| 国产精品嫩草影院8vv8| 大肉大捧一进一出好爽动态图| 国产精品无码免费专区午夜| 91丨九色丨蝌蚪| 亚洲综合色在线观看| 人妻少妇被粗大爽9797pw| 亚洲人成无码网站久久99热国产| 艳母动漫在线免费观看| 亚洲黄色片免费| 色91精品久久久久久久久| 国产女女做受ⅹxx高潮| 99精品视频播放| 男人亚洲天堂网| 日韩av手机版| 亚洲精品性视频| aaa一级黄色片| 国产对白在线播放| 992tv成人免费观看| 国产一级片91| 久艹在线免费观看| 欧美 日韩 亚洲 一区| 国产中文字幕视频在线观看| av免费看网址| 男人操女人免费| av网址在线观看免费| 中文字幕第36页| 亚洲综合在线一区二区| 男人c女人视频| 日韩少妇内射免费播放18禁裸乳| 男女高潮又爽又黄又无遮挡| 黄色网页免费在线观看| 欧美日韩怡红院| 亚洲自拍偷拍一区二区三区| 91成人综合网| 亚洲第一中文av| 好色先生视频污| 日本丰满少妇xxxx| 国产精品人人爽人人爽| 国产又大又长又粗又黄| www国产精品内射老熟女| 午夜免费一区二区| 99精品一区二区三区的区别| 黄色免费视频大全| 成人黄色一级大片| 日韩av中文字幕第一页| 日本不卡一区在线| 日韩美女爱爱视频| 天美一区二区三区| 国产a级一级片| 青青草免费在线视频观看| 你真棒插曲来救救我在线观看| www欧美激情| 老太脱裤让老头玩ⅹxxxx| av污在线观看| 波多野结衣50连登视频| 经典三级在线视频| www.久久久久久久久久久| 国产色一区二区三区| 亚洲免费在线播放视频| 成人精品视频一区二区| 男人添女荫道口喷水视频| 日韩成人精品视频在线观看| 国产精品12345| 白白操在线视频| 国产高清免费在线| 欧美伦理片在线观看| 免费黄色日本网站| 国内精品视频一区二区三区| 中文字幕中文在线| 青青青国产在线视频| 一女被多男玩喷潮视频| 白白操在线视频| 国产肉体ⅹxxx137大胆| 日本老太婆做爰视频| 人人爽人人爽av| 天堂av2020| 久久国产激情视频| 婷婷丁香激情网| 中日韩av在线播放| 亚洲精品在线网址| 中文字幕第一页在线视频| 中文字幕在线综合| 992tv人人草| 日韩最新中文字幕| 免费人成自慰网站| 国内精品在线观看视频| 99精品人妻少妇一区二区| 国产xxxxx在线观看| 日日碰狠狠丁香久燥| 另类小说第一页| 91香蕉视频网址| av在线免费观看国产| 青青草视频在线免费播放| 国产美女三级视频| 国产又黄又猛的视频| 久久久久久久久久久久久国产| 国产va亚洲va在线va| 免费大片在线观看| 午夜啪啪小视频| 国产精品入口芒果| 国产wwwxx| 久久久国内精品| 北条麻妃视频在线| 51xx午夜影福利| 久久无码高潮喷水| 三级黄色片播放| 无码人妻精品一区二区三区在线| 亚洲老女人av| 精品少妇人妻av免费久久洗澡| 久久久久久久片| 加勒比海盗1在线观看免费国语版| 真人抽搐一进一出视频| 国产高清视频网站| 国产美女在线一区| 小说区视频区图片区| 免费在线观看毛片网站| 日本一级淫片演员| 无码人妻精品一区二区三区66| 艳母动漫在线观看| 午夜精品在线免费观看| 99热久久这里只有精品| 最新天堂中文在线| 日日摸日日碰夜夜爽av| 国产免费内射又粗又爽密桃视频| 无码内射中文字幕岛国片| www国产免费| 国产又爽又黄ai换脸| 免费看污污网站| 又粗又黑又大的吊av| 国产日产欧美一区二区| 国产又大又黄又粗又爽| 免费午夜视频在线观看| 精品视频免费在线播放| 日本黄xxxxxxxxx100| 中文字幕66页| 日本三级黄色网址| 三级a在线观看| 99免费视频观看| 麻豆av免费在线| 青青视频在线播放| 91猫先生在线| 国产91在线视频观看| 日韩精品xxxx|