專利名稱:基于文件系統(tǒng)緩存的數(shù)據(jù)加速查詢方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機(jī)應(yīng)用技術(shù)領(lǐng)域通訊技術(shù)領(lǐng)域,具體地說是一種電信査詢 系統(tǒng)中的數(shù)據(jù)加速査詢方法。適用于針對歷史性數(shù)據(jù),存儲后不變化,存在大量重 復(fù)査詢的情況,進(jìn)行的基于文件系統(tǒng)緩存的數(shù)據(jù)加速查詢。
2.
背景技術(shù):
社會的不斷發(fā)展,企業(yè)進(jìn)行越來越多的支撐系統(tǒng)建設(shè),信息共享變得尤為重要, 信息的共享使得軟件系統(tǒng)的訪問用戶增多,但是隨著用戶的不斷增多,數(shù)據(jù)的査 詢量必然會大大增加,而系統(tǒng)就會越來越慢,從而需要投入更多的資金進(jìn)行設(shè)備 和軟件的升級。.造成這樣的原因是,用戶的每次査詢請求,系統(tǒng)都是通過再數(shù)據(jù) 庫中進(jìn)行相應(yīng)的査找,數(shù)據(jù)計算等操作,然后將結(jié)果返回。用戶的査詢量增加, 系統(tǒng)的數(shù)據(jù)處理量也隨之線性增加。
尤其是在電信網(wǎng)領(lǐng)域中,有很多支撐系統(tǒng),例如計費(fèi)運(yùn)營,網(wǎng)絡(luò)管理系統(tǒng),數(shù) 據(jù)基本上都是歷史性的數(shù)據(jù),數(shù)據(jù)值不會發(fā)生變化。因此針對這類數(shù)據(jù)只要査詢 條件不變,査詢的結(jié)果總是一樣的。而且數(shù)據(jù)量非常大,大多數(shù)的查詢可能需要 進(jìn)行大數(shù)據(jù)量查詢和計算,才能夠得出,處理這樣的査詢本身就需要很長的時間。 這樣使得重復(fù)的査詢請求在數(shù)據(jù)庫中査詢和處理了多遍,而結(jié)果卻是一樣的。同 樣隨著用戶的不斷增多,數(shù)據(jù)的査詢量增加,這種重復(fù)性的查詢也會隨之增多。 為此需要投入更多的資金來進(jìn)行軟件和硬件的升級,來提高系統(tǒng)的處理能力,減 少用戶的等待的時長,而對大數(shù)據(jù)量查詢提速也是非常有限的。
3.
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有系統(tǒng)的應(yīng)用情況,歷史數(shù)據(jù)不變化和相同數(shù)據(jù)多次查詢的特 點(diǎn),提供一種能夠基于文件系統(tǒng)緩存的數(shù)據(jù)加速査詢方法,通過將歷史査詢數(shù)據(jù) 保存,利用歷史査詢數(shù)據(jù)作為査詢緩存數(shù)據(jù),進(jìn)行的加速査詢方法。從而能夠避 免重復(fù)査詢請求,系統(tǒng)處理多次,使系統(tǒng)不會隨著用戶的査詢量增加,數(shù)據(jù)處理 量也隨之線性增加。而且還能夠利用歷史結(jié)果數(shù)據(jù),加速數(shù)據(jù)的查詢,提高了系 統(tǒng)運(yùn)行的效率,降低用戶的平均響應(yīng)時間,減少因用戶的使用增加等原因,而進(jìn) 行的軟件和硬件升級,節(jié)約大量資金。
本發(fā)明為解決其技術(shù)問題,所采用的技術(shù)方案如圖l所示。在系統(tǒng)接收用戶査 詢請求之后,先轉(zhuǎn)到査詢分析器,査詢分析器的主要作用是分析査詢條件,規(guī)一
化查詢條件等,然后經(jīng)過文件緩沖器,分析現(xiàn)有的結(jié)果數(shù)據(jù)文件中是否存在滿足 當(dāng)前査詢需求,沒有則從數(shù)據(jù)庫中進(jìn)行査詢,并將最終的結(jié)果文件返回給數(shù)據(jù)處 理器,數(shù)據(jù)處理器按照最終的查詢要求,對數(shù)據(jù)進(jìn)行過濾、排序等處理,將結(jié)果 文件返回上層應(yīng)用系統(tǒng)。
按照上述描述的技術(shù)方案,具體的執(zhí)行步驟如圖2所示,說明如下 步驟1、分析査詢提交的査詢條件,將査詢條件分為數(shù)據(jù)庫運(yùn)算處理和數(shù)據(jù)處 理器處理的兩大部分。數(shù)據(jù)庫運(yùn)算處理主要是對數(shù)據(jù)的提取和邏輯計算部分的査 詢條件。數(shù)據(jù)處理器處理主要包括對結(jié)果數(shù)據(jù)的過濾和排序等操作。
步驟2、規(guī)一化査詢條件,將查詢條件統(tǒng)一成標(biāo)準(zhǔn)的査詢條件,避免某些査詢 描述上不同而實際上是相同情況。包括
1) 集合判斷合并,將小集合的條件轉(zhuǎn)換成大集合。例如査詢條件是査詢山東 的濟(jì)南、青島、濰坊等17個地市所有的數(shù)據(jù),而這17個地市的屬于山東省這個 集合,與査詢山東結(jié)果是一樣的,系統(tǒng)會先將這個查詢條件轉(zhuǎn)換為査詢山東這個 集合的數(shù)據(jù)。子集和全集的關(guān)系需要預(yù)先定義, 一般各個系統(tǒng)中都會存在表示對 應(yīng)關(guān)系的字典表,利用這個字典表就可以描繪出子集和全集的關(guān)系。
2) 査詢條件排序,將査詢條件按照固定順序進(jìn)行排列,采用字符的先后順序。
例如査詢濟(jì)南、青島、濰坊這樣一個地區(qū)條件順序的數(shù)據(jù),與查詢青島、濟(jì)南、 濰坊這樣一個地區(qū)條件順序的數(shù)據(jù),結(jié)果是一樣的,系統(tǒng)能夠進(jìn)行統(tǒng)一的順序排 歹lj,使其成一個相同的査詢條件。
步驟3、形成統(tǒng)一的查詢條件之后,送入到文件緩沖器中。文件緩沖器先找到
對應(yīng)的査詢實例(例如要查詢的報表)的歷史數(shù)據(jù)登記列表,再根據(jù)査詢條件再 登記列表中檢索滿足當(dāng)前條件的歷史數(shù)據(jù)文件。該索引列表記錄了該査詢實例歷 史數(shù)據(jù)的査詢條件,査詢時間,用戶,使用次數(shù)等信息。 檢索列表命中率的高低直接影響到加速的效果,因此為了提高査詢文件緩沖器
檢索數(shù)據(jù)文件的命中率,系統(tǒng)通過采用如下檢索方法
1) 從全集數(shù)據(jù)中獲取子集的數(shù)據(jù)。如果要査詢?nèi)舾蓚€子集,而這若干個子集 恰好屬于另外一個全集的一部分,系統(tǒng)將返回該數(shù)據(jù)文件。例如查詢濟(jì)南、青 島兩個地區(qū)的數(shù)據(jù),系統(tǒng)先査找是否有對應(yīng)這兩個地區(qū)的數(shù)據(jù),如果沒有再從全
省的數(shù)據(jù)集文件中査找,系統(tǒng)能夠利用全省的數(shù)據(jù)集進(jìn)行處理。
2) 部分子集査找。如果要查詢?nèi)舾蓚€子集,而這若干個子集只有部分被檢索
至U,那么系統(tǒng)會到步驟5,只生成沒有的部分子集。例如查詢濟(jì)南、青島兩個 地區(qū)的數(shù)據(jù),系統(tǒng)只找到濟(jì)南一個地區(qū)的數(shù)據(jù),同時也沒有全省的數(shù)據(jù),系統(tǒng)將 査詢條件轉(zhuǎn)化為只査詢青島,到數(shù)據(jù)庫中進(jìn)行査詢。
為了提高文件緩沖器檢索的高效性,降低檢索文件所消耗的時間,系統(tǒng)通過采 用如下方法,減少檢索量。
3) 采用按照査詢實例分目錄存貯,降低了檢索量。系統(tǒng)會自動的針對每一 個査詢實例(例如針對每一個報表),形成一個文件緩沖目錄,每一個目錄都有 一個索引列表。每次査詢只去檢索對應(yīng)的索引列表。
4) 超期歷史數(shù)據(jù)刪除。保證歷史的數(shù)據(jù)文件不至于過多,占用大量的存貯 空間,也會造成檢索文件造成過大,增大檢索的時間。同時過早的歷史數(shù)據(jù)對于 用戶的査詢來說,使用的頻率極低,沒有緩沖再次使用的意義。系統(tǒng)會將超過保 存周期和使用頻率低的文件刪除,從而減少文件緩沖列表的大小。
5) 査詢結(jié)果文件聚合。系統(tǒng)為了保證檢索的高效性,避免文件的過多,系
統(tǒng)會將多個子集文件合并成一個全集文件。例如將山東省17地區(qū)的各個子集文 件合并成為一個全省的數(shù)據(jù)文件。
步驟4、根據(jù)檢索返回的結(jié)果,判斷是否全部存在所要的數(shù)據(jù)文件,如果存在 轉(zhuǎn)到步驟8,否則轉(zhuǎn)到步驟5。
步驟5、將分析后的査詢條件在數(shù)據(jù)庫中査詢,生成所需要的數(shù)據(jù)文件,并存 放到對應(yīng)的數(shù)據(jù)目錄中。
步驟6、將生成的數(shù)據(jù)文件,登記到文件緩沖器的文件檢索列表中。
步驟7、返回需要的結(jié)果數(shù)據(jù)文件編號。
步驟8、根據(jù)返回的文件編號,獲取數(shù)據(jù)文件。
步驟9、數(shù)據(jù)處理器對數(shù)據(jù)返回的數(shù)據(jù)文件進(jìn)行處理,從結(jié)果文件中還原出需 要的查詢數(shù)據(jù)。并且將一些查詢條件,本來需要在數(shù)據(jù)庫的運(yùn)算轉(zhuǎn)移到數(shù)據(jù)處理 器處理,目的是為了提高對歷史數(shù)據(jù)文件再使用率,從而增加緩沖器的命中率。 包括
1) 選取査詢所需要的數(shù)據(jù)集合。從全集合中過濾出需要的子集數(shù)據(jù),例如從 全省數(shù)據(jù)集中,獲取濟(jì)南、青島的數(shù)據(jù)?;蛘邔⒍鄠€子集數(shù)據(jù)合并,例如將濟(jì)南、 青島兩個子集的數(shù)據(jù),合并成所需要的數(shù)據(jù)集。
2) 選取査詢所需要的顯示列。例如 一個結(jié)果數(shù)據(jù)文件中包含10列數(shù)據(jù),從
中過濾出需要的6列數(shù)據(jù)。
3) 結(jié)果排序。按照査詢的要求對結(jié)果數(shù)據(jù)排序。
步驟10、按照固定的存貯結(jié)構(gòu),將最終的結(jié)果數(shù)據(jù)返回給上層應(yīng)用,處理結(jié)束。 從上面具體處理過程可以看出,查詢的歷史結(jié)果數(shù)據(jù)被充分的利用在2次査詢
中,提高了文件系統(tǒng)緩存數(shù)據(jù)的命中率,査詢速度和系統(tǒng)處理能力上也會有很大
的提高,并且沒有改變用戶的操作行為。
4.有益效果
本査詢方法在不提高服務(wù)器處理能力的下,采用分析歷史查詢結(jié)果,避免每次 都査詢數(shù)據(jù)庫。遇到重復(fù)的査詢,通過是檢索文件登記列表,直接將歷史結(jié)果進(jìn) 行返回。同時提供了多種手段,提高檢索文件的命中率。而檢索數(shù)據(jù)文件消耗的 時間相對于査詢數(shù)據(jù)庫和數(shù)據(jù)處理的時間,可以忽略不計,而系統(tǒng)的運(yùn)算量非常 小。 一旦査詢被命中,用戶幾乎感覺不到等待的時間,大大降低數(shù)據(jù)庫和系統(tǒng)資 源的使用負(fù)荷,避免了用戶的查詢量增加,系統(tǒng)的數(shù)據(jù)處理量也隨之線性增加, 節(jié)約了因軟件和硬件的升級所需要的大量資金,提高了系統(tǒng)的處理能力。
基于文件系統(tǒng)緩存的數(shù)據(jù)加速査詢方法,具有的優(yōu)勢是
(1) 采用文件的方式進(jìn)行保存,存儲方式簡單,穩(wěn)定,不容易損壞。
(2) —個文件損壞或者丟失,不影響査詢系統(tǒng)的使用,系統(tǒng)健壯性比較高。
(3) 不采用內(nèi)存的方式存貯,在服務(wù)器出現(xiàn)異?;蛘咄蝗魂P(guān)機(jī)時,不會丟失 數(shù)據(jù)。而檢索硬盤和檢索內(nèi)存的速度差別,用戶幾乎感覺不到。
(4) 利用文件系統(tǒng),能夠提供比較的緩沖空間,可以保存比較多的緩沖數(shù)據(jù)。
5.
附圖1是本發(fā)明的工作原理框附圖2是具體處理步驟流程附圖3是一般性能査詢系統(tǒng)的處理過程示意附圖4是本發(fā)明的査詢系統(tǒng)處理過程示意圖。
6.
具體實施例方式
以電信領(lǐng)域綜合網(wǎng)絡(luò)管理的性能系統(tǒng)為例說明本發(fā)明的具體應(yīng)用。性能系統(tǒng)的 數(shù)據(jù)特點(diǎn)是都是歷史性的數(shù)據(jù),存儲以后的數(shù)據(jù)值不發(fā)生變化,而且數(shù)據(jù)量非常 的大, 一個普通的省級網(wǎng)管系統(tǒng)來說, 一天的數(shù)據(jù)量能夠達(dá)到10G左右。性能系 統(tǒng)屬于電信領(lǐng)域的一個重要的支撐平臺,要支持各個地市級子公司和省公司各個 方面人員的使用,因此訪問量也是非常大,必然造成大量的數(shù)據(jù)被重復(fù)處理。一 般報表的査詢系統(tǒng)處理步驟如圖3所示,利用本發(fā)明在報表系統(tǒng)上,使用該基于 文件系統(tǒng)緩存的數(shù)據(jù)加速査詢方法,修改為查詢步驟如圖4所示。先將査詢請求 轉(zhuǎn)發(fā)到文件緩沖器中,由文件緩沖器通過對查詢條件分析,數(shù)據(jù)獲取,數(shù)據(jù)處理 等過程,再返回用戶要査詢的結(jié)果集。從而提高系統(tǒng)的處理能力和效率,減少用 戶査詢的平均響應(yīng)時間。
實施例
例如針對性能系統(tǒng)的報表査詢,具體的執(zhí)行步驟如下
步驟l、用戶査詢報表A,從頁面上設(shè)置好要査詢的條件并提交查詢請求,査
詢條件例如日期是2006-11-21 10:00:00、 2006-11-21 20:00:00、 2006-11-21 17:00:00,范圍是所屬濟(jì)南所有的區(qū)縣、淄博、泰安,按照X列的降序進(jìn)行排列。
步驟2、將査詢請求轉(zhuǎn)發(fā)到査詢分析器,開始分析提交的査詢條件,將査詢分 為數(shù)據(jù)庫運(yùn)算處理和數(shù)據(jù)處理器處理的兩大部分。
數(shù)據(jù)庫運(yùn)算條件是日期是2006-11-21 10:00:00至U 2006-11-21 20:00:00, 范圍是濟(jì)南、泰安、淄博。
*數(shù)據(jù)處理器處理條件是按照X列的降序進(jìn)行排列。
步驟3、規(guī)一化査詢條件,將査詢條件統(tǒng)一成標(biāo)準(zhǔn)的查詢條件,避免某些査詢 描述上不同而實際上是相同情況。通過集合判斷方法,得出查詢所屬濟(jì)南所有的 區(qū)縣,與査詢地區(qū)等于濟(jì)南的査詢條件是一樣的,因此將査詢條件修改為査詢濟(jì) 南的數(shù)據(jù)。并對查詢條件按照字母先后順序進(jìn)行排序,最終數(shù)據(jù)庫運(yùn)算條件轉(zhuǎn)換 為日期是2006-11-21 10:00:00、 2006-11-21 17:00:00、 2006-11-21 20:00:00,范圍
是濟(jì)南、淄博、泰安。
步驟4、形成統(tǒng)一的查詢條件之后,送入到文件緩沖器中,文件緩沖器根據(jù)要 査詢報表A的ID,找到對應(yīng)的目錄下找到歷史數(shù)據(jù)登記列表,根據(jù)査詢條件檢索 登記列表中滿足當(dāng)前條件的歷史數(shù)據(jù)文件。例如査找結(jié)果為存在全省集合的 2006-11-21 10:00:00和2006-11-21 20:00:00的數(shù)據(jù)。
步驟5、根據(jù)檢索返回的結(jié)果,得出所需要的結(jié)果文件只有部分存在,缺少 2006-11-21 17:00:00的數(shù)據(jù),將査詢請求轉(zhuǎn)發(fā)。
步驟6、將分析后的查詢條件,在數(shù)據(jù)庫中查詢?nèi)掌谑?006-11-21 17:00:00, 范圍是濟(jì)南、淄博、泰安的數(shù)據(jù),生成標(biāo)準(zhǔn)格式的數(shù)據(jù)文件,并存放到對應(yīng)報 表A的數(shù)據(jù)緩沖目錄中。
步驟7、將生成的數(shù)據(jù)文件,登記到文件緩沖器的文件檢索列表中。登記的條 件為日期是2006-11-21 17:00:00,范圍是濟(jì)南、淄博、泰安。
步驟8、返回登記的結(jié)果數(shù)據(jù)文件編號。
步驟9、根據(jù)返回的文件編號,獲取數(shù)據(jù)文件。當(dāng)前得到的數(shù)據(jù)文件為全省 集合的2006-11-21 10:00:00、 2006-11-21 20:00:00數(shù)據(jù),和濟(jì)南、淄博、泰安的 2006-11-21 17:00:00數(shù)據(jù)。
步驟io、數(shù)據(jù)處理器對數(shù)據(jù)返回的數(shù)據(jù)文件進(jìn)行處理。從結(jié)果文件中過濾出需 要的數(shù)據(jù)集合,得到濟(jì)南、淄博、泰安的2006-11-21 10:00'.00、 2006-11-21 17:00:00、 2006-11-21 20:00:00數(shù)據(jù),然后按照X列的降序進(jìn)行排序。 一般來說查詢所選擇的 源數(shù)據(jù)量是比^^大的,處理出來的結(jié)果數(shù)據(jù)量是非常小的,因此對結(jié)果數(shù)據(jù)進(jìn)行 過濾和排列等操作,花費(fèi)的處理時間可以忽略。
步驟ll、按照固定的存貯結(jié)構(gòu),將最終的結(jié)果數(shù)據(jù)返回給上層應(yīng)用,進(jìn)行報表 展現(xiàn),反饋給用戶,處理結(jié)束。
根據(jù)上面描述的實例,可以看出采用本發(fā)明改造后的報表系統(tǒng),在沒有改變用 戶的操作行為下,系統(tǒng)的數(shù)據(jù)處理量變?yōu)樵瓉淼娜种?,響?yīng)速度基本可以到
達(dá)原來的3倍,自然的也提高了系統(tǒng)的處理能力。隨著用戶查詢量的不斷增加, 重復(fù)査詢率必然增大,在原有硬件的投資下,加速的效果會更加明顯。
綜上所述,基于文件系統(tǒng)緩存的網(wǎng)管性能數(shù)據(jù)加速査詢方法,適用于針對歷 史性數(shù)據(jù),存儲后不變化,大量重復(fù)查詢請求的情況,尤其是大型系統(tǒng)會獲得更
好的效果??梢詮V泛應(yīng)用于電信、銀行、醫(yī)療、教育、財務(wù)等領(lǐng)域,例如醫(yī)療 系統(tǒng)的病人病歷檔案分析,財務(wù)系統(tǒng)的歷史帳務(wù),公司運(yùn)營等方面的分析。
權(quán)利要求
1、基于文件系統(tǒng)緩存的數(shù)據(jù)加速查詢方法,其特征在于,在系統(tǒng)接收用戶查詢請求之后,先轉(zhuǎn)到查詢分析器,查詢分析器的主要作用是分析查詢條件,規(guī)一化查詢條件等,然后經(jīng)過文件緩沖器,分析現(xiàn)有的結(jié)果數(shù)據(jù)文件中是否存在滿足當(dāng)前查詢需求,沒有則從數(shù)據(jù)庫中進(jìn)行查詢,并將最終的結(jié)果文件返回給數(shù)據(jù)處理器,數(shù)據(jù)處理器按照最終的查詢要求,對數(shù)據(jù)進(jìn)行過濾、排序等處理,將結(jié)果文件返回上層應(yīng)用系統(tǒng),具體的執(zhí)行步驟如下步驟(1)、分析查詢提交的查詢條件,將查詢條件分為數(shù)據(jù)庫運(yùn)算處理和數(shù)據(jù)處理器處理的兩大部分,數(shù)據(jù)庫運(yùn)算處理主要是對數(shù)據(jù)的提取和邏輯計算部分的查詢條件,數(shù)據(jù)處理器處理主要包括對結(jié)果數(shù)據(jù)的過濾和排序等操作;步驟(2)、規(guī)一化查詢條件,將查詢條件統(tǒng)一成標(biāo)準(zhǔn)的查詢條件,避免某些查詢描述上不同而實際上是相同情況,規(guī)一化查詢包括1)集合判斷合并,將小集合的條件轉(zhuǎn)換成大集合,例如查詢條件是查詢山東的濟(jì)南、青島、濰坊等17個地市所有的數(shù)據(jù),而這17個地市的屬于山東省這個集合,與查詢山東結(jié)果是一樣的,系統(tǒng)會先將這個查詢條件轉(zhuǎn)換為查詢山東這個集合的數(shù)據(jù),子集和全集的關(guān)系需要預(yù)先定義,一般各個系統(tǒng)中都會存在表示對應(yīng)關(guān)系的字典表,利用這個字典表就可以描繪出子集和全集的關(guān)系;2)查詢條件排序,將查詢條件按照固定順序進(jìn)行排列,采用字符的先后順序,例如查詢濟(jì)南、青島、濰坊這樣一個地區(qū)條件順序的數(shù)據(jù),與查詢青島、濟(jì)南、濰坊這樣一個地區(qū)條件順序的數(shù)據(jù),結(jié)果是一樣的,系統(tǒng)能夠進(jìn)行統(tǒng)一的順序排列,使其成一個相同的查詢條件;步驟(3)形成統(tǒng)一的查詢條件之后,送入到文件緩沖器中,文件緩沖器先找到對應(yīng)的查詢實例,例如要查詢的報表的歷史數(shù)據(jù)登記列表,再根據(jù)查詢條件再登記列表中檢索滿足當(dāng)前條件的歷史數(shù)據(jù)文件,該索引列表記錄了該查詢實例歷史數(shù)據(jù)的查詢條件,查詢時間,用戶,使用次數(shù)等信息;檢索列表命中率的高低直接影響到加速的效果,因此為了提高查詢文件緩沖器檢索數(shù)據(jù)文件的命中率,系統(tǒng)通過采用如下檢索方法1)從全集數(shù)據(jù)中獲取子集的數(shù)據(jù),如果要查詢?nèi)舾蓚€子集,而這若干個子集恰好屬于另外一個全集的一部分,系統(tǒng)將返回該數(shù)據(jù)文件。例如查詢濟(jì)南、青島兩個地區(qū)的數(shù)據(jù),系統(tǒng)先查找是否有對應(yīng)這兩個地區(qū)的數(shù)據(jù),如果沒有再從全省的數(shù)據(jù)集文件中查找,系統(tǒng)能夠利用全省的數(shù)據(jù)集進(jìn)行處理;2)部分子集查找,如果要查詢?nèi)舾蓚€子集,而這若干個子集只有部分被檢索到,那么系統(tǒng)會到步驟(5),只生成沒有的部分子集,例如查詢濟(jì)南、青島兩個地區(qū)的數(shù)據(jù),系統(tǒng)只找到濟(jì)南一個地區(qū)的數(shù)據(jù),同時也沒有全省的數(shù)據(jù),系統(tǒng)將查詢條件轉(zhuǎn)化為只查詢青島,到數(shù)據(jù)庫中進(jìn)行查詢,為了提高文件緩沖器檢索的高效性,降低檢索文件所消耗的時間,系統(tǒng)通過采用如下方法以減少檢索量;1)采用按照查詢實例分目錄存貯,降低了檢索量,系統(tǒng)會自動的針對每一個查詢實例,例如針對每一個報表,形成一個文件緩沖目錄,每一個目錄都有一個索引列表,每次查詢只去檢索對應(yīng)的索引列表;2)超期歷史數(shù)據(jù)刪除,保證歷史的數(shù)據(jù)文件不至于過多,占用大量的存貯空間,也會造成檢索文件造成過大,增大檢索的時間,同時過早的歷史數(shù)據(jù)對于用戶的查詢來說,使用的頻率極低,沒有緩沖再次使用的意義,系統(tǒng)會將超過保存周期和使用頻率低的文件刪除,從而減少文件緩沖列表的大小;3)查詢結(jié)果文件聚合,系統(tǒng)為了保證檢索的高效性,避免文件的過多,系統(tǒng)會將多個子集文件合并成一個全集文件,例如將山東省17地區(qū)的各個子集文件合并成為一個全省的數(shù)據(jù)文件;步驟(4)根據(jù)檢索返回的結(jié)果,判斷是否全部存在所要的數(shù)據(jù)文件,如果存在轉(zhuǎn)到步驟8,否則轉(zhuǎn)到步驟5;步驟(5)將分析后的查詢條件在數(shù)據(jù)庫中查詢,生成所需要的數(shù)據(jù)文件,并存放到對應(yīng)的數(shù)據(jù)目錄中;步驟(6)將生成的數(shù)據(jù)文件,登記到文件緩沖器的文件檢索列表中;步驟(7)返回需要的結(jié)果數(shù)據(jù)文件編號;步驟(8)根據(jù)返回的文件編號,獲取數(shù)據(jù)文件;步驟(9)數(shù)據(jù)處理器對數(shù)據(jù)返回的數(shù)據(jù)文件進(jìn)行處理,從結(jié)果文件中還原出需要的查詢數(shù)據(jù),并且將一些查詢條件,本來需要在數(shù)據(jù)庫的運(yùn)算轉(zhuǎn)移到數(shù)據(jù)處理器處理,提高對歷史數(shù)據(jù)文件再使用率,從而增加緩沖器的命中率,增加命中率的方法還包括1)選取查詢所需要的數(shù)據(jù)集合,從全集合中過濾出需要的子集數(shù)據(jù),例如從全省數(shù)據(jù)集中,獲取濟(jì)南、青島的數(shù)據(jù),或者將多個子集數(shù)據(jù)合并,例如將濟(jì)南、青島兩個子集的數(shù)據(jù),合并成所需要的數(shù)據(jù)集;2)選取查詢所需要的顯示列,例如一個結(jié)果數(shù)據(jù)文件中包含10列數(shù)據(jù),從中過濾出需要的6列數(shù)據(jù);3)按照查詢的要求對結(jié)果數(shù)據(jù)排序;步驟(10)按照固定的存貯結(jié)構(gòu),將最終的結(jié)果數(shù)據(jù)返回給上層應(yīng)用,處理結(jié)束。
全文摘要
本發(fā)明涉及一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法。本發(fā)明適用于針對歷史性數(shù)據(jù),存儲后不變化,相同數(shù)據(jù)多次查詢的特點(diǎn),提供一種能夠基于文件系統(tǒng)緩存的數(shù)據(jù)加速查詢方法,通過將歷史查詢數(shù)據(jù)保存,利用歷史查詢數(shù)據(jù)作為查詢緩存數(shù)據(jù),進(jìn)行的加速查詢方法。在系統(tǒng)接收用戶查詢請求之后,先轉(zhuǎn)到查詢分析器,查詢分析器的主要作用是分析查詢條件,規(guī)劃查詢條件等,然后經(jīng)過文件緩沖器,分析現(xiàn)有的結(jié)果數(shù)據(jù)文件中是否存在滿足當(dāng)前查詢需求,沒有則從數(shù)據(jù)庫中進(jìn)行查詢,并將最終的結(jié)果文件返回給數(shù)據(jù)處理器,數(shù)據(jù)處理器按照最終的查詢要求,對數(shù)據(jù)進(jìn)行過濾、排序等處理,將結(jié)果文件返回上層應(yīng)用系統(tǒng)。本查詢方法在不增加硬件投資下,可以大大的降低數(shù)據(jù)庫和系統(tǒng)資源的占用,大大提高查詢速度。
文檔編號G06F17/30GK101110074SQ200710013409
公開日2008年1月23日 申請日期2007年1月30日 優(yōu)先權(quán)日2007年1月30日
發(fā)明者明 張 申請人:浪潮樂金信息系統(tǒng)有限公司