WEB开发网
开发学院数据库DB2 让DB2数据库使用所有内存的方法 阅读

让DB2数据库使用所有内存的方法

 2007-05-20 16:17:08 来源:WEB开发网   
核心提示: 别在家里尝试这个操作!(在工作中、在老板的系统上尝试,)也许在结束关于内存的文章之前,让DB2数据库使用所有内存的方法(6),有必要提醒您不要忘记系统里的其余部分,毕竟,须经许可才能转载,本文所表达的是作者的观点,如果您有 96 GB 内存,而磁盘上就可能有不止 96 GB 的数据 &md

别在家里尝试这个操作!(在工作中、在老板的系统上尝试。)

也许在结束关于内存的文章之前,有必要提醒您不要忘记系统里的其余部分。毕竟,如果您有 96 GB 内存,而磁盘上就可能有不止 96 GB 的数据 — 正等着吞没您的系统并将它送入页面调度的痛苦状态。本文的重点是尽可能多地使用内存。毕竟,您为它花了钱,那么为什么不使用它并使之物有所值呢?按照这种思想,不要忘记您购买的其余硬件。您希望软件使用所有的内存,但也希望所有处理器做它们的那部分工作 — 对所有的磁盘也是如此。正如在 1 MB PC 上将应用程序限制到 640 K 内存不能充分利用可用资源一样(因此比它应有的速度要慢),如果您的一个处理器以 100% 运行,而其它以 25% 运行,这时,您的处境就很尴尬了 — 一个处理器的工作负载已达到了极限,而其余处理器什么也不做。(这种情景就好象您在建筑工地上看到一个人正在拿铁锹工作,而他的同事却袖手旁观。)这正是 DB2 EEE 可以帮助您的地方;它的无共享体系结构被设计成简洁地将所有工作和数据公平地划分给可以使用的内存、CPU 和磁盘。出于这个原因,对于决策支持无共享体系结构是很理想的。对于那些事务型工作负载,您必须监视热点:如果发生了 CPU 或磁盘中的一个子集工作过重的现象,为什么会发生这种现象呢?是因为所有任务繁重的客户机都连接到同一节点了吗?幸运的是,EEE 允许您将客户机连接分布到所有节点。是否应该将数据移到这些节点上的许多小表中,这样在进行更新操作时,就避免了对分布在所有节点的一个大表进行操作的情况。小表的缺点在于:当您希望得到一个需要来自每个节点上行的结果集时,必须进行 UNION 操作。还有,不要怕在无共享体系结构上运行 OLTP。在撰写本文时(2001 年 4 月),TPC-C 测试结果表明:前六名都是集群的无共享数据库。

工作负载平衡还意味着将表空间分布到多个磁盘,这样多个磁盘可以同时返回数据,因而也就启用了并行 I/O。这里,在三个变量之间存在创造性压力:磁盘、内存和处理器。运气好的话,您的每种资源都充足,并且可以在它们之间进行工作负载平衡来构建一个系统,对于您所花费的时间和投资的金钱,这个系统是物有所值的。至于还没有使用的硬件呢?唔,至少它使硬件销售代表挣得大笔佣金可以到夏威夷度假。而且,如果没有其它原因,那么您是否曾发现自己在夏威夷钓鱼而您的小艇和海浪搏斗时,这些额外的硬件和一根绳索就会形成一个可靠的锚。

关于作者

Blair Adamache 是 IBM多伦多实验室里有十七年工作经验的老手。他相信如果从 1970 年到 1995 年的每次棒球赛都统计到一个关系表而每次投掷都占一行的话,那么我们将可以证明 Dwight Evans 和 Bobby Grich 应当进棒球名人堂(Baseball Hall of Fame)。 本文最初发表于 DB2 开发者园地,须经许可才能转载。本文所表达的是作者的观点,而非 IBM 观点。

上一页  1 2 3 4 5 6 

Tags:DB 数据库 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接