日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

SQL Server數(shù)據(jù)插入性能優(yōu)化:從單條到海量的七種方法對比

SQL Server數(shù)據(jù)插入性能優(yōu)化:從單條到海量的七種方法對比 1. 項目概述為什么我們要關(guān)心SQL Server的插入效率在數(shù)據(jù)庫日常開發(fā)和運維中數(shù)據(jù)插入INSERT是最基礎(chǔ)、最高頻的操作之一。無論是業(yè)務(wù)系統(tǒng)記錄用戶行為、日志系統(tǒng)收集跟蹤信息還是數(shù)據(jù)倉庫進(jìn)行ETL過程中的數(shù)據(jù)裝載都離不開它。很多開發(fā)者尤其是剛接觸SQL Server的朋友可能會覺得插入數(shù)據(jù)嘛不就是一句INSERT INTO ... VALUES ...的事能有什么花樣我以前也這么想直到在一次處理千萬級數(shù)據(jù)遷移的項目中一個簡單的插入操作讓整個流程從預(yù)計的2小時變成了通宵達(dá)旦的12小時我才真正意識到不同的插入方式在效率上存在著天壤之別。這次效率危機(jī)促使我系統(tǒng)地研究和測試了SQL Server中各種數(shù)據(jù)插入方法。我發(fā)現(xiàn)網(wǎng)上雖然有很多零散的資料但要么只講語法要么對比不全面缺乏一個從原理到實操、從單條到海量數(shù)據(jù)的完整效率圖譜。因此我決定結(jié)合自己多年的踩坑經(jīng)驗整理出這篇可能是目前最全面的SQL Server插入方式效率對比分析。我們將不僅僅看“誰快誰慢”更要深入理解“為什么快為什么慢”以及在不同場景下“該如何選擇”。無論你是正在優(yōu)化一個慢速接口的開發(fā)者還是需要設(shè)計高效數(shù)據(jù)歸檔方案的DBA這篇文章中的實測數(shù)據(jù)和經(jīng)驗總結(jié)都能給你提供直接的參考。2. 測試環(huán)境搭建與基準(zhǔn)數(shù)據(jù)準(zhǔn)備在開始效率對比之前一個可控、可復(fù)現(xiàn)的測試環(huán)境是得出可靠結(jié)論的前提。盲目地比較不同語法而沒有統(tǒng)一的基準(zhǔn)結(jié)果是沒有意義的。2.1 測試環(huán)境配置說明我所有的測試均在一臺標(biāo)準(zhǔn)的開發(fā)服務(wù)器上進(jìn)行其配置盡可能模擬了常見的生產(chǎn)環(huán)境但又剔除了不必要的干擾因素。數(shù)據(jù)庫版本SQL Server 2019 Developer Edition (RTM) - 15.0.2000.5。選擇2019是因為它在性能優(yōu)化特別是智能查詢處理和內(nèi)存中OLTP方面具有代表性且用戶基數(shù)大。服務(wù)器硬件CPU為Intel Xeon E-2286G 4.0GHz6核12線程內(nèi)存64GB DDR4。確保測試期間沒有其他高負(fù)載任務(wù)爭搶資源。存儲數(shù)據(jù)文件和日志文件分別存放在兩塊不同的NVMe SSD上以避免I/O成為瓶頸讓我們能更純粹地觀察不同插入語句本身的執(zhí)行開銷。數(shù)據(jù)庫設(shè)置我創(chuàng)建了一個名為PerfTest的數(shù)據(jù)庫恢復(fù)模式設(shè)置為SIMPLE以減少日志記錄對插入速度的影響這對于理解批量操作至關(guān)重要。同時將數(shù)據(jù)文件的初始大小設(shè)置為1GB自動增長為256MB避免在測試中頻繁進(jìn)行文件增長操作。2.2 測試表結(jié)構(gòu)與數(shù)據(jù)設(shè)計為了全面測試我設(shè)計了兩張核心表一張用于測試基礎(chǔ)插入另一張用于測試帶有索引和約束的場景因為這是影響插入效率的關(guān)鍵因素。-- 表1基礎(chǔ)測試表無索引模擬最“干凈”的插入環(huán)境 CREATE TABLE dbo.InsertTest_Basic ( ID INT IDENTITY(1,1) PRIMARY KEY, -- 自增主鍵會產(chǎn)生聚集索引 GuidCol UNIQUEIDENTIFIER DEFAULT NEWID(), StringCol VARCHAR(255) DEFAULT TestString, NumberCol INT DEFAULT 42, DateCol DATETIME DEFAULT GETDATE() ); -- 表2壓力測試表包含非聚集索引和默認(rèn)約束模擬典型業(yè)務(wù)表 CREATE TABLE dbo.InsertTest_WithIndex ( OrderID INT IDENTITY(1,1) PRIMARY KEY, CustomerID INT NOT NULL, ProductID INT NOT NULL, Quantity INT NOT NULL DEFAULT 1, UnitPrice DECIMAL(10, 2) NOT NULL, OrderDate DATETIME NOT NULL DEFAULT GETDATE(), Comments NVARCHAR(500) NULL ); -- 在CustomerID和OrderDate上創(chuàng)建非聚集索引這是非常常見的查詢優(yōu)化手段 CREATE INDEX IX_CustomerID_OrderDate ON dbo.InsertTest_WithIndex(CustomerID, OrderDate); -- 添加一個檢查約束 ALTER TABLE dbo.InsertTest_WithIndex ADD CONSTRAINT CHK_Quantity CHECK (Quantity 0);數(shù)據(jù)準(zhǔn)備策略我使用一個簡單的循環(huán)腳本生成了100萬行模擬數(shù)據(jù)并保存到一張臨時表中作為所有插入測試的同一份數(shù)據(jù)源。這保證了每次測試插入的數(shù)據(jù)內(nèi)容、順序和總量完全一致對比結(jié)果公平。注意在每次測試單個插入方式前我都會使用TRUNCATE TABLE來清空目標(biāo)表。TRUNCATE比DELETE更快且使用更少的日志但更重要的是它能將表的自增ID重置確保每次測試的起點相同。然后我會執(zhí)行CHECKPOINT和DBCC DROPCLEANBUFFERS命令在非生產(chǎn)環(huán)境清除數(shù)據(jù)緩存這樣每次測試都相當(dāng)于從“冷”狀態(tài)開始更能反映操作本身的磁盤I/O和計算開銷。3. 七種插入方式詳解與效率實測下面進(jìn)入核心環(huán)節(jié)。我將逐一拆解七種常見的插入方式從最基本的單條插入開始到用于海量數(shù)據(jù)遷移的專用工具結(jié)束。每種方式我都會給出典型語法、解釋其工作原理、展示實測性能數(shù)據(jù)基于上述100萬行數(shù)據(jù)并分析其效率背后的原因。3.1 方式一標(biāo)準(zhǔn)單條INSERT (INSERT ... VALUES)這是教科書里最先教的方式也是最直觀的。INSERT INTO dbo.InsertTest_Basic (GuidCol, StringCol, NumberCol, DateCol) VALUES (NEWID(), Sample, 100, GETDATE());工作原理SQL Server為這一行數(shù)據(jù)生成完整的日志記錄用于事務(wù)回滾和恢復(fù)在表中找到空閑空間或在末尾寫入數(shù)據(jù)頁如果表有聚集索引如自增ID主鍵還需要維護(hù)索引B-Tree結(jié)構(gòu)。每執(zhí)行一次都需要完成一次完整的事務(wù)流程。實測效率插入100萬行數(shù)據(jù)采用循環(huán)方式逐條執(zhí)行耗時約25分鐘。平均每秒約667條。效率分析高開銷每次插入都是一個獨立的事務(wù)意味著需要多次日志寫入、鎖獲取與釋放。這是最大的性能殺手。網(wǎng)絡(luò)往返如果在應(yīng)用程序中循環(huán)調(diào)用每次插入都是一次數(shù)據(jù)庫往返網(wǎng)絡(luò)延遲會被放大百萬倍。適用場景僅適用于極低頻的單條數(shù)據(jù)插入如用戶提交一份表單、修改單條配置。絕對禁止在循環(huán)或批量邏輯中使用此方式。3.2 方式二批量值列表插入 (INSERT ... VALUES (), (), ...)這是對單條插入的一種有效優(yōu)化允許在一條語句中插入多行。INSERT INTO dbo.InsertTest_Basic (GuidCol, StringCol, NumberCol, DateCol) VALUES (NEWID(), Batch1, 1, GETDATE()), (NEWID(), Batch2, 2, GETDATE()), -- ... 最多可以包含1000行左右受限于語句長度和參數(shù)限制 (NEWID(), BatchN, 1000, GETDATE());工作原理將多行數(shù)據(jù)打包進(jìn)一個INSERT語句。SQL Server將其作為一個事務(wù)來處理減少了事務(wù)提交次數(shù)。日志記錄雖然仍包含所有行的數(shù)據(jù)但事務(wù)管理開銷被均攤了。實測效率以每批1000行進(jìn)行插入100萬行總耗時約3分40秒。性能相比單條插入提升了近7倍。效率分析減少事務(wù)開銷這是性能提升的主要原因。仍有優(yōu)化空間雖然事務(wù)次數(shù)少了但每一行的日志記錄依然是完整的并且對于有索引的表每一行的索引維護(hù)操作仍然是離散的。批大小選擇批大小并非越大越好。過大的批處理會生成巨大的日志記錄可能阻塞日志文件甚至導(dǎo)致事務(wù)日志爆滿。通常1000到5000行是一個經(jīng)驗上的甜點區(qū)間。適用場景中小批量數(shù)據(jù)插入如從前端提交一個訂單及其明細(xì)項幾十到幾百條、批量導(dǎo)入配置數(shù)據(jù)。這是應(yīng)用程序中最常用、最實用的批量插入方式。3.3 方式三INSERT ... SELECT 查詢結(jié)果插入這種方式用于將另一個查詢的結(jié)果集插入到目標(biāo)表中。-- 假設(shè)SourceTable有100萬行數(shù)據(jù) INSERT INTO dbo.InsertTest_Basic (GuidCol, StringCol, NumberCol, DateCol) SELECT NEWID(), FromSelect, Number, GETDATE() FROM dbo.SourceTable; -- 或者從VALUES構(gòu)造的虛擬表插入 INSERT INTO dbo.InsertTest_Basic (GuidCol, StringCol, NumberCol, DateCol) SELECT NEWID(), T.Name, T.Value, GETDATE() FROM (VALUES (A, 10), (B, 20), (C, 30)) AS T(Name, Value);工作原理先執(zhí)行SELECT語句生成一個完整的結(jié)果集然后將這個結(jié)果集作為一個整體插入操作來處理。整個INSERT...SELECT是一個原子事務(wù)。實測效率從另一個具有相同結(jié)構(gòu)的表插入100萬行耗時約1分50秒。性能非常優(yōu)秀。效率分析最小化事務(wù)開銷只有一個事務(wù)。查詢優(yōu)化器介入SQL Server可以優(yōu)化整個語句的執(zhí)行計劃可能使用并行處理等高級特性。日志優(yōu)化對于某些情況如使用TABLOCK提示且數(shù)據(jù)庫處于簡單恢復(fù)模式或批量日志恢復(fù)模式SQL Server可以進(jìn)行“最小日志記錄”操作大幅減少日志量。適用場景表間數(shù)據(jù)復(fù)制、數(shù)據(jù)歸檔、基于復(fù)雜查詢結(jié)果創(chuàng)建新數(shù)據(jù)集。這是T-SQL腳本中進(jìn)行批量數(shù)據(jù)操作的首選方式。3.4 方式四使用UNION ALL模擬批量插入這是一種較老但有時仍會遇到的技巧本質(zhì)上是將多個SELECT語句用UNION ALL連接形成一個結(jié)果集再通過INSERT...SELECT插入。INSERT INTO dbo.InsertTest_Basic (GuidCol, StringCol, NumberCol, DateCol) SELECT NEWID(), Data1, 1, GETDATE() UNION ALL SELECT NEWID(), Data2, 2, GETDATE() -- ... 可以連接很多個SELECT工作原理與INSERT...SELECT類似但查詢計劃可能會有所不同。UNION ALL需要構(gòu)建一個包含所有行的派生表。實測效率插入100萬行由100萬個SELECT ... UNION ALL組成這本身構(gòu)造語句就很困難效率通常低于直接的INSERT...VALUES多行插入或INSERT...SELECT。因為解析和優(yōu)化一個極其龐大的UNION ALL語句本身開銷很大。效率分析解析開銷大SQL Server需要解析一個非常長的SQL字符串。計劃可能非最優(yōu)對于超長的UNION ALL查詢優(yōu)化器可能無法生成最佳計劃。個人建議不推薦使用這種方式進(jìn)行批量插入。它沒有性能優(yōu)勢且可讀性和可維護(hù)性差。INSERT...VALUES多行語法或INSERT...SELECT是更好的選擇。3.5 方式五BCP實用工具與BULK INSERT語句當(dāng)需要處理超大規(guī)模數(shù)據(jù)千萬、億級時就需要請出SQL Server的“重型武器”BCP和BULK INSERT。BCP (Bulk Copy Program)這是一個命令行工具用于在SQL Server實例和數(shù)據(jù)文件之間高效地大容量復(fù)制數(shù)據(jù)。bcp PerfTest.dbo.InsertTest_Basic IN D:\data.csv -c -t, -r\n -S localhost -T -b 10000-c使用字符文本格式。-t,指定字段終止符為逗號。-b 10000指定每批提交的行數(shù)為10000。-T使用Windows集成身份驗證。BULK INSERT T-SQL語句在T-SQL中直接調(diào)用大容量插入操作。BULK INSERT dbo.InsertTest_Basic FROM D:\data.csv WITH ( FIELDTERMINATOR ,, ROWTERMINATOR \n, BATCHSIZE 10000, TABLOCK -- 獲取表級鎖有助于最小日志記錄 );工作原理這兩種方式都繞過了SQL Server常規(guī)的日志記錄和約束檢查機(jī)制可配置采用最直接的數(shù)據(jù)流方式將數(shù)據(jù)頁加載到數(shù)據(jù)庫中。在配置了TABLOCK且數(shù)據(jù)庫恢復(fù)模式合適時可以進(jìn)行“最小日志記錄”速度極快。實測效率使用BCP或BULK INSERT導(dǎo)入100萬行CSV數(shù)據(jù)耗時約25秒。性能是INSERT...SELECT的4倍以上。效率分析最小日志記錄最大優(yōu)勢減少了90%以上的日志I/O。批量處理通過BATCHSIZE控制事務(wù)大小在速度和恢復(fù)能力間取得平衡。鎖機(jī)制TABLOCK提示使用表級鎖減少了鎖管理的開銷但會阻塞其他并發(fā)操作。適用場景數(shù)據(jù)倉庫的初始裝載、定期大批量數(shù)據(jù)遷移、從外部系統(tǒng)如Hadoop導(dǎo)入數(shù)據(jù)。注意事項需要文件系統(tǒng)訪問權(quán)限且對數(shù)據(jù)文件的格式要求嚴(yán)格。3.6 方式六SqlBulkCopy類 (.NET應(yīng)用程序)對于.NET開發(fā)者而言SqlBulkCopy類是應(yīng)用程序中實現(xiàn)高速數(shù)據(jù)插入的“神器”。它本質(zhì)上是BCP功能在.NET中的封裝。using (SqlConnection connection new SqlConnection(connectionString)) using (SqlBulkCopy bulkCopy new SqlBulkCopy(connection)) { connection.Open(); bulkCopy.DestinationTableName dbo.InsertTest_Basic; bulkCopy.BatchSize 5000; // 設(shè)置批大小 bulkCopy.BulkCopyTimeout 600; // 超時時間 // 如果源DataTable列與目標(biāo)表列順序一致可直接寫入 bulkCopy.WriteToServer(yourDataTable); }工作原理在內(nèi)存中構(gòu)建數(shù)據(jù)流通過TDS協(xié)議直接發(fā)送到SQL Server其底層機(jī)制與BCP類似支持最小日志記錄。實測效率從一個DataTable插入100萬行數(shù)據(jù)耗時約30秒包含.NET端的DataTable構(gòu)建時間。與BCP性能處于同一量級。效率分析進(jìn)程內(nèi)高效傳輸避免了像傳統(tǒng)ADO.NET逐條插入那樣多次網(wǎng)絡(luò)往返和命令解析。靈活的數(shù)據(jù)源可以從DataTable、DataReader、IDataReader等多種源讀取數(shù)據(jù)。可控制性強(qiáng)可以精確控制批大小、超時、映射列甚至可以在插入時觸發(fā)事件。適用場景.NET應(yīng)用程序中需要將內(nèi)存中大量數(shù)據(jù)如從文件讀取、從API獲取、計算生成持久化到SQL Server數(shù)據(jù)庫。這是應(yīng)用層批量插入的最佳實踐。3.7 方式七SELECT INTO 創(chuàng)建并插入SELECT INTO用于創(chuàng)建一個新表并將查詢結(jié)果直接插入到這個新表中。SELECT ID IDENTITY(INT, 1,1), NEWID() AS GuidCol, NewTable AS StringCol, NumberCol, GETDATE() AS DateCol INTO dbo.InsertTest_New -- 創(chuàng)建新表 FROM dbo.SourceTable;工作原理該操作是元數(shù)據(jù)操作和最小日志記錄數(shù)據(jù)插入的結(jié)合。SQL Server首先創(chuàng)建一個結(jié)構(gòu)基于查詢結(jié)果集的新表然后以高效的方式將數(shù)據(jù)填充進(jìn)去。由于是新表沒有索引、約束的維護(hù)開銷除非在語句中定義并且通常使用最小日志記錄。實測效率從源表創(chuàng)建并插入100萬行到一個新表耗時約20秒。是本次測試中最快的方法。效率分析零索引/約束開銷新表在插入數(shù)據(jù)時是“空白”的插入完成后才可能添加索引這避免了隨插隨維護(hù)的巨大開銷。最小日志記錄默認(rèn)情況下在簡單恢復(fù)模式下SELECT INTO是最小日志記錄操作。局限性它不用于向現(xiàn)有表插入數(shù)據(jù)。它的目標(biāo)是快速創(chuàng)建并填充一個新表。適用場景數(shù)據(jù)倉庫中創(chuàng)建中間表或快照表、對大型數(shù)據(jù)集進(jìn)行臨時轉(zhuǎn)換和存儲、作為復(fù)雜數(shù)據(jù)預(yù)處理的第一步。如果需要將數(shù)據(jù)插入現(xiàn)有表此方法不適用。4. 影響插入效率的關(guān)鍵因素深度剖析了解了各種方法的速度后我們必須深入骨髓理解到底是哪些因素在拖慢或加速插入操作。這樣你才能在任何場景下做出正確選擇而不僅僅是死記硬背結(jié)論。4.1 事務(wù)與日志記錄最大的性能殺手這是理解插入效率的基石。SQL Server遵循WAL原則任何數(shù)據(jù)修改必須先寫入事務(wù)日志以保證持久性和可恢復(fù)性。單條插入的災(zāi)難想象一下插入100萬行就產(chǎn)生了100萬個獨立的小事務(wù)。每個事務(wù)都需要寫日志記錄開始事務(wù)、行數(shù)據(jù)、提交事務(wù)。將日志記錄刷新到磁盤等待WRITELOG等待類型。在數(shù)據(jù)頁中寫入數(shù)據(jù)。如果頁不在內(nèi)存中還需從磁盤讀取數(shù)據(jù)頁到緩沖區(qū)。 這個過程產(chǎn)生了海量的、隨機(jī)的日志I/O速度必然慢。批量操作的優(yōu)化INSERT...SELECT或批量值列表將100萬行放在一個事務(wù)里。只需要寫一次“事務(wù)開始”和“事務(wù)提交”的日志記錄。行數(shù)據(jù)的日志記錄雖然還是要寫但因為是順序?qū)懭胄蔬h(yuǎn)高于隨機(jī)寫入。更重要的是在SIMPLE或BULK_LOGGED恢復(fù)模式下配合TABLOCK等提示可以對批量操作啟用“最小日志記錄”。最小日志記錄只記錄頁的分配和元數(shù)據(jù)變化而不記錄每一行數(shù)據(jù)的詳細(xì)內(nèi)容日志量可能減少90%以上這是BCP、BULK INSERT和SqlBulkCopy快如閃電的根本原因。實操心得對于大批量插入務(wù)必在業(yè)務(wù)允許的情況下將數(shù)據(jù)庫恢復(fù)模式切換到BULK_LOGGED并在插入語句中使用WITH (TABLOCK)提示。操作完成后可切回FULL模式。這能帶來數(shù)量級的性能提升。但切記BULK_LOGGED模式下某些大容量操作的可恢復(fù)性會降低。4.2 索引維護(hù)甜蜜的負(fù)擔(dān)表上的每個非聚集索引在插入新行時都是一份需要維護(hù)的“副本”。聚集索引數(shù)據(jù)行本身按照聚集索引鍵排序存儲。插入新行時需要在B-Tree中找到正確的位置可能導(dǎo)致頁拆分——當(dāng)一個數(shù)據(jù)頁滿了SQL Server需要將大約一半的行移動到一個新頁。這是一個昂貴的操作涉及分配新頁、移動數(shù)據(jù)、更新指針鏈。非聚集索引每個非聚集索引都有自己的B-Tree結(jié)構(gòu)。插入一行數(shù)據(jù)需要在每個非聚集索引中也插入一條對應(yīng)的索引記錄。如果一個表有5個非聚集索引插入一行就相當(dāng)于寫了6次1次數(shù)據(jù)5次索引。優(yōu)化策略先插數(shù)據(jù)后建索引對于一次性導(dǎo)入海量數(shù)據(jù)最有效的方法是先刪除所有非聚集索引和約束除了必須的甚至刪除聚集索引使表成為堆表待數(shù)據(jù)插入完成后再重新創(chuàng)建索引。重建索引是一個高效的批量操作通常比逐行維護(hù)快得多。使用有序數(shù)據(jù)如果插入的數(shù)據(jù)能按照聚集索引鍵的順序排列可以最大程度減少頁拆分和B-Tree的重新平衡。評估索引必要性在插入頻繁的表上要審慎評估每個非聚集索引的成本與收益。4.3 鎖與并發(fā)效率與并發(fā)的權(quán)衡插入操作需要獲取鎖來保證數(shù)據(jù)一致性。行鎖 vs 頁鎖 vs 表鎖默認(rèn)情況下SQL Server會從行鎖開始必要時升級。鎖的粒度越小如行鎖并發(fā)性越好但管理開銷越大。TABLOCK提示像BULK INSERT或INSERT...SELECT WITH (TABLOCK)中使用的這個提示會直接獲取表級排他鎖。這徹底消除了鎖管理開銷并是觸發(fā)最小日志記錄的條件之一。但代價是在操作期間整個表對其他所有會話都是不可訪問的。批大小BatchSize的智慧在SqlBulkCopy或BCP中設(shè)置BatchSize不僅控制了事務(wù)大小也控制了鎖的持有時間。一個大的批處理作為一個事務(wù)會持有鎖直到批處理完成。如果設(shè)置為10000則每插入10000行提交一次事務(wù)釋放一次鎖允許其他查詢在間隙中運行實現(xiàn)了吞吐量和并發(fā)性的平衡。4.4 數(shù)據(jù)類型與約束隱形成本IDENTITY列自增列本身開銷很小但它是順序的有助于聚集索引的插入性能。但高并發(fā)插入時可能成為熱點。GUID列NEWID()作為聚集索引鍵是“災(zāi)難性”的。因為NEWID()生成的是隨機(jī)值導(dǎo)致每次插入都發(fā)生在索引B-Tree的隨機(jī)位置造成大量的頁拆分和碎片。如果必須用GUID考慮使用NEWSEQUENTIALID()它生成順序的GUID能大幅減少碎片。約束檢查CHECK約束、FOREIGN KEY約束會在插入每行時觸發(fā)驗證。對于大批量導(dǎo)入可以考慮先禁用約束導(dǎo)入后再啟用并驗證。ALTER TABLE ... NOCHECK CONSTRAINT ALL和ALTER TABLE ... CHECK CONSTRAINT ALL是你的朋友。觸發(fā)器AFTER INSERT觸發(fā)器對性能影響巨大因為它會在每批甚至每行取決于觸發(fā)器定義插入后執(zhí)行。如果可能在大批量操作前禁用觸發(fā)器。5. 實戰(zhàn)場景下的選擇策略與避坑指南理論結(jié)合實踐下面我根據(jù)不同場景給出具體的插入方案選擇和必須繞開的“深坑”。5.1 場景決策樹我該用哪種方式插入少量數(shù)據(jù) 1000行到現(xiàn)有表首選在應(yīng)用層使用參數(shù)化查詢構(gòu)建一個包含多行VALUES的INSERT語句一次性提交。理由簡單、安全、性能足夠好無需引入復(fù)雜工具。在應(yīng)用層.NET/Java需要插入大量數(shù)據(jù) 1萬行首選.NET環(huán)境無條件使用SqlBulkCopy。Java生態(tài)可以使用JDBC的addBatch()和executeBatch()進(jìn)行批處理但性能不及SqlBulkCopy對于極大量數(shù)據(jù)可考慮生成文件后用BCP命令。關(guān)鍵配置設(shè)置合理的BatchSize5000-10000使用SqlBulkCopyOptions.TableLock以嘗試最小日志記錄。在數(shù)據(jù)庫層通過T-SQL腳本插入/轉(zhuǎn)移大量數(shù)據(jù)首選INSERT INTO ... SELECT ... FROM ...。這是T-SQL中最靈活、性能最好的方式。性能增強(qiáng)如果目標(biāo)表可被獨占加上WITH (TABLOCK)提示。確保源查詢本身是高效的。替代方案如果數(shù)據(jù)來自外部文件使用BULK INSERT。一次性初始化或遷移海量數(shù)據(jù)億級首選BCP命令行工具或BULK INSERT語句。標(biāo)準(zhǔn)流程 a. 將目標(biāo)數(shù)據(jù)庫恢復(fù)模式設(shè)為BULK_LOGGED。 b. 刪除目標(biāo)表上的所有非聚集索引和約束主鍵、唯一約束需謹(jǐn)慎。 c. 使用BCP或BULK INSERT配合TABLOCK導(dǎo)入數(shù)據(jù)。 d. 重新創(chuàng)建索引和約束。 e. 將恢復(fù)模式設(shè)回FULL并立即進(jìn)行日志備份。究極優(yōu)化如果表可重建使用SELECT ... INTO創(chuàng)建新表是最快的然后再創(chuàng)建索引和重命名表。需要從復(fù)雜查詢結(jié)果創(chuàng)建新表無條件首選SELECT ... INTO。它語法簡潔且自動創(chuàng)建表結(jié)構(gòu)性能最優(yōu)。5.2 常見“深坑”與避坑技巧坑1循環(huán)內(nèi)逐條插入現(xiàn)象程序或腳本運行極慢數(shù)據(jù)庫服務(wù)器WRITELOG等待高。解決這是最經(jīng)典的性能反模式。務(wù)必改為批處理。即使在存儲過程中也應(yīng)使用表值參數(shù)或臨時表積累數(shù)據(jù)然后一次性插入。坑2導(dǎo)入時索引未刪除現(xiàn)象BCP或BULK INSERT速度遠(yuǎn)低于預(yù)期可能和逐條插入差不多慢。解決牢記“先刪后建”原則。對于聚集索引如果自增列是聚集索引鍵可以保留因為它對順序插入友好。但所有非聚集索引必須刪除???未使用最小日志記錄條件現(xiàn)象日志文件暴漲導(dǎo)入速度被日志寫入拖累。解決檢查并滿足最小日志記錄條件數(shù)據(jù)庫恢復(fù)模式為SIMPLE或BULK_LOGGED操作使用了TABLOCK提示或表為空且使用了TABLOCK操作是“大容量加載”類型如BCP,BULK INSERT,INSERT ... SELECTwithTABLOCK???GUID作為聚集索引鍵且隨機(jī)插入現(xiàn)象表碎片率極高插入速度越來越慢查詢性能也下降。解決使用NEWSEQUENTIALID()代替NEWID()?;蛘呖紤]使用INT IDENTITY作為聚集索引鍵將GUID作為非聚集索引的唯一列???批大小設(shè)置不當(dāng)現(xiàn)象要么事務(wù)過大導(dǎo)致日志滿、鎖持有時間長要么批大小太小事務(wù)提交過于頻繁。解決進(jìn)行測試。從一個適中的值如10000開始觀察日志增長和并發(fā)影響。通常在保證不阻塞業(yè)務(wù)太久的前提下較大的批大小5萬-10萬能獲得更好的吞吐量???忽略觸發(fā)器與約束現(xiàn)象導(dǎo)入速度慢發(fā)現(xiàn)大量時間花在觸發(fā)器執(zhí)行或約束檢查上。解決在大批量操作前使用DISABLE TRIGGER和NOCHECK CONSTRAINT臨時禁用它們。操作完成后務(wù)必重新啟用并檢查數(shù)據(jù)完整性。6. 高級話題與未來演進(jìn)掌握了上述核心內(nèi)容你已經(jīng)能解決99%的SQL Server插入性能問題。如果你想更進(jìn)一步這里還有一些高級話題值得探索。6.1 內(nèi)存優(yōu)化表的插入從SQL Server 2014開始引入了內(nèi)存中OLTP功能可以創(chuàng)建內(nèi)存優(yōu)化表。這種表的數(shù)據(jù)完全駐留在內(nèi)存中使用無鎖、版本控制的多版本并發(fā)控制。對于極高的并發(fā)插入場景如每秒數(shù)萬次的交易記錄內(nèi)存優(yōu)化表的插入性能可以是基于磁盤的表的數(shù)十倍。它的插入操作更像是INSERT ... VALUES的語法但底層是完全不同的引擎。如果你的場景是寫密集型、高并發(fā)、短事務(wù)內(nèi)存優(yōu)化表是一個革命性的選擇。不過它需要仔細(xì)的容量規(guī)劃和特定的數(shù)據(jù)類型支持。6.2 分區(qū)表的切換插入對于按時間歸檔的數(shù)據(jù)如日志表、交易歷史表分區(qū)表是終極解決方案。最優(yōu)雅的插入方式不是INSERT而是分區(qū)切換。你可以在一個空的、結(jié)構(gòu)相同的分區(qū)表或普通表中使用最快的方式如BCP批量插入數(shù)據(jù)。在這個表上創(chuàng)建與主分區(qū)表完全一致的索引和約束。使用ALTER TABLE ... SWITCH TO ...語句在毫秒級別將整個分區(qū)“切換”到主分區(qū)表中。 這種方式實現(xiàn)了真正的“零影響”數(shù)據(jù)插入對主表幾乎沒有阻塞是數(shù)據(jù)倉庫加載數(shù)據(jù)的黃金標(biāo)準(zhǔn)。6.3 使用變更數(shù)據(jù)捕獲與外部隊列在一些超大規(guī)模、解耦的架構(gòu)中插入操作可能不再是直接操作數(shù)據(jù)庫。而是應(yīng)用將數(shù)據(jù)寫入一個高性能的消息隊列如Kafka, RabbitMQ。一個獨立的消費者服務(wù)從隊列中批量取出數(shù)據(jù)。消費者服務(wù)使用SqlBulkCopy或其他批量工具將數(shù)據(jù)寫入SQL Server。 這種架構(gòu)將插入的“實時性”要求與數(shù)據(jù)庫的“吞吐量”能力解耦提供了更好的可擴(kuò)展性和容錯性。SQL Server自身的Change Data Capture功能也可以捕捉變更并輸出到外部但更常用于下游分析系統(tǒng)。在我經(jīng)歷過的眾多性能優(yōu)化案例中慢速插入往往不是由一個原因造成的而是多個因素疊加的結(jié)果。我的建議是養(yǎng)成習(xí)慣面對批量操作首先思考“能否批量”然后檢查“索引和約束是否已處理”最后確認(rèn)“是否滿足了最小日志記錄的條件”。把這三點做到位插入效率就不會再成為你系統(tǒng)的瓶頸。數(shù)據(jù)庫操作很多時候比的不是誰懂得更多炫技的語法而是誰對底層機(jī)制的理解更扎實誰在細(xì)節(jié)上考慮得更周全。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美色网络| 熟女乱3伦999| 精品一久久久| 涩涩五月天| www.yeyecao| 另类老少妇| 亚洲色图加勒比| 色色婷婷五月天| 亚洲天堂中文字| 欧美亚洲手机在线| 一二三四区电影| 欧美亚洲美少妇一区二区| 五月天综合网| 婷婷综合在线| 9 9精品一区二区三区| 福利操逼| 超碰色男人操熟女| 亚洲?V无码专区在线电影| 午夜一区| 大香蕉综合网| 友优传媒精品在线一区二区| 亚洲色图8| 级品肉射| 天天干人妻| 玖玖爱综合| 艳美熟妇先锋一二三区| 蜜桃精品一区二区三区久在线| 青青草自拍视频在线播放| 免费AV播放| 色99视频| 免费久久9999| 亚洲图片在线| 久久大香蕉97| 久久久久久久精| 国产传媒av天美传媒在线| 国产精品久久泡妞网站| 日本精品一区二区三区四区的功能| 一二三四区操操Av| 美女十八禁| 加勒比无码毛片| 9久久久久久| 欧美日韩妖精91com| 久久青娱乐| 欧中美三级一区二区三区| 伊人九九| 日韩欧洲操屄视频| 午夜一区二区三区国产| 日本一区二区三区四区免费观看| 欧美亚洲综合色| 美国aaaaa一级黄片| 91色图片| 美女高潮视频91| 九九玖玖精品| 久久久专区| 亚洲欧美一区二区不卡视频播放| 97久久久久久久久久| 欧美性色欧美| AAAA欧美日韩| 无码人妻丰满热妇又大又粗| 精品国产乱码久久久久久久久1 | 亚洲少妇综合在线播放| 黄片免费看黄片免费看| 久无码| 亚热日本熟女| 精品视频久久| 少妇厨房愉情理伦片bd在线观看| 国产亲戚伦亲在线| 欧美一二在线| av一区二区三区不卡| 久久亚洲AV无码专区首页| 久久久97| 欧美色图下一页| 俺去啦自拍| 91丝袜| 国产精品高清2021在线| 国产精品久久久久久久久AV大片| 色色色色色色色色色色色色色色综合| 91女优在线观看 | 国产绿奴视频在线观看| 免费的av网| 99国内熟女露脸视频| 久久亚洲一区女同性恋中文字幕| 亚洲欧美国产中文视频| 99色在线观看| 新精精品久久精品| 大色综合| 婷婷五月在线视频| 东方亚洲在线操逼天堂| 欧美性爱伊人| 免费国产| 国产福利精品最新在线| 加勒比东京热五月天天堂网| 亚州熟女乱伦| 久久亚洲影院一区二区| 可乐操亚洲蜜911| 午夜男人av| 熟女丰满人妻一区| 超碰97久久| 日韩性爱高清免费视频| 九九九九免费高| 精品毛片av一区二区| 欧美成人9797| 久久久久久综合久久伊人蜜月| 欧美日韩操逼动图| 久久久久久久久女黄| 八戒午夜福利理论片| 六月天婷婷| 婷婷人妻激情| 动漫爆乳3D奶水一区在线观看| 久草毛片电影怡| 超碰97精品| 天天干天天拍| 久久大黄片| 热天堂一区二区| 又大又大又大又粗爽高潮观看 | 91在线一起| caoni国产亚洲av| 丝袜综合色图| 中文字幕AV乱伦| 自拍丝袜美腿人妻| 亚洲AV无线| 亚洲综合大片| 久久久九97| 精品玖九九久| 国产原创精品| 一本久道在线综合视频| 9 1果冻精品视频| 免费的黄片wwwwww| 欧美亚洲手机在线| 97视频在线免费看| 隔壁邻居波多野结衣中文字幕| 亚洲第一二区另类图| 天天操人人操狠狠插| 熟女欧美日韩综合婷婷| 美女午夜福利免费视频| 91视频女生| 99久久9| 欧美性爱一区二区三区| 天天看天天综合成人网| 亚洲一区中文字幕| 欧美激情1区| 乱伦熟女区| 怡红院久久老司机| 麻豆黄色五月天| 少妇厨房愉情理伦片bd在线观看 | 99re这里| 亚洲黄色影视| 黄色免费一级在线毛片| 国产高清在线自在拍69| 婷婷五月天在线观看| 丰满人妻-区二区三区免费看| 嗯嗯啊啊操死我| 亚洲国产奇米影视久久| 国产9熟妇视频网站| renqi久久久久久久久久久久| 日本一区二区中文字幕久久| 国产自产22区| 手机不卡视频不卡在线一二三区| 大色综合网| 成人久久久| 自拍二页| 大香蕉伊人亚洲| 免费簧片在线观看| 国产精品点击进入在线影院高清| 九九九九一区| 色妇91| 日韩AV片| 丁香六月天| 亚洲国产欧美另类自拍| 男人的天堂va在线| 干b网| 夜夜夜久久| 国产色呦呦| 中文字幕丰满人妻日本| 9美女超碰在线免费观看| 99re69综合| 影音先锋国产精品| 97国产精品在线观看| 国产精品久久久久久照片| 欧美999| www.99在线| 天天操人人操狠狠插| 欧美日韩小说| 99re在线| 香伊人在线| 女人久久久| 香蕉国产97| 亚洲宗合网| 人妻密肉在线观看| 青青草视频这里只有精品| 中国亚洲呦女专区| 国产日产精品久久快鸭的功能介绍| 天天肏视频| juliaann欧美丝袜办公室| 99re在线精品78| 超碰 av 女人天堂| 十八禁黄色成人网站观看| 十八禁av无码免费网站APP| av亚欧| 91精品导航| 欧亚 另类 久| 校园春色 亚洲| 天天综合,91入口| 少妇精品久久久| 久草资源欧美在线视频| 国产成自自拍在线观看| 中国小夫妻勾搭露脸淫荡对白| 97人妻色| 67194无码不卡| 亚洲色图激情小说| 激情图片伦理国产一区二区日韩| 人妻天天夜夜爽一区二区| 夜色五月天| 成人片在线播放| 日本亚洲熟女视频| 超碰超碰95| 青娱乐av在线| 日本 免费 一区二区三区 久久香蕉| 欧美日韩情色一区二区| 久久蜜色情在线视频xxx免费观看| 欧美狠狠操| 免费看污网站| 亚洲久久东京热一二三四五区视频| 亚洲怡春院| 玖玖大干人妻| 日韩97在线| 青青草国产欧美非洲黑人| 久久天堂| 国产成人精品日本视频| 中文字幕在线24| 中文字幕版| 蜜臀99999| 少妇激情AV| 偷拍盗拍亚洲色图图片 | 亚洲国产成人精品无码专区| 俺去俺来也在线www| 激情五月天婷婷| 麻豆黄色五月天| 精品人妻一区二区乱码一区二区| 欧美日韩97在线| 91老司机精品| 色五月69夫妻| 91夜夜蜜桃臀1区2区3区| 思思热免费视频观看| 日韩国产中文字幕| 中文日韩欧美熟| 欧美日韩另类激情图片| 中文字幕丰满子伦无码专区在线视频最新| 乱伦a片视频| 破苞ⅩXXX性无码动漫无码| 嗯嗯嗯好爽| 亚洲综合113页| 综合97亚洲| 国产91 丝袜在线播放 | 国产精品一区二区密臀| 91精品久久久久五月天精品| 青青草日韩无码| a人欧美综合天堂麻豆| 激情文学小说一区二区| 伊人国产成人av网站| 久久亚洲AV成人精品无码| 日本久久网| 四虎国产成人精品免费一女五男| 男人的天堂久久| 欧美 日韩 亚洲 春色| 91黑丝在线播放| 欧美国产操逼| 伊人精品久久网站| 青青色综合| 青青草公开在线免费不卡视频| 超碰97人人cao| 激情AV| 精品国产国产AV| 欧成人精品一区二区三区| 在线看的av| 啊啊啊啊嗯嗯嗯用力好爽 | 欧美懂色综合网| 女人被添高潮免费视频| 欧美 熟女 日韩| 国产精品不卡av免费在线观看| 亚州AV无码国产精品| 亚洲黄日韩无码专区| 久久久日本电影| 可以在线观看AV的网站| 色阁阁AV综合网| 日韩成人高清一区二区| 色一射色一射| 日本韩国国产精品一区| 超碰欧美在线欧美| av天堂电影网| 五月丁香在线| 好涩综合| 后入内射蜜桃臀| 天天综合欧美| 中文字幕一区 二 区 三 四 五 区日 日 骚| 人妻少妇精品久久久久久| 久久精视频美日韩在线视频| 麻豆尤物视频网| 俺去俺来也在线www| 日天天九九天堂666| 小泽玛利亚一二三| 极品色综合| 国产免费一区在线观看| 超碰久超碰久| 欧美激情精品久久久| 日韩pv中文| 欧美日韩人妻少妇 一区二区三区| 9 1果冻精品视频| 香蕉久久国产AV一区二区| 日本成人A片网站| 美女国产一区二区久久| 伊人久日| 久久国产三区| 老司机天天操| 加勒比综合在线| 婷色五月天| 啊啊啊好多水| 亚洲无限观看| 97啪啪| 网友自拍第1页| 天天影视网综合少妇| 国产一级舔足在线观看| 91激情网| 丁香五月激情婷婷| 亚洲欧美另类小说| 国产极品久久久| 亚洲1区2区三区高清中文字幕| 狠狠97| 蜜臀少妇一区二区| 亚洲色系另类精品国产| 麻豆天美一区二区| 日韩精品系列| 国产精品久久发布| 日亚韩精品视频二区三| 91色综合| 淫穴高潮色图| 大香久久| 久草线上视频免费看| 婷婷伊人| 干干干天天| 色区97| 亚洲AV不卡在线观看尤物| 尤物一级在线免费观看| aaa亚无码专区| 超碰97人人乐| 成人熟女区| 视频二区美腿丝袜制服人妻欧美 | 综合久久中文字幕综合日韩精品| 精品一区二区国产日韩| 九九九不卡| 99热精品国产| 啊啊啊啊一区| 国模精品一区二区三区苹果色戒| 国产欧美日本亚洲精品| 色欧美亚洲| 成年人黄色| 8050无码八戒| a男人的天堂久久一级A毛片| 亚洲中文丝袜美腿诱惑字幕| 啊啊啊好疼| 肥臀熟女福利视频一区二区| 99热91| 国语国产操逼伊人AV网| 国产成人亚洲精品无码最新在线| 97色亚洲| 91青青在线| 蜜桃精品一区二区三区久在线| 国产婷婷一区| 欧洲无码一区二区| 色色色网站| 97最新在线播放视频| 强奸国产精品视频| 日韩三A大片在线观看| 美国日韩黄片| 一级岛国大片| 91视频伊人| 国语av狠狠色丁香婷婷综合激情| site:sinbotex.com| 中出20p| 亚洲综合一| 色网综合网| 国产精品天干天干综合网麻豆| 久久人人爽爽爽人久久久| 口爆综合网| 天天日天天插| 天天影视综合网欧美精品| 99性爱| 中文字幕精品一区二区精品| 欧美色偷拍 | 亚洲激情久久久伊人综合| 欧美洲精品一级| 一摸二插三插| 精品十八在线观看| 日韩无码一区二区三区| 玖玖爱在线视频免费观看| 无码人妻精品一区二区三区99不卡| 97视频网站| 久久av无码| 国产辣妈在线视频福利| 亚洲黄a三级三级三级看三级| 91老熟女逼| 超碰在线一区二区| 国产无码精品成人| 国产一区免费午夜视频| 国产51色综合久久免费| 久久精品国产亚洲AV无码电影| 国岛片视频| 五月丁香综合啪啪| 高凊专区人人操| 欧美色图片91| 欧美大干日韩| 日日爱99| 欧美综合777| 天天插天天操天天摸天天射天天看| 久久久精品中文字幕麻豆| 久久中文字幕女同性恋一区| julia国产在线| 超碰欧美| 成人免费福利网站国产| 国内91熟女人妻丝袜天天精品视频在线| julia高潮后不停追击中出| 91干熟女| 亚洲情欲| 黄色电影在线播放综合网站| 久久9视频| 欧美日韩国产中文精品字幕自在自线, | nuu12国产麻豆精品| 成人免费福利网站国产| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 天天综合网1| 91精品国产91久久久久久久久久久久| 在线日韩日本亚洲国产| 福利视频一区二区微拍| 中文字幕乱码人妻一区二区三区,99精品| 亚洲 另类 丝袜 自拍 动漫| 婷婷五月天激情四射| 青娱乐欧美激情一区二区| 亚洲AV成人无码久久精品播放| 久操视频免费在线观看| 亚洲综合嫩| 亚洲无码成人精品| av天天在线观看| 色踪合AV| 久久东京伊人一本到鬼色| 天美传媒国产原创中文字幕亚洲欧美另类 | 国产精品亚洲一区二区三区四区| 日韩情色AV| 欧美在线天堂| 97操操| 青青青草伊人精品| 18禁免费视频| 亚洲国成人情色好看电影| 蜜屁av| 日韩中文字幕在线视频观看| 色婷婷久久综合超碰| 屁股久久久久久| 在线播放中文字幕| 97超碰精品图片| 啪啪啪精品视频| 91美女在线看| 人人贴人人摸| 久久97资源 网| 人妻一区二区三区四区视频| 97玖玖人妻| 人妻丝袜一区二区三区在线| 色婷婷激情| 色九九九九九九| 欧美性爱日韩高清| 欧美精品三级黄片| 91麻豆一二三区| 天天看片青娱乐| 日本黄 R色 成 人网站| 中国AAAAAA黄色片| 久久久亚洲精品电影免费看| 国产一区二区三区高清视频| 青青草日逼视频| 国产品精品自在在线午夜免费| 天美精品av| 人妻丝袜二区| 中文字暮97| 色姑娘综合网| 久久久久9999妇女| 乱伦1色页| 看看日B真人视频| 日韩激情中文字幕有码| 精品人妻久久久久一区二区三区| 五月丁香久久| 久久久999| av亚洲天堂资源网站| 91香蕉视频在线观看免费| 日韩精品大香蕉伊人在线| 亚洲欧美日韩精品久久久一区二区 | 日日夜夜狠狠| 日韩无码视频黄色| 性交一区二区在线播放| 亚洲中文字幕av| 色香综合| 欧美色图 人妻| 色丁香五月婷婷| 欧美色图亚洲色| 欧美A√综合网 | 伊人一区二区在线播放| 人妻天天爽夜夜爽2| 9+1视频网址| 被操高清无码视频| 91艹| 色噜噜人妻av 中文字幕| 国产无码高清操逼视频| www.久久超碰| 不卡码视频| 日韩精品亚洲专区在线影视| 久久超碰com| 91网站视频在线观看| 亚洲经典啪啪| 国产成人 综合亚洲 天堂| 大屁股熟女一区二区三区| 国产精品青青草| 亚洲av影院在线观看| 亚洲全色网| 久久夜精品一区二区三区| 伊人成人中文字幕久久网| 超碰无码加勒比| 狠狠入| 欧美亚洲厕所精品偷拍91 | 视频在线97| 大香蕉 222| 91日本在线观看| 最新国内自拍av免费| 91狠狠综合久久| 日韩精品作爱导航| 欧美黑人猛交春色影视大全| av天堂手机版追回 | 美日韩在线不卡人妻| 伊人五月天| 欧美日韩性爱操大逼| 国产精品黑人一区二区三区| 亚洲风情在线观看| 亚洲欧美综合网| 欧美日韩人妻婷婷一区| 欧美色图片91| 观看视频图片一区二区三区| 国内91熟女人妻丝袜天天精品视频在线| 男人a天堂手机在线版| 尹人免费观看视频在线| 999精品久久久久久久| 亚洲AV不卡在线观看| 久热久操| 久久99草| 加勒比海成人视频网| 国产农村妇女精品一二区| 欧美日韩夜夜| 高清无码 国产精品| 先锋音影AV| 成人久久无码www| 北条麻妃99精品青青久久| 色婷婷电影网| 五月天婷婷影院| 国产一级片| 五月天久久久| 99热国产| 97亚洲综合电影| 欧美精品另类人妖xxxx| 无码免费一区二区三区啪啪| 中文字幕 人妻不满 在线视频| 丰满的三级少妇欧美久久久| 91丨九色丨东北熟女| 91丨九色丨大屁股| 欧美极品女人的天堂| 97色伦欧美| 色999人与兽| 嗯……啊…嗯嗯…啊…好舒服| 人妻久热在线| 久久九九一区二区三区成人| 啊啊啊不要啊啊受不了了视频在线| 一区二区三区四区五区高清无码永久视频 | 青草精品视频-日本久久久久网站| 97欧美综合网| 97色碰| 91成人高清在线观看| 无码人妻精品一区二区中文| 黄色AAAAAAAAAAA大片| 8050午夜少妇无码| 欧美日韩超碰在线| 国产偷仑| 国产久9| 男人天堂东京热| 日本一级特级毛片视频| 国产成人午夜视频网址| 亚洲色诱惑| 78综合网| 夜夜骑操视频| 激情小说亚洲| 91社操逼| 欧美人妻精品| 男人的天堂久久狠| 久久久人妻| 亚洲一曲日韩精品| 91久久久久久| 啊啊啊好舒服视频在线观看| 亚洲激情在线| 国产亚洲女v在线观看| 婷婷综合网站| 福利天堂| 91成人无码| av在线一区二区三区| 长长久久免费视频| 伊人色综合欧美| 亚洲毛片基地专区| 强奸乱伦中文字幕AV| 亚洲天堂另类美腿| 九九九偷拍| 秋霞一级A片黄色视频| 丁香五月激情综合| 国产丝袜高跟美女av免费观看| 97干97色| 天天插天天操| 97在线青| av一区二区三区不卡| 爱射综合| 9 1超碰九色| 日本人妻中文字幕| 男人的天堂2018.| 久久久精选| 国产自产一区视频在线| 久久中文色图| 日韩福利电影网| 97操操| 久久久久久中文| 91九色蝌蚪在线观看| 少妇国产不卡| 青草成人免费视频一com| 成人性爱电影一区二区| 精品一区二区三区蜜桃臀www| 3PAV乱伦视频| 欧美日韩国产中文精品字幕自在自线,| 亚洲好色人妻| 手机看片1024你懂的国产| 一区,二区,三区视频| 国产在线综合网| 九色 人妻 大香蕉| 国产精品网址| 蜜臀久久99精品久久综合| 人人操人人操人妻人| 人妻熟女av国产网站| 九一性生活免费视频| 色就色综合| 亚州中文字幕超碰97| 国产欧美精选激情视频| 亚洲精品97中文字幕| 视频黄色国产一级| 亚洲综合69| 天天天天天天天天天天干美女 | 自拍视频一区在线观看| 97一本大道亚洲一区| 天天草夜夜草高潮片| 一区,二区,三区视频| 大香焦A片| 97免费视频在线观看视频| 美女操逼福利视频| 大干人妻| 亚洲午夜免费狠狠干| 国产精品网址| 91嫩草欧美| 国产精品亚洲无码| 亚欧美综合| 亚洲成人免费在线| 精品91| 97这里都是精品| 日韩激情啪啪啪| 后入式999| 久热超碰| 熟妇xxxxx性春色| 污污污8888| av婷婷色婷婷色六月| 清纯唯美综合| 亚洲伊人久久精品狠狠在线| 国模不卡| 欧美+日产+中文| 久草资源在线视频官方总站日韩丝袜美腿 | 久热大香蕉| 蜜桃狠狠色伊人亚洲综合网站| 色老汉色| 免费A V在线播放| 亚洲高清综合网| 人人爱夜夜爱| 欧美一级A片在线看视频性色| 97亚洲中文| 亚欧中文字幕在线视频| 日本韩欧美在线播放a| 熟女探花啪啪| 91老熟女91老女人| 久久久亚洲精品电影免费看| 亚洲av影院在线观看| 久久久96| 夜夜骑日日| 在线 亚洲 网爆 自拍| 日本精品高清一二区一本到| 亚洲欧美一区二区网址| 青青草一本道福利视频| 内射黑人| 91黑丝在线播放| 亚洲成人无码影院| 东京热一区二区中文字幕| 亚洲91综合| 亚洲色图20p| 99综合视频一体| 青娱乐国产精品| 日韩肏逼视频| 91在线观看,天天综合| 欧美性生活内射| 久草久热| 人妻AV 中文字幕的| 日韩一级特黄av毛片| 视频一区二区免费在线| 天天射天天色成人| 另类专区加勒比| 麻豆精品A片免费观看| 亚洲精品男人的天堂| 日韩激情啪啪| 婷婷去俺也去六月色| 亚洲伊人成综合成人网| 啊啊啊啊好疼| 97ai亚洲| 偷拍亚洲视频一区二区三区四区| 日韩一级二级三级免费看完整版国语版 | 丁香六月啪啪| 欧美亚洲日本激情在线| 国产成人无码a| 亚洲中文字幕在现观看| 超碰99re| rion磁力链接| 黄色视频特级毛片| 国产精品极品美女视频| 大香蕉92| 久久久内射良家| 日本精品性生活久久久| 国产a级精品| 色呦呦、国产精品| 日韩精品三区四区| 亚洲熟女乱色| 青青草在线视频人人想人人上| 黄色AV影视| 日韩欧美视频青青| 久久五月份| 欧美午夜精品久久久久久超碰| 成人AV在线电影| 日本狠狠干| 人妻久久久久久久久久久久久久久| 亚洲图片欧美在线视频| 99超级碰免费视频| 嗯嗯嗯好爽| 伊人久久青青草| 1024亚洲中文字幕久在线看片你懂的 | 色播综合| 水野优香在线观看| 97久久资源| 亚洲城人男人的天堂| 欧美色图片91| 久久久久网站-538在线视频-欧美永久乱码 | 波多野结衣被操50分钟免费视频| 黄色片,com| 404操逼福利视频| 久久久 国产精品| 玖玖在线视频| 亚洲精品丝袜| 东京热大香焦| 欧美性性性| 啪啪性爱免费视频| 日韩欧美一级特黄大片| 综合激情五月天| 夜夜操老骚逼视频网站| 91精品国久久久久久无码| 一本色道久久综合狠狠操| 亚洲高清欧美总合| 精品人妻免费观看| 粉嫩粉嫩一区性色AV片| 99无码视频| 天天看特黄的免费网站| 亚洲另类色综合网站| 日韩成人无码| 日本操BAV| 五月天春色激情网| 久久久久921| 96精品久久| 欧美日韩国产三级黄色| 天天爽天天爽| 日日夜夜模| 大香蕉淫人| 少妇3P性爱自拍| 九九热精品| 亚洲综合性网址| 清纯唯美亚洲综合| 人妻乱仑一区二区三区| 天天操天天射青青草| 91欧美性| 另类亚洲一区二区三区| 激情四射五月天| 性爱欧美五月| 免费a v| 亚欧国产无码精品在线| 91九九九小逼| 国产精品 视频| 五月色综合| 欧美激情色婷婷花野真衣一区二区| 九九九九九精品视频| 欧美性巨大╳╳╳╳╳高跟鞋| 亚洲色图20p| 啊啊啊啊啊啊啊啊在线观看| 男人的天堂.com| 亚洲精品人伦一区二区| 久久亚洲中文字幕视频| 久草这里只有精品| 午夜精品久久久99热蜜桃的功能特点| 成人久久久| 日本综合久久| 久久一区二区加油站| 国产日韩精品suv| 婷婷久草一区二区三区| 国产91丝袜 在线播放| 国产亚洲日韩在线三区黑人| 不卡九肏| 少妇被c 黄 免费观看| 桃色五月天| 国际精品久久久| 综合自拍| 麻豆区久久久久亚| 91艹B视频| 婷婷15月天青娱乐| 久久精品久久久久久久久| 蜜色网色哟哟| 日本成人在线不卡一区二区三区| 丁香五月久久| 大香蕉懂9| 国产免费久久久久| 精品无人区麻豆乱码1区2区图片| 无码聚合| 床戏久久久av一区二区麻豆| 国模精品娜娜一二三区 | 亚洲男人综合| 自拍盗摄一区| 亚欧毛片基地国产毛片基地| 在线观看A啊啊啊| 久久久久久久九九九九九九| 国产精品午夜成人福利| 夜夜操美女| 成人一区二区三区四区| 在线A日本| 亚洲交换| 97香蕉碰碰人妻国产欧美| 久久老熟女| 蜜臀久久99精品久久久老,,| 热99这里有精品综合久久 | 亚洲欧洲第二视频在线观看色图| 日本东京热加勒比久久| 97超碰超欧美。| 国产高清成人传媒影视| 大香蕉懂9| 久久精品亚洲婷婷| 国产精品探花色| 中文字幕第23区| 五月丁香色色网| 超碰97网站| 欧洲亚洲人妻无码中字久久三区四区| 爽极品影院| 欧美最婬乱婬爆婬牲视频| 五月香婷婷| 日韩免费中文字幕视频| 亚洲性图91| 激情五月综合| 日本熟女不卡视频| 啊啊啊啊啊啊啊啊啊在线观看| 日韩无码专区| 国产9 9在线 | 亚洲| 久久视频,这里只有精品 | 无码免费一区二区三区啪啪| 欧美精品69性爱| 日韩色女精品| 3571色综合一区二区二区| 日韩av性爱在线播放| 亚洲老司机123专区| 人妻熟女午夜精品在线| 国产精品 久久久精品一牛| 青青久久久| 日本999精品视频| 国产精品自产拍在线观看社区| 91啪啪| 啊啊啊不要嗯嗯在线观看| 又大又白奶子| 激情综合二| 男人天堂2017| 东京男人天堂| 欧美日韩婷婷中文| 久久婷婷一区二| 欧美人与性动交a美精品| 九九九九九九视频免费| 本道在线| 98精品国产乱码久久久久久| 亚洲天堂区| 欧美三级中文字幕hd| 午夜国产综合视频在线观看| 亚洲素人综合| 亚州日韩97| 久久111| 日韩欧美俄罗斯A片| 十八禁黄色成人网站观看| 综合色色网| 色天使亚洲综合在线观看| 亚洲一区二区AV| 96精品一区| 九X超碰| 中文字幕第页| 九月丁香| 色噜噜人妻丝袜a∨先锋影| 综合伊人激情| 亚洲动态色图| 黄色交缠性感爆操91国产精品免费一区二区三区| 爱欲AV| 欧美少妇一区二区三区| 欧美色五月| 日韩午夜啪啪视频| 国产无马视频| 新久久AV| 91精品久久久| 国产一区二区免费福利片| 亚洲自拍97| 欧美色网络| 日韩大香蕉AV影片| 天天操妹子| 亚洲天堂电影网99999| 久久久久久少妇| 亚洲素人网| 亚洲男人天堂2013| av72网| 天天摸天天舔天天操| 嗯嗯啊啊好疼| 传媒免费一区二区三区| 亚洲色图国产另类| 熟女欧美日韩综合婷婷| 欧美精品久久96人妻无码| 一本正道久久熟女| 欧色综合| 麻豆 亚洲 97| x97av| 天天日熟妇| 91天堂丝袜美腿| 欧美自拍网| 青草精品视频日本久久久久网站在线| 国产精品一区二区三| 天天综合网~91| 久九色| 91大神精品长腿在线观看网站| 乱性AV| 99re公开精品免费视频| 97人人操人人摸人人爱| aaaa黄片| 九九色色| 欧洲Au麻豆| 久久亚洲熟妇在线视频| 欧美性综合| 精品人妻15区| 探花精品 一区二区| 欧美高清无码免费视频高清版| 日韩欧美操逼xxx| 99re公开精品免费视频| 成视频在线观看免费看| 吻戏激情性巴克| 欧美综合加勒比在线| 久草在| 骚货操死你| 91国产操逼视频| 日本免费专区| 丰满人妻一区二区三区| 天天弄欧美| 少妇丝袜在线观看AV| 亚洲男人天堂手机版| 欧美成人一级麻豆| 操逼操逼视频操逼| 激情综合97| 97AV在线免费观看| 亚洲狠狠入| 亚洲精品一区二区精华| 亚洲最大网站av| 人人妻人人操人人乐| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 日韩Va亚洲va欧美Ⅴa久久| 五月婷婷性爱| 久久久中文版| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 午夜精品五区| 麻豆 欧美 日韩| 精品久久9| 亚洲中文字幕精品一区| 蜜臀AV网站| 黄总AV色图| 久久久久久久91| 亚洲在线欧美| 亚洲国产综合久久久性感熟妇| 国产成人无码啪| 嗯嗯啊啊的视频| 人妻色偷色噜| 校园春色亚洲色图| 亚洲 自拍偷拍 欧美| 色婷婷电影网| 国产女同在线观看视频| 国产精品99久久久www| 超碰97极品9| 人人干黄色| 婷婷激情啪啪| 伊人四虎综合| 亚洲图片激情综合另类| www.色五月| 久久精品无码不卡| 亚欧成人综合影院| 久妇网| 东京太热男人的天堂久久久| 国产成人手机视频激情| 三上制服丝AV| 亚洲加勒比久久日本道| 中文字幕狠狠玩| 日本一天色道久久久精品视频| 好爽免费视频| 99精品久久| 大干人妻| 性爱乱伦网址| 亚洲精品 欧美精品| 男女猛烈无遮掩视频免费软件| 亚洲不卡AV在线| 传媒在线观看一区二区三区| 在线观看日韩av不卡| 97热视频在线观看| 免费观看国产小粉嫩喷水精品午| 日本不卡高清免v欧美日韩在线观看| 欧美色图91| 开心五月婷婷| 东京太热男人的天堂久久久| av天堂手机版追回| 国产精品69久久久久孕妇欧美| 亚洲成人av电影在线| 九九九九九九视频| 日韩性爱毛片操骚逼| 日本新免费二区三区| 欧美一级特黄淫片在线观看| 久久久性爱视频| 精品中文字幕第一页| 97国产天堂岛| 成人麻豆av电影网站| 欧美一区二区成人一卡| 久操凹凸视频| 丝袜色综合| 91人妻尻屄视频| 中出91视频| 七久久久| 国产一国产一级毛片古装| 后入 亚洲 美女 射| 久久午夜鲁丝片| 91nbbbbbb| 欧美麻豆成人同性GⅤ在线| 亚洲色天堂九9| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 久久麻豆一区二区| 天天射日日干| 精品国产网站| 18啪啪手机免费性爱| 99热日| 激情四射五月天| 五十路熟女人妻一区二区在线观看| 精品熟女一区=区三区| 国产又色又粗又黄又爽| 青青草色插素人| 美女黄频a美女大全免费皮| 国产91 丝袜在线播放| 人人色97| 亚洲 日本 国产 综合| 少妇高潮喷水无套久久久久久| 色五月婷婷久久| 中英熟女操女| 国产一区二区三区,在线观看观看| 粉嫩不卡一区二区性爱| 激情欧美97| 另类av天堂| www欧美性爱| 婷婷超| 色呦色呦色精品| 久久精品一区二区三区不卡| 欧美亚洲国产91在线| 97天天插| 女人妻一区| 午夜理论片在线观看免费| 伊人加勒比| 久草精品一区| 亚欧精品久久久久久久久久久| 操人人| 亚洲图片91| 亚洲高清少妇| 国色天香av| av天堂5| 豆花视频操逼网址| 欧美亚州综合网图片| 国产美女口爆吞精| 婷婷五月天基地| 国产日逼视频| 丝袜美腿av女优在线| 日韩中文9| 久久久久久久久久久97| 777奇米影视777四色| 成人无码在线视频网站| 久久久久久十| 97就爱干| 中文字幕片| 国产av尤物| 国产视频不卡在线观看| www.99色| 精品国产Av无码久久久伦古装| 美女网站黄页| 伊人一区二区三区| 国产av白丝| 色狠狠综合| 青娱乐国产盛宴视频| 亚洲国成人情色好看电影| 人人性爱视频免费| 九九玖玖精品| 激情综合色| 国语对白在线播放视频| 亚洲h片在线免费观看| 男女无套 免费网站| 日本三级精品| 在线五区| 中国的操老妇女| 91国产美女丝袜足交精品视频| 日韩pv中文| 黑操B| 婷婷丁香五月综合| 亚洲成人在线播放| 激情五月天社区| 日韩性爱再线视频| 欧美强奸乱能| 午夜男人av| 欧美一级国产一级| 久久久久亚洲AV无码专区少妇| 蜜乳AV免费观看| 精品国产Av无码久久久亚洲| 97色碰| 欧美黄页| 日本东京热久久久电影| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 三久久久四久久久久| 蜜臀久久99精品久久久久久成人小说 | 99国产人成精品| 五月婷婷丁香六月| 色99色| 国产少妇与亚洲av| 久久秀这里有精品| 91人妻视频在线| 台湾佬中文娱乐自偷自拍| 九九九久千久久激情蜜桃在线看 | 欧美一级做a爰片免费视频| 欧美曰韩国产精品| 亚洲人妻av| 99性爱| 综合色图,成人综合网|