專利名稱:用動(dòng)態(tài)表名優(yōu)化超大數(shù)據(jù)量處理能力的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件設(shè)計(jì),特別是使用中小型數(shù)據(jù)庫(kù)系統(tǒng)處理超大數(shù)據(jù)量的應(yīng) 用軟件設(shè)計(jì)。
背景技術(shù):
中小型數(shù)據(jù)庫(kù)系統(tǒng)具有價(jià)格低廉、布署容易等優(yōu)點(diǎn),被廣泛應(yīng)用。但是, 在處理十萬(wàn)行以上的超大數(shù)據(jù)量時(shí),中小型數(shù)據(jù)庫(kù)的性能明顯下降,甚至能導(dǎo) 致系統(tǒng)崩潰而無(wú)法繼續(xù)運(yùn)行。
通常,中小型數(shù)據(jù)庫(kù)應(yīng)用軟件設(shè)計(jì)時(shí),對(duì)表的的劃分以內(nèi)容或功能為標(biāo)準(zhǔn), 個(gè)別表數(shù)據(jù)量很大時(shí),也只能依靠中小型數(shù)據(jù)庫(kù)的處理能力,無(wú)其他方法可以 優(yōu)化超大數(shù)據(jù)量的處理能力。
少數(shù)中小型數(shù)據(jù)庫(kù)應(yīng)用軟件的設(shè)計(jì),按數(shù)據(jù)的時(shí)間特征對(duì)數(shù)據(jù)庫(kù)進(jìn)行劃分, 不同時(shí)間段的數(shù)據(jù)庫(kù)具有名稱、結(jié)構(gòu)、功能相同的表。例如,部分財(cái)務(wù)軟件將 每年的數(shù)據(jù)做為一個(gè)數(shù)據(jù)庫(kù)進(jìn)行劃分。但這種設(shè)計(jì)也限制了數(shù)據(jù)的處理范圍, 即一次處理只能在一個(gè)數(shù)據(jù)庫(kù)內(nèi)完成。例如,部分財(cái)務(wù)軟件每次只能登錄一個(gè) 年度,處理一個(gè)年度內(nèi)的數(shù)據(jù)。這種設(shè)計(jì)雖然在一定程度上能夠避免數(shù)據(jù)量不 斷增長(zhǎng)會(huì)形成超大數(shù)據(jù)量的情況,部分地分散了數(shù)據(jù)處理能力的壓力,但是會(huì) 產(chǎn)生大量的數(shù)據(jù)冗余,并因限制數(shù)據(jù)處理范圍而導(dǎo)致軟件功能不能完整實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的主要目的是針對(duì)應(yīng)用中小型數(shù)據(jù)庫(kù)處理十萬(wàn)行以上的超大數(shù)據(jù)量 的軟件設(shè)計(jì),提出的一種用動(dòng)態(tài)表名來(lái)優(yōu)化中小型數(shù)據(jù)庫(kù)處理能力的方法。
本發(fā)明的目的是這樣實(shí)現(xiàn)的對(duì)超大數(shù)據(jù)量分成多個(gè)表進(jìn)行存儲(chǔ)及處理, 通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定 目標(biāo)表的數(shù)據(jù),達(dá)到優(yōu)化超大數(shù)據(jù)量處理能力的目的。
所述的對(duì)超大數(shù)據(jù)量分成多個(gè)表進(jìn)行存儲(chǔ)及處理,包括對(duì)超大數(shù)據(jù)量的劃 分、存儲(chǔ)所用多個(gè)表的命名規(guī)則。所述的超大數(shù)據(jù)量的劃分,至少可以有以下三種方式或其組合
1、 按固定時(shí)間間隔進(jìn)行劃分,通常以日、周、月、年來(lái)劃分。
2、 按自動(dòng)序列標(biāo)識(shí)的固定間隔進(jìn)行劃分。
3、 按某一列值進(jìn)行劃分。
所述的存儲(chǔ)所用多個(gè)表的命名規(guī)則,可以分為前后兩部分。前部分是特征 性命名部分,可適用軟件設(shè)計(jì)時(shí)所遵從的一般命名規(guī)則或特別約定的命名規(guī)則。 后部分是序列性命名部分,應(yīng)為可與數(shù)據(jù)劃分相匹配的一固定長(zhǎng)度的數(shù)字型字 符串或其他方式構(gòu)成。后部分可根據(jù)應(yīng)用習(xí)慣置前或置中。
所述的通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,可以是一個(gè)實(shí)際存在的表, 也可以用一種相對(duì)簡(jiǎn)單的規(guī)則來(lái)替代實(shí)際存在的表。
所述的通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,是指在對(duì)數(shù)據(jù)進(jìn)行查詢、插 入、更新、刪除處理時(shí),可以用指定劃分標(biāo)識(shí)通過(guò)在指針對(duì)照表里進(jìn)行比對(duì)來(lái) 確定指定數(shù)據(jù)行所存儲(chǔ)的表名。如果是按自動(dòng)序列標(biāo)識(shí)的固定間隔進(jìn)行劃分的, 且是執(zhí)行插入操作時(shí),則需要有一種預(yù)處理機(jī)制確定最后一個(gè)表名,即插入數(shù) 據(jù)所存儲(chǔ)的表名。
所述的以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定目標(biāo)表的數(shù)據(jù),包括動(dòng)態(tài)表 名方法和處理不確定目標(biāo)表數(shù)據(jù)的方法。
所述的動(dòng)態(tài)表名是指程序中使用一變量表名,用動(dòng)態(tài)執(zhí)行語(yǔ)句或其他方式 來(lái)替換為實(shí)際的表名的處理方法。
所述的處理不確定目標(biāo)表數(shù)據(jù)的方法,是指因?yàn)閷?duì)數(shù)據(jù)進(jìn)行分表處理,目 標(biāo)結(jié)果集可能跨表存儲(chǔ),所以在有必要的情況下需要對(duì)多個(gè)表進(jìn)行檢索和處理。 通常使用循環(huán)處理和臨時(shí)表的方法進(jìn)行處理。
所述的在有必要的情況下是指通過(guò)指針對(duì)照表所定位出的數(shù)據(jù)不在同一個(gè) 表內(nèi)的情況。
所述的使用循環(huán)處理的方法是指使用同樣的語(yǔ)句在已經(jīng)定位數(shù)據(jù)所在的表 中進(jìn)行同樣的處理操作。
所述的使用臨時(shí)表的方法是指如果需要對(duì)結(jié)果集進(jìn)行進(jìn)一步的加工處理 時(shí),可將循環(huán)處理方法每次所產(chǎn)生的結(jié)果輸入到同一臨時(shí)表中,再對(duì)臨時(shí)表的 數(shù)據(jù)進(jìn)行進(jìn)一步的加工處理。
本發(fā)明能夠在中小型數(shù)據(jù)庫(kù)上實(shí)現(xiàn)與大型數(shù)據(jù)庫(kù)相當(dāng)?shù)某髷?shù)據(jù)量的處理能力。
附圖為本發(fā)明一個(gè)簡(jiǎn)化實(shí)例的流程圖。
具體實(shí)施例方式
參見(jiàn)附圖,我們將以一簡(jiǎn)化實(shí)例來(lái)說(shuō)明本發(fā)明的具體實(shí)施方式
。
步驟一,確定要處理的數(shù)據(jù)。要處理的數(shù)據(jù)必須包括指針對(duì)照表所需的指 定劃分標(biāo)識(shí)。如果按自動(dòng)序列標(biāo)識(shí)的固定間隔進(jìn)行劃分的表,且是執(zhí)行插入操 作時(shí),則不需要。
步驟二,定位數(shù)據(jù)所在的表。用指定劃分標(biāo)識(shí)通過(guò)在指針對(duì)照表里進(jìn)行比 對(duì)來(lái)確定指定數(shù)據(jù)行所存儲(chǔ)的表名。所得到的表可能是一個(gè),也可能是多個(gè), 如果是多個(gè)表,就需要循環(huán)進(jìn)行處理。
步驟三,在數(shù)據(jù)所在的表中篩選出需要處理的數(shù)據(jù)行。如果是多個(gè)表,就 需要循環(huán)進(jìn)行篩選??蓪⒑Y選出的結(jié)果存儲(chǔ)于臨時(shí)表中,以便后續(xù)處理。
步驟四,進(jìn)行處理。如果是多個(gè)表,就需要循環(huán)進(jìn)行處理。
權(quán)利要求
1、一種用動(dòng)態(tài)表名優(yōu)化超大數(shù)據(jù)量處理能力的方法,其特征在于對(duì)超大數(shù)據(jù)量分成多個(gè)表進(jìn)行存儲(chǔ)及處理,通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定目標(biāo)表的數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的對(duì)超大數(shù)據(jù)量分成多個(gè)表進(jìn)行存儲(chǔ)及處理,其特 征在于對(duì)超大數(shù)據(jù)量的劃分至少可以有以下三種方式或其組合a、 按固定時(shí)間間隔進(jìn)行劃分,通常以日、周、月、年來(lái)劃分。b、 按自動(dòng)序列標(biāo)識(shí)的固定間隔進(jìn)行劃分。 C、按某一列值進(jìn)行劃分。
3、 根據(jù)權(quán)利要求1所述的對(duì)超大數(shù)據(jù)量分成多個(gè)表進(jìn)行存儲(chǔ)及處理,其特 征在于存儲(chǔ)所用多個(gè)表的命名規(guī)則,前部分是特征性命名部分,可適用軟件 設(shè)計(jì)時(shí)所遵從的一般命名規(guī)則或特別約定的命名規(guī)則。后部分是序列性命名部 分,應(yīng)為可與數(shù)據(jù)劃分相匹配的一固定長(zhǎng)度的數(shù)字型字符串或其他方式構(gòu)成。后部分可根據(jù)應(yīng)用習(xí)慣置前或置中。
4、 根據(jù)權(quán)利要求1所述的通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,其特征在 于可以是一個(gè)實(shí)際存在的表,也可以用一種相對(duì)簡(jiǎn)單的規(guī)則來(lái)替代實(shí)際存在 的表。
5、 根據(jù)權(quán)利要求1所述的通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,其特征在 于在對(duì)數(shù)據(jù)進(jìn)行查詢、插入、更新、刪除處理時(shí),可以用指定劃分標(biāo)識(shí)通過(guò) 在指針對(duì)照表里進(jìn)行比對(duì)來(lái)確定指定數(shù)據(jù)行所存儲(chǔ)的表名。如果是按自動(dòng)序列 標(biāo)識(shí)的固定間隔進(jìn)行劃分的,且是執(zhí)行插入操作時(shí),則需要有一種預(yù)處理機(jī)制 確定最后一個(gè)表名,即插入數(shù)據(jù)所存儲(chǔ)的表名。
6、 根據(jù)權(quán)利要求1所述的以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定目標(biāo)表的 數(shù)據(jù),其特征在于程序中使用一變量表名,用動(dòng)態(tài)執(zhí)行語(yǔ)句或其他方式來(lái)替 換為實(shí)際的表名。
7、 根據(jù)權(quán)利要求1所述的以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定目標(biāo)表的 數(shù)據(jù),其特征在于如果目標(biāo)結(jié)果集跨表存儲(chǔ),則使用同樣的語(yǔ)句在已經(jīng)定位 數(shù)據(jù)所在的表中進(jìn)行同樣的處理操作。
8、 根據(jù)權(quán)利要求1所述的以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定目標(biāo)表的 數(shù)據(jù),其特征在于可將循環(huán)處理方法每次所產(chǎn)生的結(jié)果輸入到同一臨時(shí)表中, 再對(duì)臨時(shí)表的數(shù)據(jù)進(jìn)行進(jìn)一步的加工處理。
全文摘要
本發(fā)明為用動(dòng)態(tài)表名優(yōu)化超大數(shù)據(jù)量處理能力的方法。該方法的主要特征是將超大數(shù)據(jù)量分成多個(gè)表進(jìn)行存儲(chǔ)及處理,通過(guò)指針對(duì)照表來(lái)定位數(shù)據(jù)所在的表,以動(dòng)態(tài)表名的方法實(shí)現(xiàn)程序處理不確定目標(biāo)表的數(shù)據(jù),達(dá)到優(yōu)化超大數(shù)據(jù)量處理能力的目的。本發(fā)明能夠在中小型數(shù)據(jù)庫(kù)上實(shí)現(xiàn)與大型數(shù)據(jù)庫(kù)相當(dāng)?shù)某髷?shù)據(jù)量的處理能力。
文檔編號(hào)G06F17/30GK101388009SQ20071012160
公開(kāi)日2009年3月18日 申請(qǐng)日期2007年9月11日 優(yōu)先權(quán)日2007年9月11日
發(fā)明者董為卿, 董鵬卿 申請(qǐng)人:北京思軟科技有限公司