摘要:伴隨著信息技術(shù)的迅猛發(fā)展,無(wú)論是信息的傳遞速度還是規(guī)模,都在發(fā)生著巨大的變化,信息的數(shù)量之多簡(jiǎn)直令人應(yīng)接不暇。在這樣的背景下,對(duì)數(shù)據(jù)庫(kù)的性能進(jìn)行研究db2數(shù)據(jù)庫(kù)獲取表記錄數(shù),則顯得尤為重要。而對(duì)數(shù)據(jù)庫(kù)性能造成影響的因素有很多種,系統(tǒng)設(shè)計(jì)占據(jù)非常重要的比重。以DB2數(shù)據(jù)庫(kù)為例,詳細(xì)分析對(duì)DB2數(shù)據(jù)庫(kù)性能造成影響的設(shè)計(jì)方面的因素,同給出相應(yīng)的建議和改進(jìn)措施。
關(guān)鍵詞:數(shù)據(jù)庫(kù);DB2;性能;設(shè)計(jì);研究
中圖分類號(hào):TQ56 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2012)-01
DB2數(shù)據(jù)庫(kù)是E-R型數(shù)據(jù)庫(kù),由IBM公司研制,具有良好的完整性、可恢復(fù)性、安全性和可利用性,同時(shí)存取數(shù)據(jù)的速度極高,伸縮性能良好,可在大型的服務(wù)器系統(tǒng)或個(gè)人的PC機(jī)上應(yīng)用和運(yùn)行。DB2具有小規(guī)模數(shù)據(jù)向大規(guī)模數(shù)據(jù)的轉(zhuǎn)換及跨平臺(tái)執(zhí)行能力的功能。利用分級(jí)技術(shù)進(jìn)行設(shè)計(jì),既方便基于LAN程序的訪問(wèn),也利于大型機(jī)數(shù)據(jù)庫(kù)的同步下載,實(shí)現(xiàn)了遠(yuǎn)程和本地?cái)?shù)據(jù)庫(kù)之間的連接,可對(duì)并發(fā)查詢功能進(jìn)行支持,同時(shí)對(duì)查詢性能進(jìn)行進(jìn)一步的優(yōu)化,對(duì)于大型的分布式應(yīng)用系統(tǒng)非常適用。
1表空間的設(shè)計(jì)和性能
作為一個(gè)物理存儲(chǔ)對(duì)象,表空間為數(shù)據(jù)庫(kù)提供間接的一層。具體是由對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)的容器組成,是一種存儲(chǔ)空間。根據(jù)空間類型劃分,容器包括文件、設(shè)備和目錄、表的LOB部分及長(zhǎng)字段、索引和數(shù)據(jù),即可在相同的表空間內(nèi)存儲(chǔ),又可存在于獨(dú)立的表空間內(nèi)。和數(shù)據(jù)庫(kù)共同運(yùn)行,最終是為了實(shí)現(xiàn)對(duì)數(shù)據(jù)的快速檢索和高效存儲(chǔ)。對(duì)數(shù)據(jù)庫(kù)的性能進(jìn)行分析和對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)時(shí),首先要對(duì)數(shù)據(jù)庫(kù)的物理布局進(jìn)行考慮。DB2所提供的表空間支持包括兩種類型:
1)系統(tǒng)管理的空間(SMS),作為一種最佳選擇,可存儲(chǔ)系統(tǒng)文件數(shù)據(jù),不僅管理成本低,同時(shí)性能良好。
2)數(shù)據(jù)庫(kù)管理空間(DMS),是一種存儲(chǔ)和控制空間,用于管理文件列表和設(shè)備,它會(huì)產(chǎn)生一些附件的管理成本,主要用于調(diào)整和預(yù)測(cè)預(yù)分配文件的大小。其空間大小可以輕易的由增加新容器或?qū)ΜF(xiàn)有容器進(jìn)行改變來(lái)實(shí)現(xiàn)。
相關(guān)建議:
1)和SMS相比較,DMS表空間有著更好的性能,主要是為了實(shí)現(xiàn)預(yù)分配,在對(duì)文件的大小進(jìn)行擴(kuò)展時(shí),可以節(jié)省時(shí)間。DMS表空間包括系統(tǒng)文件或原始設(shè)備。由于不會(huì)發(fā)生雙緩沖,針對(duì)原始容器,它可以提供最好的性能。
2)在SMS表空間的使用時(shí),可對(duì)命令進(jìn)行使用,可啟用多頁(yè)文件的分配功能,提高了插入()吞吐量。
3)DMS空間的使用,還可對(duì)數(shù)據(jù)用單一的表來(lái)存儲(chǔ)。在最多不超過(guò)三個(gè)不同的DMS表空間上,對(duì)大型對(duì)象進(jìn)行索引。在性能的提高上,通過(guò)并行磁盤I/O來(lái)實(shí)現(xiàn)。并行I/O,是為了寫(xiě)入或讀取更多的設(shè)備,以便縮短相應(yīng)的時(shí)間。
2表的設(shè)計(jì)和性能
在對(duì)物理數(shù)據(jù)庫(kù)表進(jìn)行創(chuàng)建以前,首先應(yīng)該設(shè)計(jì)具有一定邏輯性的數(shù)據(jù)模型,下面首先分析下邏輯數(shù)據(jù)庫(kù)對(duì)性能的影響。
2.1規(guī)范化設(shè)計(jì)
它是調(diào)整和簡(jiǎn)化數(shù)據(jù)模型的一個(gè)過(guò)程,它既減少了數(shù)據(jù)的繁雜,對(duì)語(yǔ)句的刪除和更新性能進(jìn)行了提高,同時(shí)不需要對(duì)同一數(shù)據(jù)進(jìn)行重復(fù)操作,通過(guò)對(duì)數(shù)據(jù)的規(guī)范,確保所有列都對(duì)主鍵有所依賴。對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行規(guī)范化的缺點(diǎn)是,在對(duì)數(shù)據(jù)進(jìn)行查詢和檢索操作時(shí),在訪問(wèn)多個(gè)表中的數(shù)據(jù)塊時(shí),必須通過(guò)聯(lián)合操作來(lái)實(shí)現(xiàn)。
2.2非規(guī)范化設(shè)計(jì)
如果在多個(gè)表中刻意的重復(fù)某些列,會(huì)使數(shù)據(jù)繁雜,使性能隨之降低。但有時(shí)非規(guī)范化是必須存在的,它是設(shè)計(jì)物理關(guān)系數(shù)據(jù)庫(kù)的一個(gè)非常重要的環(huán)節(jié)。非規(guī)范化的使用,必須要綜合以下因素進(jìn)行考慮:
1)如果不使用,可否對(duì)數(shù)據(jù)庫(kù)的性能,通過(guò)其他方法改善和調(diào)整,最終實(shí)現(xiàn)接收的目的。
2)如果使用了非規(guī)范化,可否實(shí)現(xiàn)系統(tǒng)的性能,并且對(duì)更新產(chǎn)生的費(fèi)用,能夠?qū)崿F(xiàn)平衡增加。
3緩沖池的設(shè)計(jì)和性能
作為一個(gè)內(nèi)存區(qū)域,可在緩沖池內(nèi)保留、讀、寫(xiě)數(shù)據(jù)庫(kù)頁(yè)面。而DB2使用數(shù)據(jù)庫(kù)緩沖池,可使磁盤I/O減少。目前對(duì)于給緩沖池分配多少內(nèi)存,還沒(méi)有明確的答案。但在常規(guī)意義上講,應(yīng)該是越多越好。最佳方案是將75%的系統(tǒng)存儲(chǔ)應(yīng)用在緩沖池內(nèi)存上,但其局限性在于,只能在專用的數(shù)據(jù)庫(kù)服務(wù)器上應(yīng)用。同時(shí)作為一種內(nèi)存資源,必須和其他進(jìn)程及應(yīng)用程序一起,在服務(wù)器上共同使用。若表空間內(nèi)存在多個(gè)頁(yè)面,則需要為每一個(gè)頁(yè)面設(shè)置一個(gè)對(duì)應(yīng)的緩沖池。在一些時(shí)候,對(duì)同樣大小的多個(gè)緩沖池進(jìn)行定義,可使其性能提高,但如果不進(jìn)行正確的配置,則會(huì)產(chǎn)生反作用。是否進(jìn)行多個(gè)緩沖池的創(chuàng)建,應(yīng)進(jìn)行綜合考慮。
4日志記錄
對(duì)數(shù)據(jù)的完整性進(jìn)行支撐,是數(shù)據(jù)庫(kù)系統(tǒng)的主要功能。基于此,數(shù)據(jù)庫(kù)必須對(duì)日志文件進(jìn)行維護(hù),對(duì)數(shù)據(jù)庫(kù)的變化進(jìn)行跟蹤和記錄。DB2的日志記錄是由兩組文件組成,涵蓋了全部的數(shù)據(jù)庫(kù)更改的日志記錄,主要在回滾尚未提交的工作單元中應(yīng)用,同時(shí)將數(shù)據(jù)庫(kù)恢復(fù)到一致?tīng)顟B(tài),而DB2對(duì)日志記錄的兩種策略進(jìn)行了提供。
在設(shè)計(jì)的過(guò)程中,絕不能忽視日志記錄和數(shù)據(jù)庫(kù)性能的關(guān)系,在這里時(shí)間成本占據(jù)著很大因素,由于在對(duì)數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)時(shí),數(shù)據(jù)庫(kù)管理器需要對(duì)日志文件進(jìn)行讀取,所以需要進(jìn)一步優(yōu)化日志文件的存放,并充分考慮到讀和寫(xiě)的性能。
5理想化的索引設(shè)計(jì)
索引的組成是一組排好序的鍵,它是DB2對(duì)象,在一個(gè)或多個(gè)列中抽取了對(duì)應(yīng)的鍵。通過(guò)相關(guān)研究數(shù)據(jù)顯示,只有表空間的索引建立恰當(dāng),才能使DB2數(shù)據(jù)對(duì)該表空間進(jìn)行訪問(wèn)的應(yīng)用程序,實(shí)現(xiàn)一種最好的狀態(tài),并且達(dá)到一種最優(yōu)的效果。在以前的設(shè)計(jì)中,重點(diǎn)考慮的因素是在I/T中DASD的空間和成本。而隨著科學(xué)技術(shù)的日新月異,從DB2的設(shè)計(jì)和性能上考慮,為了減少I/O,可通過(guò)添加一定數(shù)量的索引來(lái)實(shí)現(xiàn),這樣降低了額外磁盤空間的消耗。這種索引的設(shè)計(jì),具有以下幾點(diǎn)好處:
一是索引中囊括了WHERE子句中的所有列,這樣對(duì)結(jié)果集中的不合格的行,起到了一定的屏蔽作用。在索引的開(kāi)始部分放入這些列,在對(duì)SQL語(yǔ)句進(jìn)行時(shí),就會(huì)有最大值生成。
二是保障索引中的列順序排列適當(dāng),通過(guò)對(duì)中全部的SORT列進(jìn)行檢查,就可對(duì)這個(gè)性能進(jìn)行驗(yàn)證。
一般情況下,要想真正實(shí)現(xiàn)這種理想化的設(shè)計(jì)和性能,難度是非常大的。原因主要是一個(gè)索引中包括的索引項(xiàng)的長(zhǎng)度以及列數(shù),往往都要受到架構(gòu)的限制,同時(shí)還要對(duì)維護(hù)成本給予充分考慮,盡管最理想的索引,可使查詢性能得到明顯提高,但一旦DB2數(shù)據(jù)庫(kù)執(zhí)行SQL寫(xiě)操作時(shí),就會(huì)干擾和影響到這種索引的性能。
6結(jié)語(yǔ)
優(yōu)化數(shù)據(jù)庫(kù)是一個(gè)非常系統(tǒng)的工程,要涉及到方方面面的技術(shù)和知識(shí),包括了硬件、軟件應(yīng)用、操作系統(tǒng)平臺(tái)以及數(shù)據(jù)庫(kù)。在整個(gè)數(shù)據(jù)庫(kù)性能研究中db2數(shù)據(jù)庫(kù)獲取表記錄數(shù),系統(tǒng)設(shè)計(jì)只是一個(gè)非常重要的環(huán)節(jié),還必須進(jìn)行后期的維護(hù)和應(yīng)用。本文重點(diǎn)闡述了數(shù)據(jù)庫(kù)設(shè)計(jì)環(huán)節(jié),對(duì)于整個(gè)過(guò)程,還缺乏整體性考慮,所以我們?cè)趯?shí)際應(yīng)用中,必須權(quán)衡各個(gè)方面,綜合分析維護(hù)、應(yīng)用以及其他設(shè)計(jì)方面,對(duì)數(shù)據(jù)庫(kù)性能帶來(lái)的影響。
參考文獻(xiàn):
[1]牛新莊,循序漸進(jìn)DB2——DBA系統(tǒng)管理、運(yùn)維與應(yīng)用案例[M].清華大學(xué)出版社,2009.
[2]牛新莊,DB2數(shù)據(jù)庫(kù)性能調(diào)整和優(yōu)化[M].清華大學(xué)出版社,2009.
[3]羅新曼,DB2數(shù)據(jù)庫(kù)在軟件中的應(yīng)用方法[J].南昌教育學(xué)院學(xué)報(bào),2010(07).
[4]悠虎,淺談DB2數(shù)據(jù)庫(kù)所支持的外部文件格式[J].網(wǎng)絡(luò)與信息,2011(03).
[5]張勤,主機(jī)DB2數(shù)據(jù)庫(kù)重組技術(shù)的應(yīng)用與實(shí)踐[J].中國(guó)金融電腦,2011(03).
[6]吳鵬,DB2數(shù)據(jù)庫(kù)故障處理及實(shí)踐研究[J].信息與電腦(理論版),2011(09).
[7]羅新曼,DB2數(shù)據(jù)庫(kù)在軟件中的應(yīng)用方法[J].南昌教育學(xué)院學(xué)報(bào),2010(07).
[8]石青青,淺談/OS的XML能力[J].科技傳播,2010(07).
[9]杜心武,DB2數(shù)據(jù)庫(kù)日志管理和應(yīng)用[J].科技信息(科學(xué)教研),2008(04).
[10]李佳佳、耿鑫,DB2性能優(yōu)化策略[J].電腦編程技巧與維護(hù),2010(13).
[11]修樹(shù)娟、張永茂,DB2數(shù)據(jù)庫(kù)中數(shù)據(jù)存儲(chǔ)解析[J].科技信息,2010(28).
作者簡(jiǎn)介:
袁春瑩(1983-),女,山東聊城人,本科,信息系統(tǒng)項(xiàng)目管理師,山東省農(nóng)村信用社聯(lián)合社,在銀行科技部門從事銀行核心業(yè)務(wù)系統(tǒng)研發(fā)工作