欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于數(shù)據(jù)傳送的快速串行化的制作方法_3

文檔序號:9922050閱讀:來源:國知局
的介質(zhì)比主存儲器慢,例如,當(dāng)針對網(wǎng)絡(luò)傳送或硬盤傳送來執(zhí)行串行化時,則附加 時間是可忽略的。
[0067] 圖3A到圖3B是示出根據(jù)實(shí)現(xiàn)的分析處理的方法300的流程圖。為清楚起見,下面的 描述在圖1到圖2和圖4到圖11的上下文中一般性地描述方法300。然而,應(yīng)該理解的是,方法 300可以例如,通過任何其它合適的系統(tǒng)、環(huán)境、軟件和硬件、或系統(tǒng)、環(huán)境、軟件和硬件的適 當(dāng)組合來執(zhí)行。在一些實(shí)現(xiàn)中,方法300的各個步驟可以并行、組合、循環(huán)和/或以任何順序 來運(yùn)行。
[0068] 在一些實(shí)現(xiàn)中,源數(shù)據(jù)庫中的數(shù)據(jù)被分析以確定一個或多個串行化參數(shù)。這些串 行化參數(shù)可以包括重復(fù)計數(shù)器、復(fù)制計數(shù)器并且變量類型。這些串行化參數(shù)還可以包括數(shù) 據(jù)的最小值、最大值和值集合。在一些情況下,分析處理可以通過在串行化之前讀出數(shù)據(jù)一 次來執(zhí)行。
[0069]在302,可以得到第一列。在一些情況下,列的串行化參數(shù)可以被初始化為零。方法 300從302進(jìn)行到304,在其中可以確定第一列的下一行中的數(shù)據(jù)是否具有與上一行中的數(shù) 據(jù)相等的值。如果下一行中的數(shù)據(jù)具有與上一行中的數(shù)據(jù)相同的值,則方法300從304進(jìn)行 到306,在其中列的復(fù)制計數(shù)器可以增加1。方法300從306進(jìn)行到308。如果下一行中的數(shù)據(jù) 具有與上一行中的數(shù)據(jù)不同的值,則方法300從304進(jìn)行到308。
[0070] 在308,可以將值集合中的值的數(shù)目與值集合的預(yù)定限制進(jìn)行比較。在一些情況 下,值集合的預(yù)定限制可以表示可以存儲在列的值集合中的不同的值的最大數(shù)目。如果值 集合中的值的數(shù)目大于或等于值集合中的預(yù)定限制,則方法300從308進(jìn)行到320。如果值集 合中的值的數(shù)目小于值集合的預(yù)定限制,則方法300從308進(jìn)行到310,在其中可以確定該值 是否已經(jīng)被存儲在值集合中以及該值集合是否是滿的。如果值集合不是滿的而且該值尚未 被存儲在值集合中,則方法300進(jìn)行到312。在312,該值可以被存儲在值集合中。在一些實(shí)現(xiàn) 中,重復(fù)計數(shù)器可以增加1。在一些情況下,重復(fù)計數(shù)器可以在該值等于上一值的時候增加 1。方法300從312進(jìn)行到320。如果值集合是滿的,或者如果該值已經(jīng)被存儲在值集合中,則 方法300從310進(jìn)行到320。
[0071] 在320,可以確定數(shù)據(jù)的變量類型。在一些情況下,數(shù)據(jù)的變量類型可以是字符、整 數(shù)或其他類型。如果數(shù)據(jù)是字符,則方法300從320進(jìn)行到322。方法300從322進(jìn)行到330。在 330,可以確定字符的編碼方案。編碼方案可以是Unicode系統(tǒng)或非Unicode系統(tǒng)。如果編碼 方案是Unicode系統(tǒng),則可以對非ASCII字符的數(shù)目進(jìn)行計數(shù)。另外,可以對結(jié)尾空格的數(shù)目 進(jìn)行計數(shù)。方法300從330進(jìn)行到334。
[0072] 如果數(shù)據(jù)是整數(shù),則方法300從320進(jìn)行到324。方法300從324進(jìn)行到332,在其中可 以計算最小和最大值。方法300從324進(jìn)行到334。如果數(shù)據(jù)不是字符或整數(shù),則方法300從 320進(jìn)行到326。方法300從326進(jìn)行到334。
[0073] 在334,可以確定列中是否有更多的行。如果列中有更多的行,則方法300從334進(jìn) 行到336,在其中可以得到下一行中的數(shù)據(jù)。方法300從336進(jìn)行到304,在其中可以將下一行 中的數(shù)據(jù)值與上一行中的數(shù)據(jù)值進(jìn)行比較。如果列中沒有更多的行,則方法300從334進(jìn)行 到338,在其中可以確定源數(shù)據(jù)庫中是否有更多的列。如果源數(shù)據(jù)庫中有更多的列,則方法 300從338進(jìn)行到340,在其中可以得到下一列中的數(shù)據(jù)。方法300從340進(jìn)行到304。如果在源 數(shù)據(jù)庫中沒有更多的列,則方法300從338進(jìn)行到342,在其中確定串行化方案。圖4及相關(guān)聯(lián) 的描述提供關(guān)于確定串行化方案的處理的更多細(xì)節(jié)。在342之后,方法300停止。
[0074]在一些情況下,串行化方案可以依賴于數(shù)據(jù)類型(如時間)。在這些或其它情況下, 上述分析處理可以被跳過。在一些情況下,數(shù)據(jù)已經(jīng)在檢查正確性之前被預(yù)先讀出一次。在 這些或其它情況下,可以將串行化參數(shù)的確定添加到用于正確性的檢查例程,以減少分析 的時間。
[0075] 在一些情況下,分析處理可以針對一個或多個列跳過,因?yàn)橐呀?jīng)從軟件產(chǎn)品的運(yùn) 行時系統(tǒng)得知數(shù)據(jù)的相關(guān)信息。例如,運(yùn)行時系統(tǒng)可以在創(chuàng)建數(shù)據(jù)時存儲像最小值、最大 值、值集合這樣的信息。運(yùn)行時系統(tǒng)也可以參考數(shù)據(jù)字典,其可以定義數(shù)據(jù)的限制、允許的 值、和其他約束。
[0076]圖4是示出根據(jù)實(shí)現(xiàn)的用于確定串行化方案的處理的方法400的流程圖。為清楚起 見,下面的描述在圖1到圖3和圖5到圖11的上下文中一般性地描述方法400。然而,應(yīng)該理解 的是,方法400可以例如,通過任何其它合適的系統(tǒng)、環(huán)境、軟件和硬件、或系統(tǒng)、環(huán)境、軟件 和硬件的適當(dāng)組合來執(zhí)行。在一些實(shí)現(xiàn)中,方法400的各個步驟可以并行、組合、循環(huán)和/或 以任何順序來運(yùn)行。
[0077] 在一些情況下,串行化方案可以針對源數(shù)據(jù)庫中的每一列來確定。在一些情況下, 串行化方案可以基于在分析處理期間確定的串行化參數(shù)來確定??商娲鼗蚪M合地,串行 化方案可以基于由運(yùn)行時系統(tǒng)收集的相關(guān)信息來確定。在一些情況下,可以針對一列確定 多于一個的串行化方案。例如,可以針對一列確定數(shù)據(jù)串行化方案和變量串行化方案。
[0078] 在402,可以將重復(fù)計數(shù)器與預(yù)定限制進(jìn)行比較。在一些情況下,重復(fù)計數(shù)器可以 表示列的值集合中的值的數(shù)目。如果重復(fù)計數(shù)器小于預(yù)定限制,則方法400從402進(jìn)行到 404,在其中可以將重復(fù)方案確定為數(shù)據(jù)串行化方案。圖9到圖10及相關(guān)聯(lián)的描述提供關(guān)于 重復(fù)方案的操作的更多細(xì)節(jié)。方法400從404進(jìn)行到410。
[0079] 如果值集合中的重復(fù)計數(shù)器大于或等于預(yù)定限制N,則方法400從402進(jìn)行到406。 在406,可以將復(fù)制計數(shù)器與預(yù)定閾值進(jìn)行比較。如果復(fù)制計數(shù)器大于預(yù)定閾值,則方法400 從406進(jìn)行到408,在其中可以將復(fù)制方案確定為數(shù)據(jù)串行化方案。圖7到圖8及相關(guān)描述提 供關(guān)于復(fù)制方案的操作的更多細(xì)節(jié)。方法400從408進(jìn)行到410。如果復(fù)制計數(shù)器小于或等于 預(yù)定閾值,則方法400從406進(jìn)行到410。
[0080]在410,可以針對列確定變量串行化方案。在一些情況下,變量串行化方案可以基 于列的變量類型來確定。如果變量類型是字符,則方法400從410進(jìn)行到420。方法400從420 進(jìn)行到430。在430,可以將字符方案確定為變量串行化方案。在一些情況下,如果編碼方案 是Unicode系統(tǒng),則將非ASCII字符的計數(shù)與預(yù)定閾值進(jìn)行比較。如果非ASCII字符的計數(shù)小 于預(yù)定閾值,則可以使用UTF8。否則,可以使用UTF16。在一些情況下,在結(jié)尾空格計數(shù)計數(shù) 器大于閾值的情況下,可以使用結(jié)尾空格減少。在430之后,方法400停止。
[0081 ] 如果變量類型是整數(shù),則方法400從410進(jìn)行到422。方法400從422進(jìn)行到432。在 432,可以將整數(shù)方案確定為變量串行化方案。圖11及相關(guān)聯(lián)的描述提供關(guān)于字符方案和整 數(shù)方案的操作的更多細(xì)節(jié)。在432之后,方法400停止。
[0082] 如果變量類型既不是字符也不是整數(shù),則方法400從410進(jìn)行到424。在424,可以確 定其他串彳丁化方案。在424之后,方法400停止。
[0083]圖5是示出根據(jù)實(shí)現(xiàn)的串行化處理的方法500的流程圖。為清楚起見,下面的描述 在圖1到圖4和圖6到圖11的上下文中一般性地描述方法500。然而,應(yīng)該理解的是,方法500 可以例如,通過任何其它合適的系統(tǒng)、環(huán)境、軟件和硬件、或系統(tǒng)、環(huán)境、軟件和硬件的適當(dāng) 組合來執(zhí)行。在一些實(shí)現(xiàn)中,方法500的各個步驟可以并行、組合、循環(huán)和/或以任何順序來 運(yùn)行。
[0084] 在502,源數(shù)據(jù)庫的行數(shù)可以被寫入傳送介質(zhì)。方法500從502進(jìn)行到504。在504,可 以確定下一列的可用性。在一些情況下,源數(shù)據(jù)庫的列數(shù)和列的類型可以從列的服務(wù)元數(shù) 據(jù)來確定。在一些實(shí)現(xiàn)中,服務(wù)元數(shù)據(jù)可以包括列的數(shù)據(jù)類型、列偏移和/或列的長度。列偏 移可以指示列之間的對準(zhǔn)(alignment)字節(jié)。列的長度可以指示存儲在列中的數(shù)據(jù)量。如果 下一列是不可用的,則方法500在504之后停止。如果下一列是可用的,則方法500從504進(jìn)行 到506。在506,列的串行化方案可以被寫入傳送介質(zhì)。在一些情況下,串行化方案可以根據(jù) 圖3到圖4及相關(guān)聯(lián)的描述中所描述的過程來確定。方法500從506進(jìn)行到508,在其中串行化 可以根據(jù)串行化方案來執(zhí)行。圖7到圖11提供了關(guān)于串行化方案的操作的更多細(xì)節(jié)。方法 500從508進(jìn)行到504。方法500繼續(xù),直到源數(shù)據(jù)庫中的所有列都被串行化。
[0085]圖6是示出根據(jù)實(shí)現(xiàn)的解串行化處理的方法600的流程圖。為清楚起見,下面的描 述在圖1到圖5和圖7到圖11的上下文中一般性地描述了方法600。然而,應(yīng)該理解的是,方法 600可以例如,通過任何其它合適的系統(tǒng)、環(huán)境、軟件和硬件、或系統(tǒng)、環(huán)境、軟件和硬件的適 當(dāng)組合來執(zhí)行。在一些實(shí)現(xiàn)中,方法600的各個步驟可以并行、組合、循環(huán)和/或以任何順序 來運(yùn)行。
[0086] 在602,可以從傳送介質(zhì)讀出行的數(shù)目。方法600從602進(jìn)行到604。在604,可以在目 標(biāo)數(shù)據(jù)庫中創(chuàng)建空表。方法600從604進(jìn)行到606。在606,可以確定下一列的可用性。在一些 情況下,可以從列的服務(wù)元數(shù)據(jù)確定列數(shù)和列的類型。如果下一列是不可用的,方法600在 606之后停止。如果下一列是可用的,則方法600從606進(jìn)行到608。在608,可以從傳送介質(zhì)讀 出列的串行化方案。方法600從608進(jìn)行到610,在其中解串行化方案可以根據(jù)串行化方案來 執(zhí)行。圖7到圖11提供了關(guān)于解串行化方案的操作的更多細(xì)節(jié)。方法600從610進(jìn)行到606。方 法 600繼續(xù)進(jìn)行,直到所有的列在目標(biāo)數(shù)據(jù)庫中被解串行化。
[0087]圖7是示出根據(jù)實(shí)現(xiàn)的基于復(fù)制方案的串行化處理的方法700的流程圖。為清楚起 見,下面的描述在圖1到圖6和圖8到圖11的上下文中一般性地描述了方法700。然而,應(yīng)該理 解的是,方法700可以例如,通過任何其它合適的系統(tǒng)、環(huán)境、軟件和硬件、或系統(tǒng)、環(huán)境、軟 件和硬件的適當(dāng)組合來執(zhí)行。在一些實(shí)現(xiàn)中,方法700的各個步驟可以并行、組合、循環(huán)和/ 或以任何順序來運(yùn)行。
[0088] 在一些情況下,在業(yè)務(wù)數(shù)據(jù)中,數(shù)據(jù)值的隨后復(fù)制(subsequent replication)是 常見的。數(shù)據(jù)值的隨后復(fù)制是指連續(xù)數(shù)據(jù)項(xiàng)的值是相同的。當(dāng)分層數(shù)據(jù)被以扁平表示存儲 時,隨后復(fù)制可以經(jīng)常發(fā)生。在一些情況下,復(fù)制方案可以通過在隨后復(fù)制的數(shù)目的計數(shù)器 之前或之后存儲數(shù)據(jù)值一次,來利用數(shù)據(jù)值的隨后復(fù)制。表3表示源數(shù)據(jù)庫中的表的例子。

