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

一種實現(xiàn)操作風險監(jiān)控的多表查找方法

文檔序號:6610118閱讀:155來源:國知局
專利名稱:一種實現(xiàn)操作風險監(jiān)控的多表查找方法
技術領域
本發(fā)明涉及金融業(yè)務中數(shù)據(jù)處理技術領域,尤其涉及一種實現(xiàn)操作風險監(jiān)控的多表查找方法。
背景技術
在數(shù)據(jù)處理系統(tǒng),尤其是在諸如銀行業(yè)操作風險監(jiān)控類數(shù)據(jù)處理系統(tǒng)中,經(jīng)常需要根據(jù)第一表在第二表中做查找操作,以確定最終交易的風險特征。其中,第一表用于存儲短時間周期內(nèi)的交易明細數(shù)據(jù),第一表中存儲的數(shù)據(jù)采取實時更新,且更新頻率高。而第二表用于存儲匯總的歷史數(shù)據(jù)、統(tǒng)計信息,第二表中存儲的數(shù)據(jù)采取批量更新,且更新頻率低。
目前使用較多的技術是通過索引查找的方式,也就是對于第一表中的某條記錄,按照鍵值到已經(jīng)基于此鍵值建立索引的第二表中查找匹配的記錄信息。此查找方法的效率取決于索引本身的特性,而時常用于查找匹配的鍵值并不適合索引的建立。而在類似銀行業(yè)操作風險監(jiān)控處理系統(tǒng)中,準實時預警監(jiān)控的時間敏感性特征要求系統(tǒng)能夠在最短的時間內(nèi)完成復雜的規(guī)則計算,以確定交易的風險特征。
因此如何在相同系統(tǒng)瓶頸資源消耗、甚至更少消耗CPU、內(nèi)存、IO等資源的情況下,快速而有效的實現(xiàn)小表中記錄到大表的查找,以滿足操作性風險監(jiān)控領域準實時監(jiān)控的用戶實效性需求,成為技術領域目前不得不面對的問題。
為了問題描述的清晰性,參考如下的信用卡欺詐風險監(jiān)控的一個案例,并結合圖1(a)、圖1(b)和圖1(c)進行說明。
本案例通過對設定時間周期內(nèi)信用卡交易的消費金額與信用卡歷史日均消費的累積金額進行比較,判斷信用卡歷史日均消費的累積金額是否大于設定時間周期內(nèi)信用卡交易的消費金額,如果信用卡歷史日均消費的累積金額大于設定時間周期內(nèi)信用卡交易的消費金額,則進入預警隊列。為了描述的簡單,引入如圖1所示的三張表如圖1(a)所示,表示設定時間周期內(nèi)信用卡交易的消費金額表,其中“CARD”字段表示卡號,是鍵值(KEY),“MONEY”字段表示信用卡設定時間周期內(nèi)信用卡交易的消費金額。
如圖1(b)所示,表示信用卡歷史日均消費的累積金額表,其中“CRAD”字段表示卡號,是根據(jù)表一的鍵值建立的索引,而“DAY_MONEY”字段表示信用卡歷史日均消費的累積金額。
如圖1(c)所示,表示表查找后的結果表,存儲滿足條件的記錄信息,如果根據(jù)圖1(a)中的“CARD”某個鍵值,依據(jù)在圖1(b)中根據(jù)鍵值建立的索引進行查找,如果“DAY_MONEY”日均消費的累積金額大于“MONEY”設定時間周期內(nèi)信用卡交易的消費金額,則報警。
對于上述這種基于鍵值的第一表到第二表建立索引的查找操作,其采用索引技術的問題在于,對于一個低于10萬的小表,到一個4000萬左右的第二表查找所需要的CPU時間為10秒左右。當?shù)谝槐淼谋碛涗洈?shù)增加到100萬時,CPU的時間消耗將超過1分鐘。
由此可見,對于每日運行一次的批量程序來講時間效率差異不是很大,而對于類似準實時監(jiān)控這種需要在工作日多次運行,有時甚至是并發(fā)運行的批量程序來講,這種CPU時間上的消耗問題就變得很突出了。

