一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)查詢技術(shù)領(lǐng)域,具體地說(shuō)是一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法。
【背景技術(shù)】
[0002]社會(huì)的不斷發(fā)展,企業(yè)進(jìn)行越來(lái)越多的支撐系統(tǒng)建設(shè),信息共享變得尤為重要,信息的共享使得軟件系統(tǒng)的訪問用戶增多,但是隨著用戶的不斷增多,數(shù)據(jù)的查詢量必然會(huì)大大增加,而系統(tǒng)就會(huì)越來(lái)越慢,從而需要投入更多的資金進(jìn)行設(shè)備和軟件的升級(jí)。造成這樣的原因是,用戶的每次查詢請(qǐng)求,系統(tǒng)都是通過在數(shù)據(jù)庫(kù)中進(jìn)行相應(yīng)的查找,數(shù)據(jù)計(jì)算等操作,然后將結(jié)果返回。用戶的查詢量增加,系統(tǒng)的數(shù)據(jù)處理量也隨之線性增加。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的技術(shù)任務(wù)是提供一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法。
[0004]本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,該快速查詢方法過程如下:在系統(tǒng)接收用戶查詢請(qǐng)求之后,先轉(zhuǎn)到查詢分析器,分析查詢條件,并規(guī)化查詢條件,然后經(jīng)過文件緩沖器,分析現(xiàn)有的結(jié)果數(shù)據(jù)文件中是否存在滿足當(dāng)前查詢條件,沒有則從數(shù)據(jù)庫(kù)中進(jìn)行查詢,并將最終的結(jié)果文件返回給數(shù)據(jù)處理器,數(shù)據(jù)處理器按照最終的查詢要求,對(duì)數(shù)據(jù)進(jìn)行過濾、排序處理,將結(jié)果文件返回上層應(yīng)用系統(tǒng)進(jìn)行頁(yè)面展現(xiàn)。
[0005]所述的快速查詢方法的具體步驟如下:
步驟1:分析查詢提交的查詢條件,將查詢條件分為數(shù)據(jù)庫(kù)運(yùn)算處理和數(shù)據(jù)處理器處理的兩大部分;數(shù)據(jù)庫(kù)運(yùn)算處理主要是對(duì)數(shù)據(jù)的提取和邏輯計(jì)算部分的查詢條件;數(shù)據(jù)處理器處理主要包括對(duì)結(jié)果數(shù)據(jù)的過濾和排序等操作;
步驟2:規(guī)化查詢條件,將查詢條件統(tǒng)一成標(biāo)準(zhǔn)的查詢條件,避免在查詢描述上不同而實(shí)際上是相同情況;
步驟3:形成統(tǒng)一的查詢條件之后,送入到文件緩沖器中,文件緩沖器先找到對(duì)應(yīng)的查詢實(shí)例的歷史數(shù)據(jù)登記列表,再根據(jù)查詢條件在登記列表中檢索滿足當(dāng)前條件的歷史數(shù)據(jù)文件,該索引列表記錄了該查詢實(shí)例歷史數(shù)據(jù)的查詢條件,查詢時(shí)間,用戶,使用次數(shù);
步驟4:根據(jù)檢索的結(jié)果,判斷是否全部存在所要的數(shù)據(jù)文件,如果存在轉(zhuǎn)到步驟8,否則轉(zhuǎn)到下一個(gè)步驟;
步驟5:將分析后的查詢條件在數(shù)據(jù)庫(kù)中查詢,生成所需要的數(shù)據(jù)文件,并存放到對(duì)應(yīng)的數(shù)據(jù)目錄中;
步驟6:將生成的數(shù)據(jù)文件,登記到文件緩沖器的文件檢索列表中;
步驟7:返回需要的結(jié)果數(shù)據(jù)文件編號(hào);
步驟8:根據(jù)返回的文件編號(hào),獲取數(shù)據(jù)文件;
步驟9:數(shù)據(jù)處理器對(duì)數(shù)據(jù)返回的數(shù)據(jù)文件進(jìn)行處理,從結(jié)果文件中還原出需要的查詢數(shù)據(jù);并且將一些查詢條件,本來(lái)需要在數(shù)據(jù)庫(kù)的運(yùn)算轉(zhuǎn)移到數(shù)據(jù)處理器處理; 步驟10:按照固定的存貯結(jié)構(gòu),將最終的結(jié)果數(shù)據(jù)返回給上層應(yīng)用系統(tǒng)進(jìn)行頁(yè)面展現(xiàn),處理結(jié)束。
[0006]所述的步驟2中規(guī)化查詢條件包括集合判斷合并:將小集合的條件轉(zhuǎn)換成大集合;查詢條件排序:將查詢條件按照固定順序進(jìn)行排列,采用字符的先后順序;系統(tǒng)能夠進(jìn)行統(tǒng)一的順序排列,使其成一個(gè)相同的查詢條件。
[0007]所述的步驟3中,為了提高查詢文件緩沖器檢索數(shù)據(jù)文件的命中率,系統(tǒng)采用如下檢索機(jī)制:
O從全集數(shù)據(jù)中獲取子集的數(shù)據(jù):如果要查詢?nèi)舾蓚€(gè)子集,而這若干個(gè)子集恰好屬于另外一個(gè)全集的一部分,系統(tǒng)將返回該數(shù)據(jù)文件;
2)部分子集查找:如果要查詢?nèi)舾蓚€(gè)子集,而這若干個(gè)子集只有部分被檢索到,那么系統(tǒng)會(huì)到步驟5,只生成沒有的部分子集;
為了提高文件緩沖器檢索的效率,系統(tǒng)采用如下機(jī)制:
1)采用按照查詢實(shí)例分目錄存貯,系統(tǒng)會(huì)自動(dòng)的針對(duì)每一個(gè)查詢實(shí)例形成一個(gè)文件緩沖目錄,每一個(gè)目錄都有一個(gè)索引列表,每次查詢只去檢索對(duì)應(yīng)的索引列表;
2)超期歷史數(shù)據(jù)刪除,系統(tǒng)會(huì)將超過保存周期和使用頻率低的文件刪除,從而減少文件緩沖列表的大小;
3)查詢結(jié)果文件聚合,將多個(gè)子集文件合并成一個(gè)全集文件。
[0008]所述的步驟9中數(shù)據(jù)處理器對(duì)數(shù)據(jù)返回的數(shù)據(jù)文件進(jìn)行處理由如下具體步驟構(gòu)成:
1)選取查詢所需要的數(shù)據(jù)集合,從全集合中過濾出需要的子集數(shù)據(jù)或者將多個(gè)子集數(shù)據(jù)合并,合并成所需要的數(shù)據(jù)集;
2)選取查詢所需要的顯示列;
3)結(jié)果排序,按照查詢的要求對(duì)結(jié)果數(shù)據(jù)排序。
[0009]本發(fā)明的一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法和現(xiàn)有技術(shù)相比,通過將歷史查詢數(shù)據(jù)保存,利用歷史查詢數(shù)據(jù)作為查詢緩存數(shù)據(jù),從而能夠避免重復(fù)查詢請(qǐng)求,系統(tǒng)處理多次,使系統(tǒng)不會(huì)隨著用戶的查詢量增加,數(shù)據(jù)處理量也隨之線性增加;而且還能夠利用歷史結(jié)果數(shù)據(jù),加速數(shù)據(jù)的查詢,提高了系統(tǒng)運(yùn)行的效率,降低用戶的平均響應(yīng)時(shí)間,減少因用戶的使用增加等原因,而進(jìn)行的軟件和硬件升級(jí),節(jié)約大量資金。
【附圖說(shuō)明】
[0010]附圖1為一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法的流程框圖;
附圖2為一種查詢系統(tǒng)的數(shù)據(jù)加速查詢方法的具體步驟流程示意圖;
附圖3為一般報(bào)表的查詢系統(tǒng)處理步驟流程框圖。
[0011]附圖4為實(shí)施例2中基于本發(fā)明的查詢系統(tǒng)的數(shù)據(jù)加速查詢方法的報(bào)表的查詢步驟流程框圖。
【具體實(shí)施方式】
[0012]實(shí)施例1:
該快速查詢方法過程如下:在系統(tǒng)接收用戶查詢請(qǐng)求之后,先轉(zhuǎn)到查詢分析器,分析查詢條件,并規(guī)化查詢條件,然后經(jīng)過文件緩沖器,分析現(xiàn)有的結(jié)果數(shù)據(jù)文件中是否存在滿足當(dāng)前查詢條件,沒有則從數(shù)據(jù)庫(kù)中進(jìn)行查詢,并將最終的結(jié)果文件返回給數(shù)據(jù)處理器,數(shù)據(jù)處理器按照最終的查詢要求,對(duì)數(shù)據(jù)進(jìn)行過濾、排序處理,將結(jié)果文件返回上層應(yīng)用系統(tǒng)進(jìn)行頁(yè)面展現(xiàn)。
[0013]所述的快速查詢方法的具體步驟如下:
步驟1:分析查詢提交的查詢條件,將查詢條件分為數(shù)據(jù)庫(kù)運(yùn)算處理和數(shù)據(jù)處理器處理的兩大部分;數(shù)據(jù)庫(kù)運(yùn)算處理主要是對(duì)數(shù)據(jù)的提取和邏輯計(jì)算部分的查詢條件;數(shù)據(jù)處理器處理主要包括對(duì)結(jié)果數(shù)據(jù)的過濾和排序等操作;
步驟2:規(guī)化查詢條件,將查詢條件統(tǒng)一成標(biāo)準(zhǔn)的查詢條件,避免在查詢描述上不同而實(shí)際上是相同情況;
規(guī)化查詢條件包括集合判斷合并:將小集合的條件轉(zhuǎn)換成大集合;查詢條件排序:將查詢條件按照固定順序進(jìn)行排列,采用字符的先后順序;系統(tǒng)能夠進(jìn)行統(tǒng)一的順序排列,使其成一個(gè)相同的查詢條件;
步驟3:形成統(tǒng)一的查詢條件之后,送入到文件緩沖器中,文件緩沖器先找到對(duì)應(yīng)的查詢實(shí)例的歷史數(shù)據(jù)登記列表,再根據(jù)查詢條件在登記列表中檢索滿足當(dāng)前條件的歷史數(shù)據(jù)文件,該索引列表記錄了該查詢實(shí)例歷史數(shù)據(jù)的查詢條件,查詢時(shí)間,用戶,使用次數(shù);
為了提高查詢文件緩沖器檢索數(shù)據(jù)文件的命中率,系統(tǒng)采用如下檢索機(jī)制:
O從全集數(shù)據(jù)中獲取子集的數(shù)據(jù):如果要查詢?nèi)舾蓚€(gè)子集,而這若干個(gè)子集恰好屬于另外一個(gè)全集的一部分,系統(tǒng)將返回該數(shù)據(jù)文件;
2)部分子集查找:如果要查詢?nèi)舾蓚€(gè)子集,而這若干個(gè)子集只有部分被檢索到,那么系統(tǒng)會(huì)到步驟5,只生成沒有的部分子集;
為了提高文件緩沖器檢索的效率,系統(tǒng)采用如下機(jī)制:
1)采用按照查詢實(shí)例分目錄存貯,系統(tǒng)會(huì)自動(dòng)的針對(duì)每一個(gè)查詢實(shí)例形成一個(gè)文件緩沖目錄,每一個(gè)目錄都有一個(gè)索引列表,每次查詢只去檢索對(duì)應(yīng)的索引列表;
2)超期歷史數(shù)據(jù)刪除,系統(tǒng)會(huì)將超過保存周期和使用頻率低的文件刪除,從而減少文件緩沖列表的大??;
3)查詢結(jié)果文件聚合,將多個(gè)子集文件合并成一個(gè)全集文件;
步驟4:根據(jù)檢索的結(jié)果,判斷是否全部存在所要的數(shù)據(jù)文件,如果存在轉(zhuǎn)到步