亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

數(shù)據(jù)庫游標(biāo)的控制方法與數(shù)據(jù)庫系統(tǒng)與流程

文檔序號:11230653閱讀:538來源:國知局
數(shù)據(jù)庫游標(biāo)的控制方法與數(shù)據(jù)庫系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫游標(biāo)的控制方法與數(shù)據(jù)庫系統(tǒng)。



背景技術(shù):

在數(shù)據(jù)庫系統(tǒng)中,經(jīng)常存在無法回收的內(nèi)存資源或正在使用的內(nèi)存資源過多,造成系統(tǒng)中的可用內(nèi)存越來越少,導(dǎo)致系統(tǒng)運行不流暢。

在數(shù)據(jù)庫系統(tǒng)中通常會應(yīng)用到游標(biāo),當(dāng)游標(biāo)被引用后沒有及時關(guān)閉,容易增大內(nèi)存溢出機(jī)率,這樣會導(dǎo)致系統(tǒng)運行越來越慢,直到宕機(jī)。目前內(nèi)存泄露工具一般采用內(nèi)存檢查工具分析出系統(tǒng)的靜態(tài)內(nèi)存錯誤,但無法實時監(jiān)測并關(guān)閉游標(biāo),這將導(dǎo)致數(shù)據(jù)庫系統(tǒng)在出現(xiàn)內(nèi)存資源不足的情況時,系統(tǒng)會因缺少內(nèi)存運行資源而出現(xiàn)卡頓、宕機(jī)甚至系統(tǒng)崩潰等問題。



技術(shù)實現(xiàn)要素:

本發(fā)明的主要目的在于提供一種數(shù)據(jù)庫游標(biāo)的控制方法與數(shù)據(jù)庫系統(tǒng),旨在解決數(shù)據(jù)庫系統(tǒng)因游標(biāo)未關(guān)閉造成系統(tǒng)內(nèi)存資源不足,導(dǎo)致系統(tǒng)無法正常運行的技術(shù)問題。

為實現(xiàn)上述目的,本發(fā)明實施例提供一種數(shù)據(jù)庫游標(biāo)的控制方法,所述游標(biāo)設(shè)置有游標(biāo)級別,其中包括低級別游標(biāo),所述數(shù)據(jù)庫游標(biāo)的控制方法包括:

當(dāng)檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;

當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。

可選地,所述當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源的步驟之后還包括:

統(tǒng)計當(dāng)前數(shù)據(jù)庫系統(tǒng)的閑置內(nèi)存資源,以獲得對應(yīng)的統(tǒng)計參數(shù);

當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放排序列表中所有已激活游標(biāo)占用的內(nèi)存資源。

可選地,所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟之后還包括:

存儲本次釋放內(nèi)存資源的所有事件信息,以作為內(nèi)存資源優(yōu)化的依據(jù)。

可選地,所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放所述排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟包括:

當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,顯示當(dāng)前排序列表中所有的已激活游標(biāo),以供用戶選擇;

基于用戶選擇的預(yù)選游標(biāo),釋放預(yù)選游標(biāo)占用的內(nèi)存資源。

可選地,所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放所述排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟包括:

當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,獲取排序列表中所有已激活游標(biāo)的內(nèi)存資源的釋放權(quán)限;

當(dāng)檢測到釋放權(quán)限未能成功釋放所有已激活游標(biāo)占用的內(nèi)存資源時,強(qiáng)制獲取數(shù)據(jù)庫系統(tǒng)的最高權(quán)限;

基于最高權(quán)限釋放所有已激活游標(biāo)占用的內(nèi)存資源。

此外,為實現(xiàn)上述目的,本發(fā)明還提供一種數(shù)據(jù)庫系統(tǒng),所述數(shù)據(jù)庫系統(tǒng)中設(shè)置有游標(biāo),且所述游標(biāo)設(shè)置有游標(biāo)級別,其中包括低級別游標(biāo),所述數(shù)據(jù)庫系統(tǒng)包括:

記錄模塊,用于當(dāng)檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;

第一釋放模塊,用于當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。

可選地,所述數(shù)據(jù)庫系統(tǒng)還包括:

統(tǒng)計模塊,用于統(tǒng)計當(dāng)前數(shù)據(jù)庫系統(tǒng)的閑置內(nèi)存資源,以獲得對應(yīng)的統(tǒng)計參數(shù);

第二釋放模塊,用于當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放排序列表中所有已激活游標(biāo)占用的內(nèi)存資源。

可選地,所述數(shù)據(jù)庫系統(tǒng)還包括:

存儲模塊,用于存儲本次釋放內(nèi)存資源的所有事件信息,以作為內(nèi)存資源優(yōu)化的依據(jù)。

可選地,所述第二釋放模塊包括:

顯示單元,用于當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,顯示當(dāng)前排序列表中所有的已激活游標(biāo),以供用戶選擇;

第一釋放單元,用于基于用戶選擇的預(yù)選游標(biāo),釋放預(yù)選游標(biāo)占用的內(nèi)存資源。

可選地,所述第二釋放模塊包括:

獲取單元,用于當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,獲取排序列表中所有已激活游標(biāo)的內(nèi)存資源的釋放權(quán)限;

權(quán)限單元,用于當(dāng)檢測到釋放權(quán)限未能成功釋放所有已激活游標(biāo)占用的內(nèi)存資源時,強(qiáng)制獲取數(shù)據(jù)庫系統(tǒng)的最高權(quán)限;

第二釋放單元,用于基于最高權(quán)限釋放所有已激活游標(biāo)占用的內(nèi)存資源。

