成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

讓DB2數(shù)據(jù)庫使用所有內(nèi)存的方法詳解
2010-02-25   網(wǎng)絡

 簡介

  曾聽說過創(chuàng)造性壓力嗎?它屬于那些偽精神哲學之一,它宣稱互相作用的力會創(chuàng)造出作為斗爭副產(chǎn)品的事物。這有點象小人書里面善與惡之間的斗爭?,F(xiàn) 在,我不想說所有軟件工程師都是好人,或者所有硬件工程師都是壞人,但是在他們之間存在著創(chuàng)造性壓力。正如 Joseph Campbell 所說的,“不要讓您對科學不切實際的憎惡迷惑了您的雙眼,以至看不到計算機芯片中的光輝境界。”如果整個表象浪潮一樣涌出磁盤并沖入內(nèi)存,那還能有什么比 這更浪漫呢?

  有時侯,軟件工程師會哀嘆硬件發(fā)展的步伐太緩慢了:機器磁盤速度太慢、內(nèi)存組太小并且時鐘速度象蝸牛爬行。(當硬件發(fā)展趕上的時候,可能我們會 忘記 Java™ 應用程序曾經(jīng)是那么慢。)當新一代硬件出現(xiàn)時,操作系統(tǒng)首先適應,但留給用戶的卻是,它們只能用 32 位體系架構運行 16 位或(氣喘吁吁的)8 位 DOS 應用程序的痛苦?,F(xiàn)在壓力轉(zhuǎn)到了軟件工程師頭上:他們什么時候才會重新編譯應用程序并利用新硬件所提供的新數(shù)據(jù)類型和內(nèi)存可尋址能力呢?在最終的分析中, 您將在 8086 上運行的 BASIC 與在 24 路 SMP 上運行的 C++ 進行比較時,運行“Hello World”程序所花費的時間大約與編寫該程序所花費的時間一樣長。

  但是,數(shù)據(jù)庫所要做的遠不止是要向顯示器輸出“Hello World”。與 Web服務器軟件期望更高速線路一樣,數(shù)據(jù)庫軟件期望從磁盤速度、容量、可尋址內(nèi)存的每次升級中盡可能獲得好處。盡管應用程序程序員可能會抱怨必須為 32 位機器重新編譯 16 位程序(它已經(jīng)運行良好了),但是數(shù)據(jù)庫工程師喜歡這樣的想法:在將數(shù)據(jù)排序、聚集或發(fā)送給用戶之前把它保存在內(nèi)存中而不是磁盤上。I/O 是如此眾多要求過高工作負載的殺手 — 這正是您將 1 TB 的數(shù)據(jù)分散到 5 TB 的磁盤上的原因(更多的磁盤 = 更多的軸,這意味著更多并行的 I/O,至少在基準測試世界中是這樣)。

  現(xiàn)在,在 RISC 和 Sparc 世界中,64 位體系架構正逐步成為標準,它允許商業(yè)性 UNIX®(如 AIX®、HP-UX 和 Solaris 等)為您喜愛的關系數(shù)據(jù)庫提供大量內(nèi)存。32 位內(nèi)存的可尋址能力大約等于 4 GB,而許多 UNIX 機器裝有 20 到 100 GB 內(nèi)存,您肯定希望使用這樣大的內(nèi)存。Intel 世界也不落后多少:現(xiàn)在,操作系統(tǒng)、編譯器和數(shù)據(jù)庫軟件實驗室里,正在 64 位 Intel 芯片上運行的 Linux 和 Windows 2000 是一個現(xiàn)實,而且不久會在您周圍的網(wǎng)站上銷售。

  那么,如果硬件和操作系統(tǒng)都已經(jīng)為使用巨大的內(nèi)存做好了準備,并且數(shù)據(jù)庫也能夠利用大內(nèi)存,那么您如何將它們結合起來并使之工作呢?使用 DB2® 版本 7,首先要弄清楚的是,在內(nèi)部,DB2 假設使用 32 位內(nèi)存和硬件。要利用更大的內(nèi)存,必須告訴 DB2 可以使用它以及如何使用它。請勿責備 DB2 — 大多數(shù) DB2 客戶機和許多 DB2服務器在未來數(shù)年中將運行在 32 位 Intel 機器上。并且即使 DB2 在您機器上檢測到有 96 GB 內(nèi)存,誰又能肯定您希望 DB2 使用所有內(nèi)存,而不是與其它應用程序共享這個內(nèi)存呢?

  當使用這種大內(nèi)存時,您有幾種選擇。最顯而易見的選擇是創(chuàng)建 64 位 DB2 實例?,F(xiàn)在,AIX、Solaris 和 HP-UX 上的 DB2 版本 7 都支持這種操作。如果您擁有版本 7.1,則必須下載修訂包 1 以安裝 64 位 DB2 庫。如果您擁有版本 7.2 或更新版本,則不必為了創(chuàng)建 64 位 DB2 實例而安裝修訂包。要創(chuàng)建 64 位 DB2 實例,可以使用 db2icrt 命令,并指定參數(shù) -w 的值為 64。例如:

 


