亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

內存中OLTP(Hekaton)里的事務日志記錄

2024-07-21 02:46:08
字體:
來源:轉載
供稿:網友
內存中OLTP(Hekaton)里的事務日志記錄

在今天的文章里,我想詳細討論下內存中OLTP里的事務日志如何寫入事務日志。我們都知道,對于你的內存優化表(Memory Optimized Tables),內存中OLTP提供你2個持久性(durability)選項:

  • SCHEMA_ONLY
  • SCHEMA_AND_DATA

今天我不想更多討論SCHEMA_ONLY,因為使用這個選項,在事務日志里沒有發生任何日志(SQL Server 重啟后你的數據會丟失)。今天我們會專門講解下SCHEMA_AND_DATA選項的持久性。

SCHEMA_AND_DATA

使用SCHEMA_AND_DATA持久性選項,SQL Server必須記錄你的事務到事務日志,因為每個內存中OLTP事務必須總是持久的。這個和傳統基于硬盤表是一樣的。但是內存中OLTP里寫入事務日志比傳統表更優化。內存中OLTP支持多個并發日志流(在SQL Server 2014里當前未實現),內存中OLTP只記錄發生的邏輯事務(logical transaction)。

邏輯事務是什么意思呢?假設你有5個非聚集索引定義的聚集表。如果你往表里插入1條記錄,SQL Server必須記錄插入到聚集索引,還有5個額外的插入非聚集索引。在你表上定義的非聚集索引越多,SQL Server需要的日志越多。而且SQL Server只能和事務日志一樣快。

使用內存中OLTP事情就變了。內存中OLTP,SQL Server只記錄在你事務里發生的邏輯修改。SQL Server對在你哈?;蚍秶饕锏男薷牟挥涗洝R虼?條日志記錄只描述發生的邏輯INSERT/UPDATE/DELETE語句。結果是,內存中OLTP寫入更少的數據到你的事務日志,因此你的事務可以更快的提交。

我們來驗證它!

我想用1個簡單的例子向你展示下,當你首先插入10000條記錄到傳統基于硬盤表(Disk Based Table),然后插入內存優化表(Memory Optimized Table),SQL Server會有多少的數據寫入你的事務日志。下列代碼創建1個簡單表,在while循環里插入10000條記錄。然后我用sys.fn_dblog系統函數(未文檔公開)來看事務日志。

 1 -- Create a Disk Based table 2 CREATE TABLE TestTable_DiskBased 3 ( 4     Col1 INT NOT NULL PRIMARY KEY, 5     Col2 VARCHAR(100) NOT NULL INDEX idx_Col2 NONCLUSTERED, 6     Col3 VARCHAR(100) NOT NULL 7 ) 8 GO 9 10 -- Insert 10000 records into the table11 DECLARE @i INT = 012 13 BEGIN TRANSACTION14 WHILE (@i < 10000)15 BEGIN16     INSERT INTO TestTable_DiskBased VALUES (@i, @i, @i)17 18     SET @i += 1 19 END20 COMMIT21 GO22 23 -- SQL Server logged more than 20000 log records, because we have 2 indexes24 -- defined on the table (Clustered Index, Non-Clustered Index)25 SELECT * FROM sys.fn_dblog(NULL, NULL)26 WHERE PartitionId IN27 (28     SELECT partition_id FROM sys.partitions29     WHERE object_id = OBJECT_ID('TestTable_DiskBased')30 )31 GO

從系統函數的輸出你可以看到,你有比20000多一點的日志記錄。這是正確的,因為我們在表上有2個索引定義(1個聚集索引,1個非聚集索引)。