本發(fā)明的技術(shù)方案中,當(dāng)檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。本發(fā)明采用實時監(jiān)測數(shù)據(jù)庫游標(biāo)使用狀態(tài)的方式,在內(nèi)存資源不足時,根據(jù)游標(biāo)級別關(guān)閉游標(biāo)進(jìn)行資源釋放,避免游標(biāo)本身占用過多的內(nèi)存資源而導(dǎo)致系統(tǒng)由于沒有足夠的內(nèi)存癱瘓、卡頓、死機(jī)等問題,有效解決數(shù)據(jù)庫游標(biāo)導(dǎo)致的內(nèi)存泄露。

附圖說明

圖1為本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第一實施例的流程示意圖;

圖2為本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第二實施例的流程示意圖;

圖3為本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第三實施例的流程示意圖;

圖4為本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第四實施例中所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放所述排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟的步驟的細(xì)化流程示意圖;

圖5為本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第五實施例中所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放所述排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟的步驟的細(xì)化流程示意圖;

圖6是本發(fā)明數(shù)據(jù)庫系統(tǒng)第一實施例的模塊示意圖;

圖7為本發(fā)明數(shù)據(jù)庫系統(tǒng)第二實施例的模塊示意圖;

圖8為本發(fā)明數(shù)據(jù)庫系統(tǒng)第三實施例的模塊示意圖;

圖9為本發(fā)明數(shù)據(jù)庫系統(tǒng)第四實施例中第二釋放模塊的細(xì)化模塊示意圖;

圖10為本發(fā)明數(shù)據(jù)庫系統(tǒng)第五實施例中第二釋放模塊的細(xì)化模塊示意圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參考附圖做進(jìn)一步說明。

具體實施方式

應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的數(shù)據(jù)庫系統(tǒng)。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,“模塊”與“部件”可以混合地使用。

所述游標(biāo)是數(shù)據(jù)庫系統(tǒng)為用戶開設(shè)的一個數(shù)據(jù)緩沖區(qū),存放數(shù)據(jù)庫執(zhí)行語句的執(zhí)行結(jié)果。在數(shù)據(jù)庫系統(tǒng)中,游標(biāo)可以通過打開或關(guān)閉實現(xiàn)對象引用。通過游標(biāo)的使用,數(shù)據(jù)庫系統(tǒng)可以方便得獲取到游標(biāo)所映射到的具體的數(shù)據(jù)記錄。而數(shù)據(jù)庫系統(tǒng)在實際使用中,結(jié)束對游標(biāo)的使用之后,即使該游標(biāo)不再被調(diào)用,在系統(tǒng)異步處理的過程中,往往會錯漏過某些游標(biāo),使其不被調(diào)用,卻保持激活狀態(tài),占用一定的系統(tǒng)內(nèi)存資源,影響到數(shù)據(jù)庫系統(tǒng)的正常運行。

參考圖1,本發(fā)明提供一種數(shù)據(jù)庫游標(biāo)的控制方法,該數(shù)據(jù)庫游標(biāo)的控制方法主要應(yīng)用于數(shù)據(jù)庫系統(tǒng)上,在數(shù)據(jù)庫游標(biāo)的控制方法第一實施例中,所述游標(biāo)設(shè)置有游標(biāo)級別,其中包括低級別游標(biāo),所述數(shù)據(jù)庫游標(biāo)的控制方法包括:

步驟s10,當(dāng)檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;

數(shù)據(jù)庫系統(tǒng)在正常運行當(dāng)中,會動態(tài)調(diào)用所需的游標(biāo),每當(dāng)數(shù)據(jù)庫系統(tǒng)激活游標(biāo)時,記錄被激活的數(shù)據(jù)庫游標(biāo),記錄其游標(biāo)級別,獲得所有已激活游標(biāo)的排序列表。

所述游標(biāo)級別,指的是游標(biāo)本身的存在級別,級別的高低意味著游標(biāo)對數(shù)據(jù)庫系統(tǒng)的功能應(yīng)用的影響程度。例如,a游標(biāo)屬于系統(tǒng)級游標(biāo),其功能效用的執(zhí)行對數(shù)據(jù)庫系統(tǒng)的正常運行起到關(guān)鍵性的作用,那么a游標(biāo)即為高級別游標(biāo);而b游標(biāo)屬于普通游標(biāo),其功能效用的執(zhí)行對數(shù)據(jù)庫系統(tǒng)的正常運行幾乎毫無影響,僅作為緩沖數(shù)據(jù)或臨時數(shù)據(jù)的媒介,可輕易再現(xiàn)且執(zhí)行成本低微,那么b游標(biāo)即為低級別游標(biāo)。

一般而言,該列表用于保存所有激活的數(shù)據(jù)庫游標(biāo)對象集合。假設(shè)游標(biāo)的狀態(tài)發(fā)生改變,例如被釋放掉或發(fā)生異常等現(xiàn)象時,數(shù)據(jù)庫系統(tǒng)會實時追蹤到該游標(biāo),并根據(jù)游標(biāo)本身的狀態(tài)實時更新或編輯排序列表,例如對排序列表中相應(yīng)的游標(biāo)進(jìn)行查詢、插入、刪除等操作,以此維護(hù)排序列表。

步驟s20,當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。