db2icrt -w 64 -u db2fenc1 db2inst1

  描述 64 位環(huán)境中 DB2 使用的手冊位于:

   http://www-4.ibm.com/cgi-bin/db2www/database/db2/udb/winos2unix/support/document.d2w/report?fn=db2q9e71frm3toc.htm

  1 + 1 = 2。2 的 32 次方 = 極大的數(shù)。

  每個 32 位 DB2 實例能夠?qū)?4 GB 內(nèi)存尋址。通常,您希望將大部分內(nèi)存給緩沖池專用。但是,AIX、HP-UX 和 Windows 上的內(nèi)存分段會將最大緩沖池的大小限制在 4 GB 以內(nèi)。即使是在 32 位世界中擁有十分干凈的內(nèi)存模型的 Solaris 上,用于 DB2 緩沖池的內(nèi)存也不能超過 3.35 GB;4 GB 內(nèi)存空間的其余內(nèi)存必須專用于 DB2 的其它共享內(nèi)存用途。(幸運的是,對于 64 位世界中的所有操作系統(tǒng),內(nèi)存模型都更干凈。)在 HP-UX 上,32 位 DB2 實例所能夠創(chuàng)建的最大緩沖池大約是 800 MB。在 HP-UX 上,只有通過使用 32 位 HP-UX 上的 Memory Windows 來運行多個實例,才能使用 1 GB 以上的緩沖池。(DB2 發(fā)行說明(Release Notes)中描述了 HP Memory Windows。)在 Windows 上,緩沖池被限制為 3 GB,AIX 上是 1.75 GB,而 Linux 上大約是 1 GB。