現在我們來看下用內存優化表(Memory Optimized Table)日志記錄有啥改變。下列代碼展示了為內存中OLTP數據庫必備工作:我們只加了1個新的內存優化文件組(Memory Optimized File Group),給它加了個容器:

 1 --Add MEMORY_OPTIMIZED_DATA filegroup to the database. 2 ALTER DATABASE InMemoryOLTP 3 ADD FILEGROUP InMemoryOLTPFileGroup CONTAINS MEMORY_OPTIMIZED_DATA 4 GO 5  6 USE InMemoryOLTP 7 GO 8  9 -- Add a new file to the previously created file group10 ALTER DATABASE InMemoryOLTP ADD FILE11 (12     NAME = N'InMemoryOLTPContainer', 13     FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/InMemoryOLTPContainer'14 )15 TO FILEGROUP [InMemoryOLTPFileGroup]16 GO

下一步我創建了1個新的內存優化表(Memory Optimized Table)。這里我在哈希索引上選擇了16384的桶數來避免哈希碰撞(hash collisions)的可能。另外我在Col2和Col3列上創建了2個范圍索引(Range Indexes)。

 1 -- Creates a Memory Optimized table 2 CREATE TABLE TestTable_MemoryOptimized 3 ( 4     Col1 INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 16384), 5     Col2 VARCHAR(100) COLLATE Latin1_General_100_Bin2 NOT NULL INDEX idx_Col2, 6     Col3 VARCHAR(100) COLLATE Latin1_General_100_Bin2 NOT NULL INDEX idx_Col3 7 ) WITH 8 ( 9     MEMORY_OPTIMIZED = ON, 10     DURABILITY = SCHEMA_AND_DATA11 )12 GO

在那個表上合計有3個索引(1個哈希索引(Hash Index)和2個范圍索引(Range Indexes))。當你往表里插入10000條記錄,傳統表會生成近30000的日志記錄——每個索引里每個插入1條日志。

 1 -- Copy out the highest 'Current LSN' 2 SELECT * FROM sys.fn_dblog(NULL, NULL) 3 GO 4  5 -- Insert 10000 records into the table 6 DECLARE @i INT = 0 7  8 BEGIN TRANSACTION 9 WHILE (@i < 10000)10 BEGIN11     INSERT INTO TestTable_MemoryOptimized VALUES (@i, @i, @i)12 13     SET @i += 1 14 END15 COMMIT16 GO17 18 -- Just a few log records!19 SELECT * FROM sys.fn_dblog(NULL, NULL)20 WHERE [Current LSN] > '0000002f:000001c9:0032' -- Highest LSN from above21 GO

但現在當你看事務日志時,你會看到10000條插入只生成了很少日志記錄——這里是17條!

魔法發生在LOP_HK日志記錄里。在這個特定日志記錄里,內存中OLTP捆綁了多個修改到你的內存優化表(Memory Optimized Table)。你也可以通過使用sys.fn_dblog_xtp系統函數分解LOP_HK日志記錄:

1 -- Let's look into a LOP_HK log record2 SELECT * FROM sys.fn_dblog_xtp(NULL, NULL)3 WHERE [Current LSN] > '0000002f:000001c9:0032' AND Operation = 'LOP_HK'4 GO

從圖中你可以看到,內存中OLTP只生成了近10000條LOP_HK日志記錄——在這個表上發生的每個邏輯插入對應1條記錄。

小結

內存中OLTP提供你驚艷的性能提升,因為它是基于全新原理,例如MVCC和Lock-Free Data Structrues。另外它只生成少量事務日志記錄,因為只有邏輯改變被記錄寫入事務日志。我希望這個文章已給你更好的理解:內存中OLTP如何提升你的事務日志吞吐量。