為防止游標(biāo)占用數(shù)據(jù)庫系統(tǒng)中過多的內(nèi)存資源,需要實時監(jiān)測排序列表,例如在每隔一段預(yù)設(shè)時間間隔時,檢測排序列表中所有游標(biāo)的活動狀態(tài)。其中,預(yù)設(shè)時間間隔可以是默認(rèn)的預(yù)設(shè)數(shù)值,也可以是人為自定義生成的具體數(shù)據(jù),如5秒,10秒等等。游標(biāo)的不同狀態(tài)存在不同的使用意義,游標(biāo)被關(guān)閉時則不存在,如被激活,則可能處于被調(diào)用狀態(tài),也可能處于空載閑置狀態(tài)。

在數(shù)據(jù)庫系統(tǒng)中,游標(biāo)可以被數(shù)據(jù)庫系統(tǒng)中的可用進(jìn)程或線程激活,并在激活之后為調(diào)用主體(可以是進(jìn)程或線程)所調(diào)取應(yīng)用。而當(dāng)游標(biāo)被激活后,處于激活狀態(tài)的游標(biāo)會被其調(diào)取并進(jìn)入應(yīng)用狀態(tài),此時,該游標(biāo)會占據(jù)相當(dāng)程度的系統(tǒng)內(nèi)存資源,以作為游標(biāo)執(zhí)行其功能的運行空間。而當(dāng)所述進(jìn)程或線程調(diào)用完畢時,該游標(biāo)將不再作為功能調(diào)用的需求對象,此時的游標(biāo)處于閑置狀態(tài),若未將其關(guān)閉,該處于激活狀態(tài)的游標(biāo)依舊會占據(jù)部分內(nèi)存資源。

以上所述的游標(biāo)狀態(tài)中,處于激活狀態(tài)的游標(biāo)會占據(jù)系統(tǒng)資源,但其中,處于激活且被調(diào)用狀態(tài)的游標(biāo)正在被使用,若強(qiáng)行中止,可能會影響到當(dāng)前數(shù)據(jù)庫系統(tǒng)的正常執(zhí)行。而處于激活且閑置狀態(tài)的游標(biāo)當(dāng)前狀況下并未發(fā)揮其功能效用,卻消耗著系統(tǒng)本身的內(nèi)存資源,容易影響到數(shù)據(jù)庫系統(tǒng)的正常運行。因此需要對處于激活且閑置狀態(tài)的游標(biāo)進(jìn)行排查。在本實施例中,檢測排序列表中處于激活狀態(tài)且同時處于閑置狀態(tài)的游標(biāo),并且根據(jù)其游標(biāo)級別,只篩選出低級別游標(biāo)。因為低級別游標(biāo)不會影響到數(shù)據(jù)庫系統(tǒng)本身的正常運行。只有同時滿足已激活、閑置、低級別三種條件的游標(biāo),才是本實施例執(zhí)行定時檢測的篩選對象。

在排序列表中若檢測到同時滿足已激活、閑置、低級別三大條件的游標(biāo),即為本實施例所要進(jìn)行資源釋放的檢測對象。由于此時該游標(biāo)處于閑置狀態(tài),故無需解除進(jìn)程或線程占用該游標(biāo)的操作,可直接釋放掉其在激活且閑置狀態(tài)下所占用的內(nèi)存資源。

需要說明的是,處于激活且閑置狀態(tài)下的低級別游標(biāo)雖然并未被調(diào)用以執(zhí)行其功能效用,但其本身依舊處于待調(diào)用狀態(tài),可隨時被調(diào)用主體(可以是進(jìn)程或線程)重新調(diào)用,因此該游標(biāo)對象依舊保持著與調(diào)用主體的數(shù)據(jù)接口以及實現(xiàn)其功能的其他對象的數(shù)據(jù)接口,而數(shù)據(jù)接口的實現(xiàn)本身就需要消耗占據(jù)系統(tǒng)內(nèi)存資源。這部分內(nèi)存資源在游標(biāo)閑置的情況下依舊被占用而未被釋放掉,將其釋放出來能夠最大化地利用系統(tǒng)內(nèi)存資源,提高內(nèi)存資源的應(yīng)用效率,防止內(nèi)存資源不足進(jìn)而出現(xiàn)系統(tǒng)運行不流暢、卡頓等問題。

優(yōu)選地,排序列表中保存了大量處于激活狀態(tài)的游標(biāo),當(dāng)?shù)图墑e游標(biāo)被釋放掉后,需要將該低級別游標(biāo)從列表中刪除。假設(shè)不將其進(jìn)行刪除,列表中既保存了激活狀態(tài)的游標(biāo)也保存了已被釋放掉的游標(biāo),而已被釋放掉的游標(biāo)在排序列表中并無用處。本實施例所要實現(xiàn)的是對激活狀態(tài)的游標(biāo)的清理釋放,對于已釋放掉的游標(biāo)并無處理機(jī)制。因此已釋放掉的游標(biāo)需要進(jìn)行清理刪除,以提高游標(biāo)檢測和查詢的工作效率。同時,假設(shè)不刪除已釋放掉的游標(biāo),那么隨著數(shù)據(jù)庫系統(tǒng)運行時間的增長,被釋放掉游標(biāo)的記錄會越來越多,即排序列表本身占用的內(nèi)存資源也會增加,從另一個方面后影響到數(shù)據(jù)庫系統(tǒng)的正常運行。