在運行 32 位 DB2 的大內(nèi)存系統(tǒng)上,要將大量內(nèi)存給予緩沖池,最簡單方式就是在一個 DB2 企業(yè)擴展版(Enterprise-Extended Edition (EEE))配置中運行多個邏輯 DB2 實例。只需要運行操作系統(tǒng)的一個實例,這將有助于節(jié)省開銷和允許多個 DB2 實例之間通過共享內(nèi)存而不是通過 TCP/IP 或通信交換機來彼此通信。使用 DB2 的無共享體系結構,每個實例可以在它自己的數(shù)據(jù)庫分區(qū)之內(nèi)愉快地對 4 GB 內(nèi)存尋址。在大多數(shù) DB2 TPC-H 基準測試中 — 它通常讓 DB2 EEE 在規(guī)模達 300 GB 或更大的數(shù)據(jù)庫上運行決策支持查詢 — 一個大型 SMP 為每個 DB2 節(jié)點劃分多至 4 GB 內(nèi)存(每個節(jié)點都是一個運行它自己的 DB2 實例的數(shù)據(jù)庫分區(qū))。

  DB2 還可以使用其它三種方法來利用大內(nèi)存機器。在 AIX、Solaris 和 Windows 上,DB2 支持擴充存儲器(Extended Storage)(也稱為 ESTORE)。這允許 DB2 將超過 32 位內(nèi)存模型中最大可用內(nèi)存的內(nèi)存用于系統(tǒng)臨時表(用于排序)和只讀用戶數(shù)據(jù)。在 DB2 從磁盤獲取數(shù)據(jù)時就由 DB2 判斷哪些數(shù)據(jù)是可以認為是只讀,但是需要配置 DB2 以使用擴充存儲器。

  讓我們考慮一種典型情況:您正在設計一個數(shù)據(jù)庫,在其中希望將一個表盡可能多地放入內(nèi)存。首先,更新數(shù)據(jù)庫管理器配置并告訴它要使用多少擴充存 儲段(num_estore_segs)。這個值的缺省設置為零。n 取多大值將取決于表有多大、可用的內(nèi)存有多少以及您希望這個特定表用多少內(nèi)存。假定我們正在使用 Solaris,它有 6 GB 內(nèi)存 — 在 4 GB 內(nèi)存空間之上的 2GB 內(nèi)存用于擴充存儲器(也稱為 estore):

 


update db cfg for sample using num_estore_segs n

  用“擴充存儲器存儲段大小”(estore_seg_sz)數(shù)據(jù)庫配置參數(shù)來定義 estore 段的大?。?/p>

 


update db cfg for sample using estore_seg_sz 32000

  現(xiàn)在您創(chuàng)建了一個緩沖池。對于本示例,我們將使用 8K 頁面大小,盡管 16K 和 32K 頁面大小也是允許的。(如果是在 Windows 上,要使用 2GB 以上的內(nèi)存,則必須使用大于 4K 的頁面大小。)必須為擴充存儲器啟用緩沖池,可以使用 EXTENDED STORAGE 關鍵字做到。 highmem 是我為這個緩沖池選擇的名稱。其大小 n 取決于您希望這個緩沖池占用的內(nèi)存數(shù)量:

 


CREATE BUFFERPOOL highmem SIZE n
PAGESIZE 8K EXTENDED STORAGE

  現(xiàn)在創(chuàng)建一個表空間,并將它分配到這個緩沖池:

 


   CREATE TABLESPACE highmem_tbsp PAGESIZE 8K


  MANAGED BY SYSTEM


   USING ('C:highmemdir)


  BUFFERPOOL highmem

熱詞搜索:

上一篇:詳細介紹DB2數(shù)據(jù)庫打補丁步驟經(jīng)驗
下一篇:數(shù)據(jù)備份與數(shù)據(jù)歸檔冷熱狀態(tài)的區(qū)別

分享到: 收藏
主站蜘蛛池模板: 爱情公寓大电影免费播放完整版| 美食总动员在线观看完整版免费| 翟小兴演过的电视剧大全| 茅山道士在线观看| a friend in need中文翻译 | 广濑大介| 神经内科出科个人总结| 金鸳鸯| 汤姆·威尔金森| 红髅| 胡凯莉| 周传雄黄昏歌词| yumiko| 马子俊| 少年王演员表全部| 仁爱版九年级英语上册教案| zeka| 沙鲁克汗| 流浪地球免费观看| 电影《uhaw》完整版在线观看| 吴京电影大全| 热带夜的引诱| 艾希曼| 船戏视频| 春风不问路| 杨贵妃黄色片| 浪漫体质| 高等学校毕业生登记表自我鉴定怎么写| 张柏芝惊艳照片| 欢颜电视剧40集免费观看全集高清 | 林柒予| 真爱的谎言| 鹌鹑图片| 朱荣荣| 回到十八岁| 圣斗士星矢在线观看| 金奎丽| 欲网挑情| 公公媳妇电影| 电视剧瞧这一家子演员表| 女同视频网站|