專利名稱:數(shù)據(jù)庫資源的調(diào)度方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫管理,具體而言,涉及一種數(shù)據(jù)庫資源的調(diào)度方法和裝置。
背景技術(shù):
隨著IT技術(shù)的不斷普及,目前各種基于數(shù)據(jù)庫的軟件系統(tǒng)在各行各業(yè)中獲得廣 泛地應(yīng)用。而隨著企業(yè)組織對軟件系統(tǒng)的應(yīng)用不斷深入,軟件系統(tǒng)規(guī)模也朝著也來越龐大 和復(fù)雜的方向發(fā)展。數(shù)據(jù)庫通常都是這些系統(tǒng)的核心之一,系統(tǒng)中的大量操作都依賴于數(shù) 據(jù)庫。而規(guī)模和復(fù)雜度的提高使得這些軟件系統(tǒng)普遍都在數(shù)據(jù)庫上面臨瓶頸,這成為這些 軟件系統(tǒng)的最常見的瓶頸之一。業(yè)務(wù)系統(tǒng)的所有數(shù)據(jù)庫請求都可以平等地爭用數(shù)據(jù)庫服務(wù)器的全部計算資源。當(dāng) 數(shù)據(jù)庫計算資源發(fā)生緊張時,如果不對計算資源進(jìn)行控制,就無法為某些重要的操作保留 必需的計算資源。如圖1所示,系統(tǒng)包含登錄、單據(jù)錄入、報表統(tǒng)計操作。報表統(tǒng)計在發(fā)起之后占用 了數(shù)據(jù)庫的大量的CPU時間和內(nèi)存,導(dǎo)致在報表統(tǒng)計操作結(jié)束之前,用戶登錄或者業(yè)務(wù)數(shù) 據(jù)錄入操作都有可能響應(yīng)緩慢。各種大型業(yè)務(wù)計算總是會輕而易舉的吞噬掉數(shù)據(jù)庫服務(wù)器的大量計算資源,軟件 系統(tǒng)會在這些操作發(fā)起之后突發(fā)地變得緩慢和遲鈍,這已經(jīng)成為一種普遍問題。在這種情 況下,通過約束軟件系統(tǒng)中的某些類型的操作可占用的計算資源的上限,依據(jù)不同的工作 負(fù)荷對其可用資源的進(jìn)行分配調(diào)控,對提升整個應(yīng)用系統(tǒng)的穩(wěn)定性和流暢性就具有了良好 的實用價值。面對數(shù)據(jù)庫資源瓶頸,目前通常的方法有兩種優(yōu)化應(yīng)用系統(tǒng)的SQL操作或相關(guān) 的數(shù)據(jù)表和增加硬件資源。前一種方法的本質(zhì)是修改“業(yè)務(wù)計算”本身以適應(yīng)緊缺的資源,需要對應(yīng)用系統(tǒng)的 結(jié)構(gòu)或者內(nèi)部邏輯進(jìn)行修改。后一種方法則需要企業(yè)在成本上的支持,而通常應(yīng)用系統(tǒng)的 計算資源的要求總是無止境的,隨著業(yè)務(wù)規(guī)模的擴(kuò)大而不斷增長。這兩種辦法從本質(zhì)上來說,都是繞著問題走,并沒有直接介入對“業(yè)務(wù)計算”和“計 算資源”這兩者及其之間關(guān)系的管理。因此,需要一種新的方式,既能夠保證數(shù)據(jù)庫資源不會某些操作全部占用導(dǎo)致緩 慢,又能保證數(shù)據(jù)庫資源滿足多種業(yè)務(wù)的操作請求。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種新的方式,既能夠保證數(shù)據(jù)庫資源不 會某些操作全部占用導(dǎo)致緩慢,又能保證數(shù)據(jù)庫資源滿足多種業(yè)務(wù)的操作請求。有鑒于此,本發(fā)明提供一種數(shù)據(jù)庫資源的調(diào)度方法,包括步驟202,為數(shù)據(jù)庫設(shè) 置多個計算資源池,并為每個計算資源池分配計算資源;步驟204,業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操 作時,根據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作分配計算資源池,并提供所述計算資源
3池中的計算資源以進(jìn)行所述數(shù)據(jù)庫操作。在該技術(shù)方案中,通過將數(shù)據(jù)庫的資源合理分配, 使得各類數(shù)據(jù)庫操作只能占用一定比例的資源,保證了其他數(shù)據(jù)庫操作正常進(jìn)行。在上述技術(shù)方案中,優(yōu)選地,所述業(yè)務(wù)操作的類型包括工作負(fù)荷類型,標(biāo)識所述數(shù) 據(jù)庫操作的工作負(fù)荷大小;在所述步驟204中,根據(jù)所述業(yè)務(wù)操作的工作負(fù)荷類型,為所述 數(shù)據(jù)庫操作分配所述計算資源池。在上述技術(shù)方案中,優(yōu)選地,所述業(yè)務(wù)操作通過連接字符串發(fā)起所述數(shù)據(jù)庫操作; 在所述步驟204中,還在所述連接字符串中加入工作負(fù)荷標(biāo)識信息,以表示所述業(yè)務(wù)操作 的工作負(fù)荷類型。在上述技術(shù)方案中,優(yōu)選地,在所述步驟204之前,設(shè)置工作負(fù)荷類型表,記錄所 述每個計算資源池與每個工作負(fù)荷類型的業(yè)務(wù)操作之間的對應(yīng)關(guān)系;在所述步驟204中, 還根據(jù)所述工作負(fù)荷類型表,為所述數(shù)據(jù)庫操作分配所述計算資源池。在上述技術(shù)方案中,優(yōu)選地,在所述步驟202中,為所述每個計算資源池分配計算 資源包括設(shè)置所述每個計算資源池的CPU時間占用率、內(nèi)存占用率。本發(fā)明還提供一種數(shù)據(jù)庫資源的調(diào)度裝置,包括設(shè)置模塊,為數(shù)據(jù)庫設(shè)置多個計 算資源池,并為每個計算資源池分配計算資源;調(diào)度模塊,業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操作時,根 據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作分配計算資源池,并提供所述計算資源池中的計 算資源以進(jìn)行所述數(shù)據(jù)庫操作。在該技術(shù)方案中,通過將數(shù)據(jù)庫的資源合理分配,使得各類 數(shù)據(jù)庫操作只能占用一定比例的資源,保證了其他數(shù)據(jù)庫操作正常進(jìn)行。在上述技術(shù)方案中,優(yōu)選地,所述業(yè)務(wù)操作的類型包括工作負(fù)荷類型,標(biāo)識所述數(shù) 據(jù)庫操作的工作負(fù)荷大??;所述調(diào)度模塊根據(jù)所述業(yè)務(wù)操作的工作負(fù)荷類型,為所述數(shù)據(jù) 庫操作分配所述計算資源池。在上述技術(shù)方案中,優(yōu)選地,所述業(yè)務(wù)操作通過連接字符串發(fā)起所述數(shù)據(jù)庫操作; 所述調(diào)度裝置還包括標(biāo)識模塊,在所述連接字符串中加入工作負(fù)荷標(biāo)識信息,以表示所述 業(yè)務(wù)操作的工作負(fù)荷類型。在上述技術(shù)方案中,優(yōu)選地,所述設(shè)置模塊還設(shè)置工作負(fù)荷類型表,記錄所述每個 計算資源池與每個工作負(fù)荷類型的業(yè)務(wù)操作之間的對應(yīng)關(guān)系;所述調(diào)度模塊還根據(jù)所述工 作負(fù)荷類型表,為所述數(shù)據(jù)庫操作分配所述計算資源池。在上述技術(shù)方案中,優(yōu)選地,所述設(shè)置模塊通過設(shè)置所述每個計算資源池的CPU 時間占用率、內(nèi)存占用率,來為所述每個計算資源池分配計算資源。通過以上技術(shù)方案,可以實現(xiàn)一種數(shù)據(jù)庫資源的調(diào)度方法和裝置,通過將數(shù)據(jù)庫 的資源合理分配,使得數(shù)據(jù)庫操作根據(jù)其工作負(fù)荷類型,只能使用一定比例的資源,保證了 其他數(shù)據(jù)庫操作正常進(jìn)行。
圖1是當(dāng)前的業(yè)務(wù)系統(tǒng)請求數(shù)據(jù)庫操作的示意圖;圖2是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度方法的流程圖;圖3是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度裝置的框圖;圖4是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度方法分配數(shù)據(jù)庫資源的示 意圖5是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度方法中傳遞工作負(fù)荷的流 程圖;圖6是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度方法中進(jìn)行分配數(shù)據(jù)庫資 源的流程圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實 施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實 施例的限制。圖2是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度方法的流程圖。如圖2所示,本發(fā)明提供一種數(shù)據(jù)庫資源的調(diào)度方法,包括步驟202,為數(shù)據(jù)庫設(shè) 置多個計算資源池,并為每個計算資源池分配計算資源;步驟204,業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操 作時,根據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作分配計算資源池,并提供所述計算資源 池中的計算資源以進(jìn)行所述數(shù)據(jù)庫操作。在該技術(shù)方案中,通過將數(shù)據(jù)庫的資源合理分配, 使得各類數(shù)據(jù)庫操作只能占用一定比例的資源,保證了其他數(shù)據(jù)庫操作正常進(jìn)行。在上述技術(shù)方案中,所述業(yè)務(wù)操作的類型包括工作負(fù)荷類型,標(biāo)識所述數(shù)據(jù)庫操 作的工作負(fù)荷大小;在所述步驟204中,根據(jù)所述業(yè)務(wù)操作的工作負(fù)荷類型,為所述數(shù)據(jù)庫 操作分配所述計算資源池。在上述技術(shù)方案中,所述業(yè)務(wù)操作通過連接字符串發(fā)起所述數(shù)據(jù)庫操作;在所述 步驟204中,還在所述連接字符串中加入工作負(fù)荷標(biāo)識信息,以表示所述業(yè)務(wù)操作的工作 負(fù)荷類型。在上述技術(shù)方案中,在所述步驟204之前,設(shè)置工作負(fù)荷類型表,記錄所述每個計 算資源池與每個工作負(fù)荷類型的業(yè)務(wù)操作之間的對應(yīng)關(guān)系;在所述步驟204中,還根據(jù)所 述工作負(fù)荷類型表,為所述數(shù)據(jù)庫操作分配所述計算資源池。在上述技術(shù)方案中,在所述步驟202中,為所述每個計算資源池分配計算資源包 括設(shè)置所述每個計算資源池的CPU時間占用率、內(nèi)存占用率。圖3是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度裝置的框圖。如圖3所示,本發(fā)明還提供一種數(shù)據(jù)庫資源的調(diào)度裝置300,包括設(shè)置模塊302, 為數(shù)據(jù)庫設(shè)置多個計算資源池,并為每個計算資源池分配計算資源;調(diào)度模塊304,業(yè)務(wù)操 作發(fā)起數(shù)據(jù)庫操作時,根據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作分配計算資源池,并提 供所述計算資源池中的計算資源以進(jìn)行所述數(shù)據(jù)庫操作。在該技術(shù)方案中,通過將數(shù)據(jù)庫 的資源合理分配,使得各類數(shù)據(jù)庫操作只能占用一定比例的資源,保證了其他數(shù)據(jù)庫操作 正常進(jìn)行。在上述技術(shù)方案中,所述業(yè)務(wù)操作的類型包括工作負(fù)荷類型,標(biāo)識所述數(shù)據(jù)庫操 作的工作負(fù)荷大小;所述調(diào)度模塊304根據(jù)所述業(yè)務(wù)操作的工作負(fù)荷類型,為所述數(shù)據(jù)庫 操作分配所述計算資源池。在上述技術(shù)方案中,所述業(yè)務(wù)操作通過連接字符串發(fā)起所述數(shù)據(jù)庫操作;所述調(diào)度裝置還包括標(biāo)識模塊306,在所述連接字符串中加入工作負(fù)荷標(biāo)識信息,以表示所述業(yè) 務(wù)操作的工作負(fù)荷類型。在上述技術(shù)方案中,所述設(shè)置模塊302還設(shè)置工作負(fù)荷類型表,記錄所述每個計 算資源池與每個工作負(fù)荷類型的業(yè)務(wù)操作之間的對應(yīng)關(guān)系;所述調(diào)度模塊304還根據(jù)所述 工作負(fù)荷類型表,為所述數(shù)據(jù)庫操作分配所述計算資源池。在上述技術(shù)方案中,所述設(shè)置模塊302通過設(shè)置所述每個計算資源池的CPU時間 占用率、內(nèi)存占用率,來為所述每個計算資源池分配計算資源。圖4是根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)庫資源的調(diào)度方法分配數(shù)據(jù)庫資源的示 意圖。本實施例中的數(shù)據(jù)庫資源的調(diào)度方法如下(1)劃分計算資源池為數(shù)據(jù)庫劃分多個計算資源池,每個計算資源池都被指定 了在其中執(zhí)行的數(shù)據(jù)庫操作能夠使用的CPU、內(nèi)存的上限。(2)分類標(biāo)識系統(tǒng)工作負(fù)荷為軟件系統(tǒng)的各種業(yè)務(wù)操作按其工作負(fù)荷大小進(jìn)行 分類標(biāo)識;當(dāng)某種類型的業(yè)務(wù)計算在進(jìn)行數(shù)據(jù)庫操作時,將操作的負(fù)荷類型標(biāo)識符傳遞給 數(shù)據(jù)庫,由數(shù)據(jù)庫按負(fù)荷類型分配到不同計算資源池執(zhí)行計算。(3)按工作負(fù)荷類型分配數(shù)據(jù)庫計算資源池在數(shù)據(jù)庫中定義資源分配策略,根 據(jù)業(yè)務(wù)系統(tǒng)發(fā)起的操作中的工作負(fù)荷類型標(biāo)識符將對應(yīng)的數(shù)據(jù)庫請求分配到某個計算資 源池執(zhí)行。按以上步驟實現(xiàn)的數(shù)據(jù)庫資源分配的一個示意圖如圖4所示。下面詳細(xì)闡述每個步驟的具體做法一、為數(shù)據(jù)庫劃分多個計算資源池“計算資源池”定義了對數(shù)據(jù)庫操作可用的計算資源的范圍。對計算資源池的劃分 中,CPU時間占用率、內(nèi)存占用率是兩個主要的指標(biāo)。如上圖,將一個數(shù)據(jù)庫總的計算資源 分為兩個計算資源池一部分是用于軟件系統(tǒng)中的諸如登錄、單據(jù)錄入之類的輕量操作的 計算資源池,在資源緊張時只能占用70%的CPU時間和內(nèi)存;另一部分是為諸如報表統(tǒng)計 這類重型操作的計算資源池,在資源緊張時最多只能占用30%的CPU時間和內(nèi)存。劃分資源池的做法需要數(shù)據(jù)庫系統(tǒng)的支持?!坝嬎阗Y源池”是個一般性的概念,對 于不同的數(shù)據(jù)庫,其具體表現(xiàn)形式不同。當(dāng)今的主流數(shù)據(jù)庫(SqlServer、Oracle等)都具 備了這樣的基礎(chǔ)功能,盡管在不同廠商的數(shù)據(jù)庫系統(tǒng)上的配置操作有差別,但其基本過程 都是一樣的,那就是(1)按負(fù)荷類型劃分并命名多個資源池。例如在一個數(shù)據(jù)庫中我們劃分出3個資 源池poolnormal,pool_ligh和p00l_default,分別用于輕量操作、重量操作和非業(yè)務(wù)系 統(tǒng)的操作。(2)為每個資源池設(shè)置可用資源上限。例如,用于系統(tǒng)中占大多數(shù)的輕量操作的 pool_normal資源池在資源緊缺時最多可用到50% CPU和內(nèi)存,而pool_high則配置為在 資源緊缺時僅能占用30% CPU和40%內(nèi)存,而pooldefault配置為在資源緊缺時可占用 20% CPU 禾口 10% 內(nèi)存。二、分類標(biāo)識系統(tǒng)工作負(fù)荷這是一個對軟件系統(tǒng)中各類操作的按其工作負(fù)荷大小進(jìn)行分類的過程,最終需要形成一個工作負(fù)荷類型表。例如,軟件系統(tǒng)中常見的登錄、表單錄入、表單修改這些操作都 是比較輕量的,那么可以將這些輕量的操作都標(biāo)識為normal類型操作;而對于報表查詢、 批量導(dǎo)入導(dǎo)出之類的操作統(tǒng)一標(biāo)識為high類型操作;這樣我們的系統(tǒng)中的工作負(fù)荷類型 表包括兩種負(fù)荷類型normal和high。“工作負(fù)荷類型表”在此只是個一般性的概念,對于不同的軟件系統(tǒng),其形成工作 負(fù)荷的類型會由于其具體情況而有所不同,可能更加細(xì)化,而“工作負(fù)荷類型表”的具體形 式也可能不同,但其結(jié)果都是相同的,也就是對系統(tǒng)中的工作負(fù)荷做出分類和標(biāo)識。建立工作負(fù)荷分類之后,需要在執(zhí)行業(yè)務(wù)操作時將工作負(fù)荷的分類標(biāo)識符在發(fā)起 的數(shù)據(jù)庫請求中傳遞給數(shù)據(jù)庫系統(tǒng)。工作負(fù)荷分類標(biāo)識的傳遞方法是與數(shù)據(jù)庫系統(tǒng)按工作 負(fù)荷分配計算資源池的分配策略密切相關(guān)的,如圖5所示。步驟502,執(zhí)行業(yè)務(wù)操作;步驟504,準(zhǔn)備連接數(shù)據(jù)庫;步驟506,為數(shù)據(jù)連接加入操作的工作負(fù)荷類型通過在業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操 作的連接字符串中加入工作負(fù)荷分類標(biāo)識信息的方法傳遞工作負(fù)荷類型。由于不同的數(shù)據(jù)庫系統(tǒng)的連接字符串的格式不同,在連接字符串中添加工作負(fù)荷 類型信息的方式也略有不同。例如,要將界面輸入的一份表單數(shù)據(jù)通過執(zhí)行Insert操作 將數(shù)據(jù)插入到某個表,在系統(tǒng)中將該操作的工作負(fù)荷標(biāo)識為normal類型。那么在連接數(shù) 據(jù)庫時通過采用形式諸如 “Data Source = Iocalhost ;Initial Catalog EnterpriseDB ; UserID = sa ;Password = 123456 Application Name = normal的連接字符串,將 "Application Name”配置節(jié)的值設(shè)置為工作負(fù)荷類型,就可以將工作負(fù)荷類型傳遞給數(shù)據(jù) 庫系統(tǒng)。如果是諸如報表查詢之類的重型操作,其工作負(fù)荷類型為high,那么“Application Name”配置節(jié)則應(yīng)該是“Application Name = high”形式?!癆pplication Name”配置節(jié)在 此僅是一個示例,對于不同的數(shù)據(jù)庫,其連接字符串使用的配置節(jié)也有所不同,有些并沒有 Application Name配置節(jié),但也可以找到類似的配置節(jié)或者添加自定義配置節(jié)來傳遞工作 負(fù)荷類型,例如“workload = normal”。再或者也可以通過所有數(shù)據(jù)庫連接字符串中都存在 的用戶名配置節(jié),如-.User Id = normal,不過以連接字符串的用戶名配置節(jié)傳遞工作負(fù)荷 類型的做法要求數(shù)據(jù)庫中得為此創(chuàng)建數(shù)據(jù)庫用戶才行。步驟508,連接并執(zhí)行數(shù)據(jù)庫操作。工作負(fù)荷類型信息被加入到數(shù)據(jù)庫連接字符串 的特定的配置節(jié)中,當(dāng)數(shù)據(jù)庫收到請求后可以根據(jù)請求的連接字符串從特定的配置節(jié)中獲 取到工作負(fù)荷類型,然后分配到相應(yīng)的計算資源池執(zhí)行操作。三、按工作負(fù)荷類型分配數(shù)據(jù)庫計算資源池在數(shù)據(jù)庫中定義資源分配策略,根據(jù)業(yè)務(wù)系統(tǒng)發(fā)起的操作中的工作負(fù)荷類型標(biāo)識 符將對應(yīng)的數(shù)據(jù)庫請求分配到某個計算資源池執(zhí)行,具體步驟如圖6所示步驟602,獲取數(shù)據(jù)庫當(dāng)前回話的“工作負(fù)荷類型”獲取工作負(fù)荷類型的方 法與其傳遞方式相關(guān),通過調(diào)用數(shù)據(jù)庫系統(tǒng)的API可以獲取工作負(fù)荷類型標(biāo)識。以MS SqlServer2008為例,如果是通過Application Name配置節(jié)傳遞的,通過系統(tǒng)函數(shù)APP_ NAME()可以獲得該值,也就是工作負(fù)荷類型標(biāo)識。如果是通過用戶名傳遞,則通過系統(tǒng)函數(shù) SUSER_NAME ()獲得用戶名,也就是工作負(fù)荷標(biāo)識。步驟604,根據(jù)“工作負(fù)荷類型”確定可以使用的計算資源池根據(jù)工作負(fù)荷類型確定可使用的計算資源池的過程是與計算資源池的配置過程相對應(yīng)的。例如,軟件系統(tǒng)的 工作負(fù)荷分為normal和high兩種類型,我們?yōu)榇伺渲玫挠嬎阗Y源池如果也采用一致相關(guān) 的命名,如pool_normal和pool_high,除此之外數(shù)據(jù)庫還配置了 pool_default池。也就是 說,如果當(dāng)前的工作負(fù)荷類型為“normal”,則可以確定當(dāng)前應(yīng)使用poolnormal池執(zhí)行;如 果是“high”,則當(dāng)前應(yīng)使用pool_high池執(zhí)行;如果都不是,則使用pooldefault池執(zhí)行。步驟606,將數(shù)據(jù)庫操作交到使用的計算資源池上執(zhí)行確定了要使用的計算資 源池之后,需要將當(dāng)前數(shù)據(jù)庫請求的操作交由數(shù)據(jù)庫系統(tǒng)安裝指定的計算資源池配置的資 源約束方案執(zhí)行。這一步驟的具體操作方法對于不同類型的數(shù)據(jù)庫系統(tǒng)在API上有所區(qū) 別,對于MS SqlServer2008是通過自定義分類器函數(shù)(Classifer Function)返回要使用 的計算資源池的名稱給數(shù)據(jù)庫系統(tǒng),由數(shù)據(jù)庫引擎將請求路由到該計算資源池執(zhí)行。主流 的數(shù)據(jù)系統(tǒng)都有相應(yīng)的API提供類似的功能,對于不同的數(shù)據(jù)庫系統(tǒng)只需根據(jù)API做些相 應(yīng)調(diào)整即可。根據(jù)本發(fā)明的技術(shù)方案,可以實現(xiàn)一種數(shù)據(jù)庫資源的調(diào)度方法和裝置,通過限制 某些重型操作在系統(tǒng)資源緊缺時的可用資源上限,可以有效地平緩這些重型操作突發(fā)的大 計算量給系統(tǒng)造成的沖擊。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)庫資源的調(diào)度方法,其特征在于,包括步驟202,為數(shù)據(jù)庫設(shè)置多個計算資源池,并為每個計算資源池分配計算資源;步驟204,業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操作時,根據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作分 配計算資源池,并提供所述計算資源池中的計算資源以進(jìn)行所述數(shù)據(jù)庫操作。
2.根據(jù)權(quán)利要求1所述的調(diào)度方法,其特征在于,所述業(yè)務(wù)操作的類型包括工作負(fù)荷 類型,標(biāo)識所述數(shù)據(jù)庫操作的工作負(fù)荷大小;在所述步驟204中,根據(jù)所述業(yè)務(wù)操作的工作負(fù)荷類型,為所述數(shù)據(jù)庫操作分配所述 計算資源池。
3.根據(jù)權(quán)利要求2所述的調(diào)度方法,其特征在于,所述業(yè)務(wù)操作通過連接字符串發(fā)起 所述數(shù)據(jù)庫操作;在所述步驟204中,還在所述連接字符串中加入工作負(fù)荷標(biāo)識信息,以表示所述業(yè)務(wù) 操作的工作負(fù)荷類型。
4.根據(jù)權(quán)利要求3所述的調(diào)度方法,其特征在于,在所述步驟204之前,設(shè)置工作負(fù)荷 類型表,記錄所述每個計算資源池與每個工作負(fù)荷類型的業(yè)務(wù)操作之間的對應(yīng)關(guān)系;在所述步驟204中,還根據(jù)所述工作負(fù)荷類型表,為所述數(shù)據(jù)庫操作分配所述計算資 源池。
5.根據(jù)權(quán)利要求1至4中任一項所述的調(diào)度方法,其特征在于,在所述步驟202中,為 所述每個計算資源池分配計算資源包括設(shè)置所述每個計算資源池的CPU時間占用率、內(nèi)存占用率。
6.一種數(shù)據(jù)庫資源的調(diào)度裝置,其特征在于,包括設(shè)置模塊,為數(shù)據(jù)庫設(shè)置多個計算資源池,并為每個計算資源池分配計算資源;調(diào)度模塊,業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操作時,根據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作 分配計算資源池,并提供所述計算資源池中的計算資源以進(jìn)行所述數(shù)據(jù)庫操作。
7.根據(jù)權(quán)利要求6所述的調(diào)度裝置,其特征在于,所述業(yè)務(wù)操作的類型包括工作負(fù)荷 類型,標(biāo)識所述數(shù)據(jù)庫操作的工作負(fù)荷大?。凰稣{(diào)度模塊根據(jù)所述業(yè)務(wù)操作的工作負(fù)荷類型,為所述數(shù)據(jù)庫操作分配所述計算資 源池。
8.根據(jù)權(quán)利要求7所述的調(diào)度裝置,其特征在于,所述業(yè)務(wù)操作通過連接字符串發(fā)起 所述數(shù)據(jù)庫操作;所述調(diào)度裝置還包括標(biāo)識模塊,在所述連接字符串中加入工作負(fù)荷標(biāo)識信息,以表示 所述業(yè)務(wù)操作的工作負(fù)荷類型。
9.根據(jù)權(quán)利要求8所述的調(diào)度裝置,其特征在于,所述設(shè)置模塊還設(shè)置工作負(fù)荷類型 表,記錄所述每個計算資源池與每個工作負(fù)荷類型的業(yè)務(wù)操作之間的對應(yīng)關(guān)系;所述調(diào)度模塊還根據(jù)所述工作負(fù)荷類型表,為所述數(shù)據(jù)庫操作分配所述計算資源池。
10.根據(jù)權(quán)利要求6至9中任一項所述的調(diào)度裝置,其特征在于,所述設(shè)置模塊通過設(shè) 置所述每個計算資源池的CPU時間占用率、內(nèi)存占用率,來為所述每個計算資源池分配計 算資源。
全文摘要
本發(fā)明提供一種數(shù)據(jù)庫資源的調(diào)度方法,包括步驟202,為數(shù)據(jù)庫設(shè)置多個計算資源池,并為每個計算資源池分配計算資源;步驟204,業(yè)務(wù)操作發(fā)起數(shù)據(jù)庫操作時,根據(jù)所述業(yè)務(wù)操作的類型為所述數(shù)據(jù)庫操作分配計算資源池,并提供所述計算資源池中的計算資源以進(jìn)行所述數(shù)據(jù)庫操作。本發(fā)明還提供一種數(shù)據(jù)庫資源的調(diào)度裝置。根據(jù)本發(fā)明,通過將數(shù)據(jù)庫的資源合理分配,使得各類數(shù)據(jù)庫操作只能占用一定比例的資源,保證了其他數(shù)據(jù)庫操作正常進(jìn)行。
文檔編號G06F17/30GK102004803SQ20101061642
公開日2011年4月6日 申請日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者李紹文, 汪成杰, 黃衛(wèi), 黃海泉 申請人:用友軟件股份有限公司