本發(fā)明的技術(shù)方案中,當(dāng)檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。本發(fā)明采用實時監(jiān)測數(shù)據(jù)庫游標(biāo)使用狀態(tài)的方式,在內(nèi)存資源不足時,根據(jù)游標(biāo)級別關(guān)閉游標(biāo)進(jìn)行資源釋放,避免游標(biāo)本身占用過多的內(nèi)存資源而導(dǎo)致系統(tǒng)由于沒有足夠的內(nèi)存癱瘓、卡頓、死機(jī)等問題,有效解決數(shù)據(jù)庫游標(biāo)導(dǎo)致的內(nèi)存泄露。本發(fā)明采用實時監(jiān)測數(shù)據(jù)庫游標(biāo)使用狀態(tài)的方式,在內(nèi)存資源不足時,根據(jù)游標(biāo)級別關(guān)閉游標(biāo)進(jìn)行資源釋放,避免游標(biāo)本身占用過多的內(nèi)存資源而導(dǎo)致系統(tǒng)由于沒有足夠的內(nèi)存癱瘓、卡頓、死機(jī)等問題,有效解決數(shù)據(jù)庫游標(biāo)導(dǎo)致的內(nèi)存泄露。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第一實施例的基礎(chǔ)上,提出數(shù)據(jù)庫游標(biāo)的控制方法第二實施例,參考圖2,所述第二實施例與第一實施例之間的區(qū)別在于,所述當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源的步驟之后還包括:

步驟s30,統(tǒng)計當(dāng)前數(shù)據(jù)庫系統(tǒng)的閑置內(nèi)存資源,以獲得對應(yīng)的統(tǒng)計參數(shù);

所述閑置內(nèi)存資源,指的是數(shù)據(jù)庫系統(tǒng)中,當(dāng)前處于閑置狀態(tài)的,并未被調(diào)用的內(nèi)存資源。一般而言,系統(tǒng)資源除了被調(diào)用的內(nèi)存資源,需要部分閑置的內(nèi)存資源作為后續(xù)功能執(zhí)行時被調(diào)用的預(yù)設(shè)資源。查詢獲取處于閑置狀態(tài)的內(nèi)存資源后,由于內(nèi)存資源的存儲方式不一定是連接的,可以存在分段分區(qū)形式的內(nèi)存資源,因此需要對所有處于閑置狀態(tài)的內(nèi)存資源進(jìn)行統(tǒng)計,以獲得對應(yīng)的統(tǒng)計參數(shù)。所述統(tǒng)計參數(shù)指的是該處于閑置狀態(tài)的內(nèi)存資源的剩余容量。

步驟s40,當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放排序列表中所有已激活游標(biāo)占用的內(nèi)存資源。

在本實施例中,數(shù)據(jù)庫系統(tǒng)設(shè)置了一個預(yù)設(shè)閾值,該預(yù)設(shè)閾值作為統(tǒng)計參數(shù)的一個邊界參考數(shù)值,該數(shù)值指代的是數(shù)據(jù)庫系統(tǒng)中處于閑置狀態(tài)的內(nèi)存資源的剩余容量的最低門限值。當(dāng)統(tǒng)計所獲得的統(tǒng)計參數(shù)小于該預(yù)設(shè)閾值時,則證明數(shù)據(jù)庫系統(tǒng)中作為緩沖的閑置狀態(tài)的內(nèi)存資源達(dá)到了最低門限值,若沒有新的閑置狀態(tài)的內(nèi)存資源作為補(bǔ)充,數(shù)據(jù)庫系統(tǒng)將處于時刻發(fā)生運行不流暢甚至系統(tǒng)崩潰的邊緣。故,此時需要將排序列表中所有處于激活狀態(tài)的游標(biāo)所占用的內(nèi)存資源全部釋放掉,以擴(kuò)充當(dāng)前數(shù)據(jù)庫系統(tǒng)的閑置內(nèi)存資源。當(dāng)然,所有的已激活游標(biāo)中可能存在高級別游標(biāo),為防止出現(xiàn)數(shù)據(jù)庫系統(tǒng)出現(xiàn)運行卡頓甚至崩潰的極端情況,高級別游標(biāo)也需要一齊釋放。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第二實施例的基礎(chǔ)上,提出數(shù)據(jù)庫游標(biāo)的控制方法第三實施例,參考圖3,所述第三實施例與第二實施例之間的區(qū)別在于,所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟之后還包括:

步驟s50,存儲本次釋放內(nèi)存資源的所有事件信息,以作為內(nèi)存資源優(yōu)化的依據(jù)。

本實施例中,系統(tǒng)資源釋放完成之后,閑置內(nèi)存資源的剩余容量會增加,由于其是已激活游標(biāo)釋放后獲得的。因此可以存儲本次作業(yè)中所有參與釋放內(nèi)存資源的事件信息(包含了被釋放掉的游標(biāo)對象,以及每個游標(biāo)對象是在哪個步驟被釋放掉,以及該游標(biāo)被釋放掉所釋放出來的內(nèi)存資源等信息)。這些信息反映了數(shù)據(jù)庫系統(tǒng)中游標(biāo)被激活但卻未及時關(guān)閉的技術(shù)問題,從側(cè)面暴露出數(shù)據(jù)庫系統(tǒng)的系統(tǒng)設(shè)計問題,如邏輯設(shè)計上的不合理,或工作原理實現(xiàn)上的不合理等。依據(jù)這些技術(shù)問題,系統(tǒng)操作人員或設(shè)計人員可以有針對性地分析處理,以消除系統(tǒng)游標(biāo)的不合理應(yīng)用,實現(xiàn)內(nèi)存資源的有效優(yōu)化。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第三實施例的基礎(chǔ)上,提出數(shù)據(jù)庫游標(biāo)的控制方法第四實施例,參考圖4,所述第四實施例與第三實施例之間的區(qū)別在于,所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放所述排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟包括:

步驟s41,當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,顯示當(dāng)前排序列表中所有的已激活游標(biāo),以供用戶選擇;

步驟s42,基于用戶選擇的預(yù)選游標(biāo),釋放預(yù)選游標(biāo)占用的內(nèi)存資源。