感謝關注!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线视频精品一| 欧美大码xxxx| 午夜美女久久久久爽久久| 欧美日韩视频免费播放| 欧美网站在线观看| 国产日韩精品综合网站| 97激碰免费视频| 亚洲精品国产综合区久久久久久久| 青青草原成人在线视频| 日韩二区三区在线| 亚洲欧美资源在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩国产激情在线| 成人黄色中文字幕| 亚洲一区二区在线播放| 91伊人影院在线播放| 深夜福利日韩在线看| 国产91精品久久久久久| 国产精品一区av| 国产丝袜一区二区三区免费视频| 亚洲精品电影网站| 日韩av男人的天堂| 亚洲乱码一区av黑人高潮| 欧美日韩国产成人在线观看| 国产成人精品视频在线观看| 亚洲自拍偷拍色图| 亚洲免费福利视频| 热久久视久久精品18亚洲精品| 日韩小视频在线观看| 色中色综合影院手机版在线观看| 欧美黑人一级爽快片淫片高清| 亚洲精品视频久久| 国产xxx69麻豆国语对白| 中文字幕国内精品| 亚洲国产小视频| 欧美猛交ⅹxxx乱大交视频| 日韩视频永久免费观看| 国产成人精品一区二区三区| 成人精品网站在线观看| 91久久久精品| 欧美丰满少妇xxxxx做受| 亚洲自拍偷拍在线| 91亚洲va在线va天堂va国| 日韩免费在线看| 亚洲第一区在线| 日韩免费在线观看视频| 欧美中文字幕在线播放| 91麻豆桃色免费看| 久热国产精品视频| 久久国产精品视频| 中文字幕亚洲自拍| 国产成人综合久久| 亚洲自拍偷拍区| 日韩av综合中文字幕| 精品亚洲精品福利线在观看| 色噜噜久久综合伊人一本| 高清在线视频日韩欧美| 伊是香蕉大人久久| 久久天堂av综合合色| 国产激情综合五月久久| 国产日韩欧美日韩| 国产精品九九久久久久久久| 色黄久久久久久| 日韩精品免费在线视频观看| 国产精品丝袜高跟| 国产精品看片资源| 爱福利视频一区| 亚洲天堂2020| 亚洲网站在线观看| 国产免费一区二区三区在线能观看| 日本一区二区在线免费播放| 热久久99这里有精品| 欧美日韩国产91| 午夜精品美女自拍福到在线| 国产精品啪视频| 欧美日韩一区二区精品| 日本成人在线视频网址| 中文字幕日韩av| 国产精品视频男人的天堂| 欧美国产日韩在线| 亚洲一区亚洲二区| 亚洲色图av在线| 91免费观看网站| 国产一区二区日韩精品欧美精品| 亚洲欧美日韩视频一区| 中文字幕不卡av| 欧美精品久久久久a| 日本免费一区二区三区视频观看| 亚洲午夜av久久乱码| 久久99久久99精品中文字幕| 亚洲午夜久久久影院| 欧美与黑人午夜性猛交久久久| 精品国产精品自拍| 最近2019年中文视频免费在线观看| 亚洲精品国产精品国自产观看浪潮| 一区二区三区美女xx视频| 国产精品亚洲片夜色在线| 原创国产精品91| 伊人激情综合网| 在线观看日韩欧美| 国产精品高清在线观看| 欧美日韩中文字幕在线视频| 国产又爽又黄的激情精品视频| 日韩欧美成人区| 国产日韩欧美夫妻视频在线观看| 精品亚洲aⅴ在线观看| 九九热这里只有精品免费看| 亚洲视屏在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品亚洲аv天堂网| 国产精品九九九| 欧美极品欧美精品欧美视频| 欧美综合在线第二页| 亚洲一区二区少妇| 亚洲美女视频网| 日韩欧美有码在线| 国产综合久久久久| 成人av色在线观看| 色视频www在线播放国产成人| 川上优av一区二区线观看| 国产精品第8页| 亚洲综合大片69999| 国产成人精品综合久久久| 最近2019年手机中文字幕| 日韩精品在线视频| 亚洲精品视频播放| 国产午夜精品理论片a级探花| 亚洲成人久久电影| 国产精品扒开腿做爽爽爽的视频| 少妇高潮 亚洲精品| 午夜精品福利电影| 日韩免费视频在线观看| 欧美精品videos| 国产亚洲欧洲在线| 亚洲片在线观看| 热久久这里只有| 日韩欧美视频一区二区三区| 91网站在线看| 国产精品18久久久久久麻辣| 亚洲国产精品资源| 亚洲欧美一区二区三区在线| 日本精品中文字幕| 91高清免费视频| 欧美激情中文字幕乱码免费| 亚洲aⅴ男人的天堂在线观看| 亚洲三级黄色在线观看| 久久久久久久久久久久久久久久久久av| 欧美日韩一区二区三区| 国产精品久久国产精品99gif| 亚洲欧美日本伦理| 亚洲级视频在线观看免费1级| 欧美精品在线观看91| 国产日韩在线看片| 精品久久久久久中文字幕一区奶水| 国产精品www色诱视频| 91精品国产综合久久久久久久久| 久久久久久亚洲| 国产日韩欧美在线观看| 久青草国产97香蕉在线视频| 日韩av综合中文字幕| 久久久久亚洲精品国产| 久久久久久久久亚洲| 亚洲第一福利网| 国产精品久久av|