国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

解剖SQLSERVER 第十二篇 OrcaMDF 行壓縮支持(譯)

2024-07-21 02:48:55
字體:
來源:轉載
供稿:網友
解剖SQLSERVER 第十二篇 OrcaMDF 行壓縮支持(譯)解剖SQLSERVER 第十二篇 OrcaMDF 行壓縮支持(譯)

http://imPRove.dk/orcamdf-row-compression-support/

在這兩個月的斷斷續續的開發工作中,我終于將OrcaMDF 壓縮功能分支合并到主分支這意味著OrcaMDF 現在正式支持數據行壓縮功能

支持的數據類型實現行壓縮需要我修改幾乎所有已實現的數據類型以將他們作為壓縮存儲。integer類型被壓縮了,decimal類型變成可變長度,而可變長度類型基本上都被截斷了進而用0來填補。所有先前OrcaMDF已經實現的數據類型都支持行壓縮,并且在先前已經支持的數據類型的基礎上又添加了一些新支持的數據類型當前的數據類型支持列表如下:

bigintbinarybitchardatedatetimemal/numeric (including vardecimal, both with and without row compression)imageintmoneyncharntextnvarcharsmallintsmallmoneytexttimeuniqueidentifiervarbinaryvarchar

Unicode壓縮Nchar和nvarchar被證明是比其他類型還要棘手,因為他們使用SCSU unicode壓縮格式。我發現了在.NET里有一個對SCSU的實現,但是當我將他的代碼嵌入到OrcaMDF里面他彈出了一個license 窗口需要我購買license。另外 有很多開源的java工具實現但是都不是我想要的。我選擇自己實現SCSU 解壓縮根據Unicode.Inc給出的參考實現。

我只實現解壓縮并最終完成了一個非常苗條和簡單的SCSU解壓縮器。

我將會單獨寫一篇博客來介紹decompressor 并且從OrcaMDF里獨立出來作為一個單獨的類并帶有一些默認值

體系結構更改我想我應該可以在一到兩周時間內完成解壓縮功能,畢竟,解壓縮有很好的文檔記錄。我需要想一下為了實現壓縮需要改多少東西。行記錄解析器必需要知道頁面是否被壓縮。但是行記錄解析器從哪里可以知道頁面被壓縮過的?先前獲得的都是頁面指針,現在我必須查詢元數據(partition表)確保所有的數據傳遞路徑是從DataScanner 傳到page parser再傳到 record parser最后到data type parsers

我不得不在規則解析器上實現多種抽象以對壓縮的記錄和非壓縮的記錄進行抽象。整體而言,這會是一個更好的體系結構,但是可能比預期需要多花更多時間。事實上解析被壓縮的數據格式只是磨難的一小部分 --因為有文檔而且格式比較簡單。然后數據類型 在我把他們研究出來為止需要更多的工作量

預覽像往常一樣,代碼放在Github上,你可以下載下來進行研究!如果你不是程序員,我也上傳了可執行的OrcaMDF Studio二進制文件(日期為2012-02-06)

統計數據作為一個數字情人,我喜歡看統計數據。這里有一組數據是對OrcaMDF的隨機統計:

123提交 第一個在2011年4月15日——這幾乎是一年前!11700行 C#代碼(不含空格)。1000行注釋。35%的代碼是用于測試的,使用測試套件包含超過200個測試。Ohloh估計OrcaMDF開發成本為144090美元

第十二篇完


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精河县| 阿克苏市| 南通市| 永靖县| 广宗县| 文成县| 府谷县| 宿松县| 筠连县| 印江| 高陵县| 乐亭县| 新沂市| 清水河县| 龙岩市| 慈利县| 六枝特区| 麟游县| 霍山县| 汉中市| 铁岭县| 泽库县| 信丰县| 从化市| 磐石市| 嵊泗县| 余庆县| 顺昌县| 卢湾区| 云梦县| 吴川市| 师宗县| 乐业县| 六枝特区| 乐昌市| 临漳县| 肃宁县| 石城县| 湘潭市| 赫章县| 阳江市|