當(dāng)統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,則需要釋放掉所有已激活游標(biāo)。但是,若用戶想針對性地釋放部分已激活游標(biāo),而將部分游標(biāo)保留執(zhí)行。例如,所有已激活游標(biāo)包括a,b,c三個游標(biāo),此時統(tǒng)計參數(shù)小于預(yù)設(shè)閾值,正常流程下需要釋放a,b,c三個游標(biāo),但用戶只想釋放掉b,c游標(biāo)而保留a游標(biāo)。此時,數(shù)據(jù)庫系統(tǒng)可以提供一個顯示界面,顯示當(dāng)前排序列表中所有的已激活游標(biāo),并提供選擇已激活游標(biāo)的編輯方式,以供用戶選擇。用戶通過編輯,選擇出預(yù)選游標(biāo),作為真正執(zhí)行釋放功能的游標(biāo)對象。根據(jù)預(yù)選游標(biāo),數(shù)據(jù)庫系統(tǒng)將所述預(yù)選游標(biāo)占用的內(nèi)存資源釋放掉。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫游標(biāo)的控制方法第二實施例的基礎(chǔ)上,提出數(shù)據(jù)庫游標(biāo)的控制方法第五實施例,參考圖5,所述第五實施例與第二實施例之間的區(qū)別在于,所述當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放所述排序列表中所有已激活游標(biāo)占用的內(nèi)存資源的步驟包括:

步驟s43,當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,獲取排序列表中所有已激活游標(biāo)的內(nèi)存資源的釋放權(quán)限;

步驟s44,當(dāng)檢測到釋放權(quán)限未能成功釋放所有已激活游標(biāo)占用的內(nèi)存資源時,強(qiáng)制獲取數(shù)據(jù)庫系統(tǒng)的最高權(quán)限;

步驟s45,基于最高權(quán)限釋放所有已激活游標(biāo)占用的內(nèi)存資源。

在數(shù)據(jù)庫系統(tǒng)中,要釋放游標(biāo)需要有一定的操作權(quán)限,釋放權(quán)限的獲取可能基于當(dāng)前數(shù)據(jù)庫系統(tǒng)賬戶。在現(xiàn)實場景中,可能會出現(xiàn)無法釋放某些游標(biāo)的現(xiàn)象。其中,可能存在游標(biāo)處理異常,或游標(biāo)處于保護(hù)狀態(tài)中等原因。此時需要獲取到具體的游標(biāo)釋放權(quán)限,并基于釋放權(quán)限進(jìn)行釋放操作。但是,當(dāng)權(quán)限獲取請求無法獲取到已激活游標(biāo)的釋放權(quán)限時,則證明以當(dāng)前的操作權(quán)限,無法完成已激活游標(biāo)的釋放操作。此時可強(qiáng)制獲取到數(shù)據(jù)庫系統(tǒng)的最高權(quán)限。而最高權(quán)限則意味著當(dāng)前數(shù)據(jù)庫系統(tǒng)的一切操作步驟皆可以無礙執(zhí)行。同樣的道理,擁有最高權(quán)限意味著能夠無礙釋放所有已激活有歐標(biāo)的內(nèi)存資源?;谠撟罡邫?quán)限,數(shù)據(jù)庫系統(tǒng)能夠正常執(zhí)行所有已激活游標(biāo)所占用的內(nèi)存資源。

當(dāng)然,本實施例與第四實施例可相輔相成,獲取系統(tǒng)最高權(quán)限以釋放游標(biāo)占用的內(nèi)存資源的實施例與用戶自定義選擇所要釋放的游標(biāo)的實施例互不矛盾,二者可相互結(jié)合,以形成本發(fā)明不同實施例解決系統(tǒng)內(nèi)存資源不足的問題的優(yōu)選技術(shù)方案。

參考圖6,本發(fā)明還提供一種數(shù)據(jù)庫系統(tǒng),在數(shù)據(jù)庫系統(tǒng)第一實施例中,所述數(shù)據(jù)庫系統(tǒng)中設(shè)置有游標(biāo),且所述游標(biāo)設(shè)置有游標(biāo)級別,其中包括低級別游標(biāo),所述數(shù)據(jù)庫系統(tǒng)包括:

記錄模塊10,用于當(dāng)檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;

數(shù)據(jù)庫系統(tǒng)在正常運行當(dāng)中,會動態(tài)調(diào)用所需的游標(biāo),每當(dāng)數(shù)據(jù)庫系統(tǒng)激活游標(biāo)時,記錄模塊10記錄被激活的數(shù)據(jù)庫游標(biāo),記錄其游標(biāo)級別,獲得所有已激活游標(biāo)的排序列表。

所述游標(biāo)級別,指的是游標(biāo)本身的存在級別,級別的高低意味著游標(biāo)對數(shù)據(jù)庫系統(tǒng)的功能應(yīng)用的影響程度。例如,a游標(biāo)屬于系統(tǒng)級游標(biāo),其功能效用的執(zhí)行對數(shù)據(jù)庫系統(tǒng)的正常運行起到關(guān)鍵性的作用,那么a游標(biāo)即為高級別游標(biāo);而b游標(biāo)屬于普通游標(biāo),其功能效用的執(zhí)行對數(shù)據(jù)庫系統(tǒng)的正常運行幾乎毫無影響,僅作為緩沖數(shù)據(jù)或臨時數(shù)據(jù)的媒介,可輕易再現(xiàn)且執(zhí)行成本低微,那么b游標(biāo)即為低級別游標(biāo)。

