[發明專利]一種Oracle傳輸壓縮數據還原方法有效
| 申請號: | 201410381264.6 | 申請日: | 2014-08-05 |
| 公開(公告)號: | CN104320374B | 公開(公告)日: | 2017-06-27 |
| 發明(設計)人: | 李紹平;范淵 | 申請(專利權)人: | 杭州安恒信息技術有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 杭州中成專利事務所有限公司33212 | 代理人: | 周世駿 |
| 地址: | 310051 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 oracle 傳輸 壓縮 數據 還原 方法 | ||
技術領域
本發明是關于網絡數據傳輸領域,特別涉及一種Oracle傳輸壓縮數據還原方法。
背景技術
目前很多行業都在使用Oracle數據庫,在某些情況下使用SQL語句獲取結果集時,結果集中存在大量相同的數據,如果這些相同的數據只傳輸一次,那么可以大大減小網絡傳輸數據量。
一般SQL語句返回的結果集數據中,部分記錄的部分內容會存在相同的數據。經分析大部分關系型數據庫(如SQL Server、DB2、MySQL等),對結果集中每行數據如實傳輸(記錄間的相同數據在每條記錄中會重復的傳輸),這無疑增加網絡的傳輸量。
發明內容
本發明的主要目的在于克服現有技術中的不足,提供一種能正確提取壓縮信息、正確還原被壓縮的數據、正確提取非壓縮數據的Oracle傳輸壓縮數據還原方法。為解決上述技術問題,本發明的解決方案是:
提供一種Oracle傳輸壓縮數據還原方法,具體包括下述步驟:
(1)利用數據庫類型識別定位器,對傳輸的數據包進行判斷是否符合TNS通信協議的協議頭格式,若符合TNS通信協議的協議頭格式,則傳輸的數據包符合TNS通信協議,即傳輸的數據包是Oracle數據庫傳輸的數據包;若不符合TNS通信協議的協議頭格式,則傳輸的數據包不符合TNS通信協議,將傳輸的數據包舍棄;
其中,所述TNS通信協議是Oracle數據庫通信的協議,是TCP/IP協議的應用層數據協議;TNS通信協議中包括協議頭,協議頭由8個字節組成,依次為2字節的長度、2字節的校驗、1字節的包類型、1字節的保留字節、2字節的頭校驗;
(2)利用壓縮信息定位及內容提取器,確定步驟(1)識別出的數據包中的記錄是否被壓縮,實現壓縮信息的定位,并對定位出的壓縮信息進行提取;
壓縮信息定位的具體方法為:根據TTC協議,從通過數據庫類型識別定位器選擇出的數據包中,尋找TTC協議頭是0x15的位置,若沒有找到0x15的TTC協議頭,則舍棄;若找到0x15的TTC協議頭,則說明TTC協議頭之后的數據內容是壓縮相關信息,實現壓縮信息定位;
壓縮信息內容提取器具體方法為:根據壓縮信息定位器找到的位置,提取TTC協議頭為0x15之后的兩個字節的數據,這兩個字節的內容的間接表示下面壓縮標識信息的長度,長度值設為X;壓縮標識信息的長度計算方法如下:X除以8取整,得到的值設為Z,如X除8有余數則壓縮標識信息的長度為Z+1個字節組成,如X除8沒有余數則壓縮標識信息的長度為Z個字節組成;
所述壓縮標識信息的具體格式:1字節(8比特)最多能存放結果集1行中8列內容的壓縮標識信息(若1行有超過8列的內容,則增加字節存放其他列的壓縮標識信息),即1比特能用來表示結果集1行中1列內容是否被壓縮;若比特值為1,則表示對應數據沒有被壓縮;若比特值為0,則表示對應數據被壓縮;
其中,Oracle數據庫傳輸的數據包采用的是TNS通信協議,TNS通信協議內部包含TTC協議,所述TTC協議頭由1個字節組成,TTC協議頭的值用于表示TTC協議頭之后的數據包含的內容(如TTC協議頭是0x15,其后內容是壓縮標識信息);
結果集是執行SQL語句(主要是select語句)返回的內容,結果集是由行和列構成的一張二維表格,一行數據表示一條完整的記錄,一條記錄的TTC協議頭是0x07,且根據TNS通信協議規定,結果集的第一條記錄不存在壓縮信息;一條記錄的還原要依據壓縮信息來還原;
(3)根據TTC協議,利用結果集信息定位器,從步驟(1)中通過數據庫類型識別定位器識別出的數據包中,找到TTC協議頭是0x07的位置,實現結果集信息的定位;然后內容還原器根據結果集信息定位器定位出的位置,提取結果集信息,具體提取方法為:結合壓縮信息定位及內容提取器對數據包進行逐條定位,若某列的壓縮信息為1(壓縮信息定位器及內容提取器提取的壓縮信息),則該列內容沒有被壓縮,說明結果集信息定位器之后的內容有這列的信息數據,則提取這列內容;若某列的壓縮信息為0(壓縮信息定位器及內容提取器提取的壓縮信息),則該列內容被壓縮,說明結果集信息定位器之后的內容沒有這列的信息數據,則將上一條記錄的對應列作為這列的信息;
(4)如果結果集的記錄還沒提取完,判斷結果集的記錄提取完成依據是:TTC協議頭是0x04的內容部分含有no data found字樣;依次重復步驟(2)和步驟(3);
(5)利用輸出結果集系統,把結果集的記錄逐條組裝成二維表格,并進行輸出。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州安恒信息技術有限公司,未經杭州安恒信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410381264.6/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