發(fā)明內(nèi)容
(一)要解決的技術問題有鑒于此,本發(fā)明的主要目的在于提供一種實現(xiàn)操作風險監(jiān)控的多表查找方法,以減少多表查找時CPU時間上的消耗,提高多表查找的效率。
(二)技術方案為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的一種實現(xiàn)操作風險監(jiān)控的多表查找方法,該方法包括獲取散列表的空間大小,確定用于計算散列節(jié)點值的散列函數(shù);利用所述散列函數(shù)分別計算第一表和第二表中每條記錄的散列節(jié)點值,并按計算的散列節(jié)點值對第一表和第二表中的記錄進行排序,得到散列第一表和散列第二表;根據(jù)所述散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找所述散列第二表,獲取該鍵值及該鍵值所對應的散列節(jié)點值在散列第二表中所對應的記錄。
上述方案中,所述獲取散列表的空間大小的步驟包括從取值范圍
中選擇一個用于表示散列表的稀疏程度的裝載因子LF,根據(jù)選擇的裝載因子LF以及第二表記錄的個數(shù)M確定一個素數(shù)作為散列表空間大小HSIZE的值。
上述方案中,所述根據(jù)選擇的裝載因子LF以及第二表記錄的個數(shù)M確定一個素數(shù)作為散列表空間大小HSIZE的值的步驟包括將第二表記錄的個數(shù)M除以裝載因子LF,得到一個比值,取大于該比值最小的整數(shù)作為該比值的上限值,將該比值的上限值作為該散列表空間大小的初始值T_HSIZE;判斷所述散列表空間大小的初始值T_HSIZE是否能被 范圍內(nèi)的值整除,如果不能被整除,則該散列表空間大小的初始值T_HSIZE就是要確定的散列表空間大小HSIZE的值;否則,將所述散列表空間大小的初始值T_HSIZE自加1,并重新進行所述整除判斷,直至確定了散列表空間大小HSIZE的值為止。
上述方案中,所述確定用于計算散列節(jié)點值的散列函數(shù)的步驟包括選擇一個能夠將不同的鍵值KEY均勻的分布在不同的散列節(jié)點值上,同時散列值的計算不需要花費很多時間的散列函數(shù)。
上述方案中,所述確定的用于計算散列節(jié)點值的散列函數(shù)為散列節(jié)點值=1+MOD(KEY,HSIZE),其中MOD運算表示取模運算。
上述方案中,所述對第一表和第二表中的記錄進行排序包括對第一表和第二表中的記錄按照散列節(jié)點值從小到大的順序或者從大到小的順序進行排序。
上述方案中,所述對第二表中的記錄進行排序得到散列第二表的過程中,進一步包括將散列節(jié)點值相等的記錄歸并到一條記錄,得到散列第二表,散列第二表較第二表增加了一個散列節(jié)點值字段,其他字段為將第二表的字段擴展“屬于同一散列節(jié)點值的記錄最大數(shù)”倍數(shù),并將缺省的散列節(jié)點值對應的記錄的其他字段都設置為缺省值。
上述方案中,所述根據(jù)散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找散列第二表,采用順序法或二分法進行查找。
上述方案中,所述鍵值KEY為整型數(shù)值時,直接使用該整型數(shù)值的鍵值KEY進行計算和查找;所述鍵值為帶有小數(shù)的數(shù)字時,使用鍵值KEY1替代鍵值KEY進行計算和查找,所述鍵值KEY1等于對原鍵值KEY乘以10再加上M的和進行取整得到的值,其中M表示對于產(chǎn)生最大負數(shù)的修正值;或者所述鍵值KEY1等于對原鍵值KEY的絕對值乘以10的積進行取整得到的值;所述鍵值為數(shù)字字串時,使用鍵值KEY2替代鍵值KEY進行計算和查找,所述鍵值KEY2等于將原數(shù)字字串類型的鍵值KEY轉化為整數(shù)后的數(shù)值;所述鍵值為字符串時,使用鍵值KEY3替代鍵值KEY進行計算和查找,所述鍵值KEY3等于將原字符串類型的鍵值KEY轉化為整數(shù)后的數(shù)值;所述鍵值為組合鍵值時,使用鍵值KEY4替代鍵值KEY進行計算和查找,所述鍵值KEY4通過對組合鍵值類型的原鍵值采用取模函數(shù)組合的方式產(chǎn)生。
上述方案中,所述鍵值為組合鍵值時,對于由兩個鍵值KEY1和KEY2組合成的鍵值,KEY4=MOD(KEY1,HSIZE)×10X+KEY2,其中KEY1、KEY2是組合鍵的兩個鍵值,X視實際HSIZE的大小確定,要注意作乘積后不能超出系統(tǒng)支持的整數(shù)位;對于由三個鍵值KEY1、KEY2和KEY3組合成的鍵值,KEY4=MOD((MOD(KEY1,HSIZE)×10X+KEY2),HSIZE)×10X+KEY3;對于由n個鍵值組合成的鍵值,KEY4的值以此類推。
(三)有益效果從上述技術方案可以看出,本發(fā)明提供的實現(xiàn)操作風險監(jiān)控的多表查找方法與現(xiàn)有技術相比,大大減少了多表查找時CPU時間上的消耗,提高了多表查找的效率。
對于一張記錄個數(shù)為N的第一表和一張記錄個數(shù)為M的第二表,利用索引技術的時間復雜度為O(Nlog2M)(實際上經(jīng)過我們對ORACLE環(huán)境中SQL語句的查找計劃分析,ORACLE環(huán)境中對于索引表的單次查找長度為O(log2M))。而通過采用選定模數(shù)函數(shù)作為散列函數(shù)并且取定合適的素數(shù)作為散列表的表空間,并根據(jù)實際情況選擇合適的裝載因子a,裝載因子的大小對發(fā)生沖突的頻率影響很大。實際上,D.E.Knuth在文獻“D.E.Knuth,計算機程序設計技巧(第三卷,排序和查找),國防工業(yè)出版社,1984”中曾證明,對成功的查找,平均查找長度為