一般而言,該列表用于保存所有激活的數(shù)據(jù)庫游標(biāo)對象集合。假設(shè)游標(biāo)的狀態(tài)發(fā)生改變,例如被釋放掉或發(fā)生異常等現(xiàn)象時,數(shù)據(jù)庫系統(tǒng)會實時追蹤到該游標(biāo),并根據(jù)游標(biāo)本身的狀態(tài)實時更新或編輯排序列表,例如對排序列表中相應(yīng)的游標(biāo)進(jìn)行查詢、插入、刪除等操作,以此維護(hù)排序列表。

第一釋放模塊20,用于當(dāng)檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。

為防止游標(biāo)占用數(shù)據(jù)庫系統(tǒng)中過多的內(nèi)存資源,第一釋放模塊20實時監(jiān)測排序列表,例如在每隔一段預(yù)設(shè)時間間隔時,檢測排序列表中所有游標(biāo)的活動狀態(tài)。其中,預(yù)設(shè)時間間隔可以是默認(rèn)的預(yù)設(shè)數(shù)值,也可以是人為自定義生成的具體數(shù)據(jù),如5秒,10秒等等。游標(biāo)的不同狀態(tài)存在不同的使用意義,游標(biāo)被關(guān)閉時則不存在,如被激活,則可能處于被調(diào)用狀態(tài),也可能處于空載閑置狀態(tài)。

在數(shù)據(jù)庫系統(tǒng)中,游標(biāo)可以被數(shù)據(jù)庫系統(tǒng)中的可用進(jìn)程或線程激活,并在激活之后為調(diào)用主體(可以是進(jìn)程或線程)所調(diào)取應(yīng)用。而當(dāng)游標(biāo)被激活后,處于激活狀態(tài)的游標(biāo)會被其調(diào)取并進(jìn)入應(yīng)用狀態(tài),此時,該游標(biāo)會占據(jù)相當(dāng)程度的系統(tǒng)內(nèi)存資源,以作為游標(biāo)執(zhí)行其功能的運行空間。而當(dāng)所述進(jìn)程或線程調(diào)用完畢時,該游標(biāo)將不再作為功能調(diào)用的需求對象,此時的游標(biāo)處于閑置狀態(tài),若未將其關(guān)閉,該處于激活狀態(tài)的游標(biāo)依舊會占據(jù)部分內(nèi)存資源。

以上所述的游標(biāo)狀態(tài)中,處于激活狀態(tài)的游標(biāo)會占據(jù)系統(tǒng)資源,但其中,處于激活且被調(diào)用狀態(tài)的游標(biāo)正在被使用,若強(qiáng)行中止,可能會影響到當(dāng)前數(shù)據(jù)庫系統(tǒng)的正常執(zhí)行。而處于激活且閑置狀態(tài)的游標(biāo)當(dāng)前狀況下并未發(fā)揮其功能效用,卻消耗著系統(tǒng)本身的內(nèi)存資源,容易影響到數(shù)據(jù)庫系統(tǒng)的正常運行。因此需要對處于激活且閑置狀態(tài)的游標(biāo)進(jìn)行排查。在本實施例中,第一釋放模塊20檢測排序列表中處于激活狀態(tài)且同時處于閑置狀態(tài)的游標(biāo),并且根據(jù)其游標(biāo)級別,只篩選出低級別游標(biāo)。因為低級別游標(biāo)不會影響到數(shù)據(jù)庫系統(tǒng)本身的正常運行。只有同時滿足已激活、閑置、低級別三種條件的游標(biāo),才是本實施例執(zhí)行定時檢測的篩選對象。

在排序列表中若檢測到同時滿足已激活、閑置、低級別三大條件的游標(biāo),即為本實施例所要進(jìn)行資源釋放的檢測對象。由于此時該游標(biāo)處于閑置狀態(tài),故無需解除進(jìn)程或線程占用該游標(biāo)的操作,可直接釋放掉其在激活且閑置狀態(tài)下所占用的內(nèi)存資源。

需要說明的是,處于激活且閑置狀態(tài)下的低級別游標(biāo)雖然并未被調(diào)用以執(zhí)行其功能效用,但其本身依舊處于待調(diào)用狀態(tài),可隨時被調(diào)用主體(可以是進(jìn)程或線程)重新調(diào)用,因此該游標(biāo)對象依舊保持著與調(diào)用主體的數(shù)據(jù)接口以及實現(xiàn)其功能的其他對象的數(shù)據(jù)接口,而數(shù)據(jù)接口的實現(xiàn)本身就需要消耗占據(jù)系統(tǒng)內(nèi)存資源。這部分內(nèi)存資源在游標(biāo)閑置的情況下依舊被占用而未被釋放掉,將其釋放出來能夠最大化地利用系統(tǒng)內(nèi)存資源,提高內(nèi)存資源的應(yīng)用效率,防止內(nèi)存資源不足進(jìn)而出現(xiàn)系統(tǒng)運行不流暢、卡頓等問題。

優(yōu)選地,排序列表中保存了大量處于激活狀態(tài)的游標(biāo),當(dāng)?shù)图墑e游標(biāo)被釋放掉后,需要將該低級別游標(biāo)從列表中刪除。假設(shè)不將其進(jìn)行刪除,列表中既保存了激活狀態(tài)的游標(biāo)也保存了已被釋放掉的游標(biāo),而已被釋放掉的游標(biāo)在排序列表中并無用處。本實施例所要實現(xiàn)的是對激活狀態(tài)的游標(biāo)的清理釋放,對于已釋放掉的游標(biāo)并無處理機(jī)制。因此已釋放掉的游標(biāo)需要進(jìn)行清理刪除,以提高游標(biāo)檢測和查詢的工作效率。同時,假設(shè)不刪除已釋放掉的游標(biāo),那么隨著數(shù)據(jù)庫系統(tǒng)運行時間的增長,被釋放掉游標(biāo)的記錄會越來越多,即排序列表本身占用的內(nèi)存資源也會增加,從另一個方面后影響到數(shù)據(jù)庫系統(tǒng)的正常運行。