[0090] 表3:用于復(fù)制方案的源數(shù)據(jù)庫中的表
[0091] 在表3的第二列中,位置"Berlin"和"New York"是數(shù)據(jù)值的隨后復(fù)制的例子。在一 些實(shí)現(xiàn)中,第二列可以使用復(fù)制方案進(jìn)行串行化。表4表示使用復(fù)制方案串行化的第二列的 例子。
[0093]表4:使用復(fù)制方案的串行化的列
[0094] 在一些情況下,列可以不具有或者有很少的隨后復(fù)制。在這些情況下,數(shù)據(jù)量會由 于附加計數(shù)器而增加。因此,在一些
當(dāng)前第3頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
镇江市| 师宗县| 济宁市| 韩城市| 蒙山县| 额济纳旗| 天门市| 什邡市| 九寨沟县| 枣强县| 宜君县| 连州市| 望江县| 静海县| 永泰县| 海南省| 铅山县| 三穗县| 绥宁县| 永寿县| 德江县| 临颍县| 汕尾市| 旌德县| 合肥市| 富锦市| 庆阳市| 鲁山县| 德安县| 宜春市| 云林县| 吴川市| 左权县| 丹棱县| 吐鲁番市| 昆山市| 邯郸县| 噶尔县| 博兴县| 抚顺县| 全州县|