對于不成功的查找,平均查找長度為

因此,當裝載因子a越小時,也就是說散列表空間越稀疏時,每次查找的平均長度接近2。
為了在空間和時間方面確定一個平衡,本發(fā)明建議裝載因子的范圍為
,在此范圍下每次查找的平均長度范圍為[3.2,16]。因此在此裝載因子范圍下,并且在沖突點采用二分法的前提下算法的時間平均復雜度最大為O(Nlog216),鑒于log216為常數(shù),根據(jù)算法復雜度理論,其理論算法時間復雜度為O(N)。
因此,從理論上可以得出當M較大時,采用本發(fā)明的多表查找方法,效率比采用索引技術的表查找效率要高很多。
在Intel P4 1.73GHZ,1.25G RAM,Windows XP環(huán)境中運行本發(fā)明的多表查找方法,與索引方式進行了比較,試驗結果如下表所示

從表中可以看出,本發(fā)明提供的多表查找方法的執(zhí)行速度比索引語句效率性能明顯提高,提高的倍數(shù)隨驅動表中的記錄數(shù)增加而相應的增加,而查找表中記錄數(shù)的增加并沒有顯著影響同驅動表的查找效率。這個試驗結果與上述理論證明是一致的。


圖1(a)為設定時間周期內(nèi)信用卡交易的消費金額表;圖1(b)為信用卡歷史日均消費的累積金額表;圖1(c)為表查找后的結果表;圖2為本發(fā)明提供的實現(xiàn)操作風險監(jiān)控的多表查找的方法流程圖;圖3為依照本發(fā)明實施例提供的實現(xiàn)操作風險監(jiān)控多表查找的方法流程圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
本發(fā)明克服了現(xiàn)有技術中基于第一表的鍵值,在第二表中建立索引進行查找的效率低的問題,提供一種多表查找的方法。如圖2所示,圖2為本發(fā)明提供的實現(xiàn)操作風險監(jiān)控的多表查找的方法流程圖,該方法包括以下步驟步驟201獲取散列表的空間大小,確定用于計算散列節(jié)點值的散列函數(shù);步驟202利用所述散列函數(shù)分別計算第一表和第二表中每條記錄的散列節(jié)點值,并按計算的散列節(jié)點值對第一表和第二表中的記錄進行排序,得到散列第一表和散列第二表;步驟203根據(jù)所述散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找所述散列第二表,獲取該鍵值及該鍵值所對應的散列節(jié)點值在散列第二表中所對應的記錄。
上述步驟201中所述所述獲取散列表的空間大小包括從取值范圍
中選擇一個用于表示散列表的稀疏程度的裝載因子LF,根據(jù)選擇的裝載因子LF以及第二表記錄的個數(shù)M確定一個素數(shù)作為散列表空間大小HSIZE的值。其中取值范圍
,是考慮到存儲資源消耗以及處理時間效率的平衡,經(jīng)過多次實踐驗證的取值范圍。
上述根據(jù)選擇的裝載因子LF以及第二表記錄的個數(shù)M確定一個素數(shù)作為散列表空間大小HSIZE的值的步驟包括將第二表記錄的個數(shù)M除以裝載因子LF,得到一個比值,取大于該比值最小的整數(shù)作為該比值的上限值,將該比值的上限值作為該散列表空間大小的初始值T_HSIZE;判斷所述散列表空間大小的初始值T_HSIZE是否能被 范圍內(nèi)的值整除,如果不能被整除,則該散列表空間大小的初始值T_HSIZE就是要確定的散列表空間大小HSIZE的值;否則,將所述散列表空間大小的初始值T_HSIZE自加1,并重新進行所述整除判斷,直至確定了散列表空間大小HSIZE的值為止。
上述步驟201中所述確定用于計算散列節(jié)點值的散列函數(shù)包括選擇一個能夠將不同的鍵值KEY均勻的分布在不同的散列節(jié)點值上,同時散列值的計算不需要花費很多時間的散列函數(shù)。
上述確定的用于計算散列節(jié)點值的散列函數(shù)為散列節(jié)點值=1+MOD(KEY,HSIZE),其中MOD運算表示取模運算。
上述步驟202中所述對第一表和第二表中的記錄進行排序包括對第一表和第二表中的記錄按照散列節(jié)點值從小到大的順序或者從大到小的順序進行排序,一般按照散列節(jié)點值從小到大的順序進行排序。
上述步驟202中所述對第二表中的記錄進行排序得到散列第二表的過程中,進一步包括將散列節(jié)點值相等的記錄歸并到一條記錄,得到散列第二表,散列第二表較第二表增加了一個散列節(jié)點值字段,其他字段為將第二表的字段擴展 “屬于同一散列節(jié)點值的記錄最大數(shù)”倍數(shù),并將缺省的散列節(jié)點值對應的記錄的其他字段都設置為缺省值,如“-”。
上述步驟203中所述根據(jù)散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找散列第二表,一般采用順序法或二分法進行查找。
需要說明的是,上述鍵值字段為整型數(shù)值,實踐中經(jīng)常會遇到各種不同情形。以下針對實踐中的不同情形,逐一進行分析,最終各種不同的情形都可以歸屬到以上簡單情形。
1)、鍵值KEY為整型數(shù)值時,直接使用該整型數(shù)值的鍵值KEY進行計算和查找。
2)、鍵值為帶有小數(shù)的數(shù)字時(譬如X.Y的形式),使用鍵值KEY1替代鍵值KEY進行計算和查找,所述鍵值KEY1等于對原鍵值KEY乘以10再加上M的和進行取整得到的值,即KEY1=取整(KEY×10+M),其中M表示對于產(chǎn)生最大負數(shù)的修正值;或者所述鍵值KEY1等于對原鍵值KEY的絕對值乘以10的積進行取整得到的值,即;KEY1=取整(|KEY|×10),其中|KEY|表示鍵值的絕對值。
3)、鍵值為數(shù)字字串時,使用鍵值KEY2替代鍵值KEY進行計算和查找,所述鍵值KEY2等于將原數(shù)字字串類型的鍵值KEY轉化為整數(shù)后的數(shù)值,即KEY2=轉化為整數(shù)(KEY);4)、鍵值為字符串時,使用鍵值KEY3替代鍵值KEY進行計算和查找,所述鍵值KEY3等于將原字符串類型的鍵值KEY轉化為整數(shù)后的數(shù)值;實踐中需要根據(jù)不同的工具及實際情況采取不同的措施,對于字符串轉換為整數(shù)有多種方法。經(jīng)常使用的是依次取出字串中的每個字符,并轉換為對應的10進制數(shù)。對于一個5位長度的字串XXXXX,采用逐一轉換的方法示例如下KEY3=轉換為對應的整數(shù)(X)×104+...+轉換為對應的整數(shù)(X)×101+轉換為對應的整數(shù)(X);在SAS中我們可以使用INFORMATPIBw的轉換方式,直接將二進制字串轉化為對應的整數(shù)。
5)、鍵值為組合鍵值時,使用鍵值KEY4替代鍵值KEY進行計算和查找,所述鍵值KEY4通過對組合鍵值類型的原鍵值采用取模函數(shù)組合的方式產(chǎn)生。對于由兩個鍵值KEY1和KEY2組合成的鍵值,KEY4=MOD(KEY1,HSIZE)×10X+KEY2,其中KEY1、KEY2是組合鍵的兩個鍵值,X視實際HSIZE的大小確定,要注意作乘積后不能超出系統(tǒng)支持的整數(shù)位;對于由三個鍵值KEY1、KEY2和KEY3組合成的鍵值,KEY4=MOD((MOD(KEY1,HSIZE)×10X+KEY2),HSIZE)×10X+KEY3;對于由n個鍵值組合成的鍵值,KEY4的值以此類推。
為了使本發(fā)明提供的實現(xiàn)操作風險監(jiān)控的多表查找方法描述更易理解,文中僅以最簡單的情況進行描述,即一個數(shù)值型的字段為唯一鍵值的情況?;谶@種情況可以很容易地推廣到此類問題的其他情況。
基于圖2所述的實現(xiàn)操作風險監(jiān)控的多表查找的方法流程圖,以下結合具體的實施例對本發(fā)明實現(xiàn)操作風險監(jiān)控的多表查找的方法進一步詳細說明。
在本實施例中,第一表為上文所述的圖1(a),第二表為圖1(b)。
如圖3所示,圖3為依照本發(fā)明實施例提供的實現(xiàn)操作風險監(jiān)控多表查找的方法流程圖,該方法包括以下步驟步驟300選擇裝載因子0.8。
步驟301根據(jù)第二表記錄數(shù)10和裝載因子0.8,根據(jù)前面的方法得到10除以0.8的上限值為13。通過判斷13不能夠被 范圍的數(shù)整除,確定13是素數(shù),因此確定13就是我們需要的初始散列表空間的大小。
散列節(jié)點值=1+MOD(KEY,HSIZE),其中MOD運算表示取模,此處KEY即CARD所對應的值。
步驟302對第一表的每條記錄計算散列節(jié)點值;在本步驟中,對于第一條記錄,散列節(jié)點值=1+MOD(26,13)=1;對于第二條記錄,散列節(jié)點值=1+MOD(13,13)=1;對于第三條記錄,散列節(jié)點值=1+MOD(41,13)=1+2=3;對于第四條記錄,散列節(jié)點值=1+MOD(53,13)=1+1=2;對于第五條記錄,散列節(jié)點值=1+MOD(67,13)=1+2=3。
步驟303按散列節(jié)點值從小到大的順序進行排序,得到散列第一表。
步驟304對第二表的每條記錄計算散列節(jié)點值;在本步驟中,對于第一條記錄,散列節(jié)點值=1+MOD(26,13)=1;對于第二條記錄,散列節(jié)點值=1+MOD(13,13)=1;對于第三條記錄,散列節(jié)點值=1+MOD(22,13)=1+9=10;對于第四條記錄,散列節(jié)點值=1+MOD(53,13)=1+1=2;對于第五條記錄,散列節(jié)點值=1+MOD(67,13)=1+2=3;對于第六條記錄,散列節(jié)點值=1+MOD(84,13)=1+6=7;對于第七條記錄,散列節(jié)點值=1+MOD(66,13)=1+1=2;
對于第八條記錄,散列節(jié)點值=1+MOD(41,13)=1+2=3;對于第九條記錄,散列節(jié)點值=1+MOD(101,13)=1+10=11;對于第十條記錄,散列節(jié)點值=1+MOD(10,13)=1+10=11。
步驟305按散列節(jié)點值從小到大的順序進行排序。
步驟306將散列節(jié)點值相等的記錄歸并到一條記錄,得到散列第二表。
步驟307根據(jù)所述散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找所述散列第二表,獲取該鍵值及該鍵值所對應的散列節(jié)點值在散列第二表中所對應的記錄。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,該方法包括獲取散列表的空間大小,確定用于計算散列節(jié)點值的散列函數(shù);利用所述散列函數(shù)分別計算第一表和第二表中每條記錄的散列節(jié)點值,并按計算的散列節(jié)點值對第一表和第二表中的記錄進行排序,得到散列第一表和散列第二表;根據(jù)所述散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找所述散列第二表,獲取該鍵值及該鍵值所對應的散列節(jié)點值在散列第二表中所對應的記錄。
2.根據(jù)權利要求1所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述獲取散列表的空間大小的步驟包括從取值范圍
中選擇一個用于表示散列表的稀疏程度的裝載因子LF,根據(jù)選擇的裝載因子LF以及第二表記錄的個數(shù)M確定一個素數(shù)作為散列表空間大小HSIZE的值。
3.根據(jù)權利要求2所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述根據(jù)選擇的裝載因子LF以及第二表記錄的個數(shù)M確定一個素數(shù)作為散列表空間大小HSIZE的值的步驟包括將第二表記錄的個數(shù)M除以裝載因子LF,得到一個比值,取大于該比值最小的整數(shù)作為該比值的上限值,將該比值的上限值作為該散列表空間大小的初始值T_HSIZE;判斷所述散列表空間大小的初始值T_HSIZE是否能被 范圍內(nèi)的值整除,如果不能被整除,則該散列表空間大小的初始值T_HSIZE就是要確定的散列表空間大小HSIZE的值;否則,將所述散列表空間大小的初始值T_HSIZE自加1,并重新進行所述整除判斷,直至確定了散列表空間大小HSIZE的值為止。
4.根據(jù)權利要求1所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述確定用于計算散列節(jié)點值的散列函數(shù)的步驟包括選擇一個能夠將不同的鍵值KEY均勻的分布在不同的散列節(jié)點值上,同時散列值的計算不需要花費很多時間的散列函數(shù)。
5.根據(jù)權利要求4所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述確定的用于計算散列節(jié)點值的散列函數(shù)為散列節(jié)點值=1+MOD(KEY,HSIZE),其中MOD運算表示取模運算。
6.根據(jù)權利要求1所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述對第一表和第二表中的記錄進行排序包括對第一表和第二表中的記錄按照散列節(jié)點值從小到大的順序或者從大到小的順序進行排序。
7.根據(jù)權利要求1所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述對第二表中的記錄進行排序得到散列第二表的過程中,進一步包括將散列節(jié)點值相等的記錄歸并到一條記錄,得到散列第二表,散列第二表較第二表增加了一個散列節(jié)點值字段,其他字段為將第二表的字段擴展“屬于同一散列節(jié)點值的記錄最大數(shù)”倍數(shù),并將缺省的散列節(jié)點值對應的記錄的其他字段都設置為缺省值。
8.根據(jù)權利要求1所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述根據(jù)散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找散列第二表,采用順序法或二分法進行查找。
9.根據(jù)權利要求1至8中任一項所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述鍵值KEY為整型數(shù)值時,直接使用該整型數(shù)值的鍵值KEY進行計算和查找;所述鍵值為帶有小數(shù)的數(shù)字時,使用鍵值KEY1替代鍵值KEY進行計算和查找,所述鍵值KEY1等于對原鍵值KEY乘以10再加上M的和進行取整得到的值,其中M表示對于產(chǎn)生最大負數(shù)的修正值;或者所述鍵值KEY1等于對原鍵值KEY的絕對值乘以10的積進行取整得到的值;所述鍵值為數(shù)字字串時,使用鍵值KEY2替代鍵值KEY進行計算和查找,所述鍵值KEY2等于將原數(shù)字字串類型的鍵值KEY轉化為整數(shù)后的數(shù)值;所述鍵值為字符串時,使用鍵值KEY3替代鍵值KEY進行計算和查找,所述鍵值KEY3等于將原字符串類型的鍵值KEY轉化為整數(shù)后的數(shù)值;所述鍵值為組合鍵值時,使用鍵值KEY4替代鍵值KEY進行計算和查找,所述鍵值KEY4通過對組合鍵值類型的原鍵值采用取模函數(shù)組合的方式產(chǎn)生。
10.根據(jù)權利要求9所述的實現(xiàn)操作風險監(jiān)控的多表查找方法,其特征在于,所述鍵值為組合鍵值時,對于由兩個鍵值KEY1和KEY2組合成的鍵值,KEY4=MOD(KEY1,HSIZE)×10X+KEY2,其中KEY1、KEY2是組合鍵的兩個鍵值,X視實際HSIZE的大小確定,要注意作乘積后不能超出系統(tǒng)支持的整數(shù)位;對于由三個鍵值KEY1、KEY2和KEY3組合成的鍵值,KEY4=MOD((MOD(KEY1,HSIZE)×10X+KEY2),HSIZE)×10X+KEY3;對于由n個鍵值組合成的鍵值,KEY4的值以此類推。
全文摘要
本發(fā)明涉及金融業(yè)務中數(shù)據(jù)處理技術領域,公開了一種實現(xiàn)操作風險監(jiān)控的多表查找方法,包括獲取散列表的空間大小,確定用于計算散列節(jié)點值的散列函數(shù);利用所述散列函數(shù)分別計算第一表和第二表中每條記錄的散列節(jié)點值,并按計算的散列節(jié)點值對第一表和第二表中的記錄進行排序,得到散列第一表和散列第二表;根據(jù)所述散列第一表中要查找的鍵值及該鍵值所對應的散列節(jié)點值查找所述散列第二表,獲取該鍵值及該鍵值所對應的散列節(jié)點值在散列第二表中所對應的記錄。利用本發(fā)明,大大減少了多表查找時CPU時間上的消耗,提高了多表查找的效率。
文檔編號G06Q40/00GK101093511SQ20071011983
公開日2007年12月26日 申請日期2007年8月1日 優(yōu)先權日2007年8月1日
發(fā)明者張緯星, 劉承巖, 李錚杰, 朱敏, 徐伶俐 申請人:中國工商銀行股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
故城县| 邻水| 遵义市| 沂水县| 磐安县| 南京市| 晴隆县| 资阳市| 台北市| 武宣县| 康保县| 丹江口市| 蒲城县| 图木舒克市| 黎城县| 德令哈市| 罗甸县| 聊城市| 胶州市| 天津市| 磴口县| 蓝山县| 甘南县| 昭觉县| 奇台县| 屏南县| 珠海市| 江都市| 靖宇县| 阿鲁科尔沁旗| 大荔县| 虞城县| 望江县| 花垣县| 曲沃县| 康马县| 边坝县| 潼关县| 田阳县| 资阳市| 高唐县|