本發(fā)明的技術(shù)方案中,當(dāng)記錄模塊10檢測到數(shù)據(jù)庫激活游標(biāo)時,記錄激活的游標(biāo)及其游標(biāo)級別,以獲得所有已激活游標(biāo)的排序列表;當(dāng)?shù)谝会尫拍K20檢測到排序列表中存在已激活且閑置的低級別游標(biāo)時,釋放低級別游標(biāo)占用的內(nèi)存資源。本發(fā)明采用實時監(jiān)測數(shù)據(jù)庫游標(biāo)使用狀態(tài)的方式,在內(nèi)存資源不足時,根據(jù)游標(biāo)級別關(guān)閉游標(biāo)進(jìn)行資源釋放,避免游標(biāo)本身占用過多的內(nèi)存資源而導(dǎo)致系統(tǒng)由于沒有足夠的內(nèi)存癱瘓、卡頓、死機(jī)等問題,有效解決數(shù)據(jù)庫游標(biāo)導(dǎo)致的內(nèi)存泄露。本發(fā)明采用實時監(jiān)測數(shù)據(jù)庫游標(biāo)使用狀態(tài)的方式,在內(nèi)存資源不足時,根據(jù)游標(biāo)級別關(guān)閉游標(biāo)進(jìn)行資源釋放,避免游標(biāo)本身占用過多的內(nèi)存資源而導(dǎo)致系統(tǒng)由于沒有足夠的內(nèi)存癱瘓、卡頓、死機(jī)等問題,有效解決數(shù)據(jù)庫游標(biāo)導(dǎo)致的內(nèi)存泄露。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫系統(tǒng)第一實施例的基礎(chǔ)上,提出數(shù)據(jù)庫系統(tǒng)第二實施例,參考圖7,所述第二實施例與第一實施例之間的區(qū)別在于,所述數(shù)據(jù)庫系統(tǒng)還包括:

統(tǒng)計模塊30,用于統(tǒng)計當(dāng)前數(shù)據(jù)庫系統(tǒng)的閑置內(nèi)存資源,以獲得對應(yīng)的統(tǒng)計參數(shù);

所述閑置內(nèi)存資源,指的是數(shù)據(jù)庫系統(tǒng)中,當(dāng)前處于閑置狀態(tài)的,并未被調(diào)用的內(nèi)存資源。一般而言,系統(tǒng)資源除了被調(diào)用的內(nèi)存資源,需要部分閑置的內(nèi)存資源作為后續(xù)功能執(zhí)行時被調(diào)用的預(yù)設(shè)資源。統(tǒng)計模塊50可查詢獲取到處于閑置狀態(tài)的內(nèi)存資源,由于內(nèi)存資源的存儲方式不一定是連接的,可以存在分段分區(qū)形式的內(nèi)存資源,因此需要對所有處于閑置狀態(tài)的內(nèi)存資源進(jìn)行統(tǒng)計,以獲得對應(yīng)的統(tǒng)計參數(shù)。所述統(tǒng)計參數(shù)指的是該處于閑置狀態(tài)的內(nèi)存資源的剩余容量。

第二釋放模塊40,用于當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,釋放排序列表中所有已激活游標(biāo)占用的內(nèi)存資源。

在本實施例中,數(shù)據(jù)庫系統(tǒng)設(shè)置了一個預(yù)設(shè)閾值,該預(yù)設(shè)閾值作為統(tǒng)計參數(shù)的一個邊界參考數(shù)值,該數(shù)值指代的是數(shù)據(jù)庫系統(tǒng)中處于閑置狀態(tài)的內(nèi)存資源的剩余容量的最低門限值。當(dāng)統(tǒng)計所獲得的統(tǒng)計參數(shù)小于該預(yù)設(shè)閾值時,則證明數(shù)據(jù)庫系統(tǒng)中作為緩沖的閑置狀態(tài)的內(nèi)存資源達(dá)到了最低門限值,若沒有新的閑置狀態(tài)的內(nèi)存資源作為補(bǔ)充,數(shù)據(jù)庫系統(tǒng)將處于時刻發(fā)生運行不流暢甚至系統(tǒng)崩潰的邊緣。故,此時需要將排序列表中所有處于激活狀態(tài)的游標(biāo)所占用的內(nèi)存資源全部釋放掉,以擴(kuò)充當(dāng)前數(shù)據(jù)庫系統(tǒng)的閑置內(nèi)存資源。當(dāng)然,所有的已激活游標(biāo)中可能存在高級別游標(biāo),為防止出現(xiàn)數(shù)據(jù)庫系統(tǒng)出現(xiàn)運行卡頓甚至崩潰的極端情況,高級別游標(biāo)也需要一齊釋放。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫系統(tǒng)第二實施例的基礎(chǔ)上,提出數(shù)據(jù)庫系統(tǒng)第三實施例,參考圖8,所述第三實施例與第二實施例之間的區(qū)別在于,所述數(shù)據(jù)庫系統(tǒng)還包括:

存儲模塊50,用于存儲本次釋放內(nèi)存資源的所有事件信息,以作為內(nèi)存資源優(yōu)化的依據(jù)。

本實施例中,系統(tǒng)資源釋放完成之后,閑置內(nèi)存資源的剩余容量會增加,由于其是已激活游標(biāo)釋放后獲得的。因此可以存儲本次作業(yè)中所有參與釋放內(nèi)存資源的事件信息(包含了被釋放掉的游標(biāo)對象,以及每個游標(biāo)對象是在哪個步驟被釋放掉,以及該游標(biāo)被釋放掉所釋放出來的內(nèi)存資源等信息)。這些信息反映了數(shù)據(jù)庫系統(tǒng)中游標(biāo)被激活但卻未及時關(guān)閉的技術(shù)問題,從側(cè)面暴露出數(shù)據(jù)庫系統(tǒng)的系統(tǒng)設(shè)計問題,如邏輯設(shè)計上的不合理,或工作原理實現(xiàn)上的不合理等。依據(jù)這些技術(shù)問題,系統(tǒng)操作人員或設(shè)計人員可以有針對性地分析處理,以消除系統(tǒng)游標(biāo)的不合理應(yīng)用,實現(xiàn)內(nèi)存資源的有效優(yōu)化。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫系統(tǒng)第三實施例的基礎(chǔ)上,提出數(shù)據(jù)庫系統(tǒng)第四實施例,參考圖9,所述第四實施例與第三實施例之間的區(qū)別在于,所述第二釋放模塊40包括:

顯示單元41,用于當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,顯示當(dāng)前排序列表中所有的已激活游標(biāo),以供用戶選擇;

第一釋放單元42,用于基于用戶選擇的預(yù)選游標(biāo),釋放預(yù)選游標(biāo)占用的內(nèi)存資源。

當(dāng)統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,則需要釋放掉所有已激活游標(biāo)。但是,若用戶想針對性地釋放部分已激活游標(biāo),而將部分游標(biāo)保留執(zhí)行。例如,所有已激活游標(biāo)包括a,b,c三個游標(biāo),此時統(tǒng)計參數(shù)小于預(yù)設(shè)閾值,正常流程下需要釋放a,b,c三個游標(biāo),但用戶只想釋放掉b,c游標(biāo)而保留a游標(biāo)。此時,數(shù)據(jù)庫系統(tǒng)可以提供一個顯示界面,顯示當(dāng)前排序列表中所有的已激活游標(biāo),并提供選擇已激活游標(biāo)的編輯方式,以供用戶選擇。用戶通過編輯,選擇出預(yù)選游標(biāo),作為真正執(zhí)行釋放功能的游標(biāo)對象。根據(jù)預(yù)選游標(biāo),數(shù)據(jù)庫系統(tǒng)將所述預(yù)選游標(biāo)占用的內(nèi)存資源釋放掉。

進(jìn)一步地,在本發(fā)明數(shù)據(jù)庫系統(tǒng)第一實施例的基礎(chǔ)上,提出數(shù)據(jù)庫系統(tǒng)第五實施例,參考圖10,所述第五實施例與第一實施例之間的區(qū)別在于,所述第二釋放模塊40包括:

獲取單元43,用于當(dāng)檢測到統(tǒng)計參數(shù)小于預(yù)設(shè)閾值時,獲取排序列表中所有已激活游標(biāo)的內(nèi)存資源的釋放權(quán)限;

權(quán)限單元44,用于當(dāng)檢測到釋放權(quán)限未能成功釋放所有已激活游標(biāo)占用的內(nèi)存資源時,強(qiáng)制獲取數(shù)據(jù)庫系統(tǒng)的最高權(quán)限;

第二釋放單元45,用于基于最高權(quán)限釋放所有已激活游標(biāo)占用的內(nèi)存資源。

在數(shù)據(jù)庫系統(tǒng)中,要釋放游標(biāo)需要有一定的操作權(quán)限,釋放權(quán)限的獲取可能基于當(dāng)前數(shù)據(jù)庫系統(tǒng)賬戶。在現(xiàn)實場景中,可能會出現(xiàn)無法釋放某些游標(biāo)的現(xiàn)象。其中,可能存在游標(biāo)處理異常,或游標(biāo)處于保護(hù)狀態(tài)中等原因。此時需要獲取到具體的游標(biāo)釋放權(quán)限,并基于釋放權(quán)限進(jìn)行釋放操作。但是,當(dāng)權(quán)限獲取請求無法獲取到已激活游標(biāo)的釋放權(quán)限時,則證明以當(dāng)前的操作權(quán)限,無法完成已激活游標(biāo)的釋放操作。此時可強(qiáng)制獲取到數(shù)據(jù)庫系統(tǒng)的最高權(quán)限。而最高權(quán)限則意味著當(dāng)前數(shù)據(jù)庫系統(tǒng)的一切操作步驟皆可以無礙執(zhí)行。同樣的道理,擁有最高權(quán)限意味著能夠無礙釋放所有已激活有歐標(biāo)的內(nèi)存資源?;谠撟罡邫?quán)限,數(shù)據(jù)庫系統(tǒng)能夠正常執(zhí)行所有已激活游標(biāo)所占用的內(nèi)存資源。

當(dāng)然,本實施例與第四實施例可相輔相成,獲取系統(tǒng)最高權(quán)限以釋放游標(biāo)占用的內(nèi)存資源的實施例與用戶自定義選擇所要釋放的游標(biāo)的實施例互不矛盾,二者可相互結(jié)合,以形成本發(fā)明不同實施例解決系統(tǒng)內(nèi)存資源不足的問題的優(yōu)選技術(shù)方案。

需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。

上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。

以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1