让DB2数据库使用所有内存的方法
2007-05-20 16:17:08 来源:WEB开发网CREATE SYSTEM TEMPORARY TABLESPACE highmem_temp PAGESIZE 8K
MANAGED BY SYSTEM
USING ('C:highmemtemp') BUFFERPOOL highmem
现在准备在该表空间中创建表:
create table memory_hog (col1 int) in highmem_tbsp
部分还是全部 AWE?由您来判断。
Windows 2000 能够通过 Microsoft Address Windowing Extensions(AWE)在 32 位世界中映射越过 4 GB 内存界线的数据。DB2 版本 7.2(或带有修订包 3 的版本 7.1)支持这个特性。Windows 2000 Advanced Server 最多支持 8 GB 内存,而 Windows 2000 Data Center Server 最多支持 64 GB 内存。
在最终的分析中,您可能需要做一个选择,这个选择与高性能数据库设计所需的颗粒度是背道而驰的。可以假定,您将考虑的用于上述技术的数据库需要最佳性能 — 最终,如果性能不重要,为什么要将数据库放到拥有大量内存的机器上?此类数据库倾向于将用户数据存储在数据库管理存储器(Database Managed Storage (DMS))中,将原始设备(raw device)用作容器。按照大多数人的意见:如果您管理一个具有众多概要文件和用户要求很高的数据库,那么,需要投入大量时间对数据库进行调整和计划,这样才能预测数据的增长并在原始设备容器上分配足够的空间。用这种思想,可以知道系统管理存储器(SMS)表空间只适于系统数据(临时表空间和目录表空间)和必须对其进行少量维护的数据库,因为,这两者数量太多,因而无法保证对其设计和维护进行大量投资。
假定您同时面临两种最糟糕的情况:一方面数据库必须迅速,另一方面您又无法预测其中的数据增长或去花费大量时间对其进行维护,那怎么办呢?您可能会问:如果有些事情很重要,为什么不将 DBA 资源用于它呢?但老板并不总是理性的。幸运的是,关系数据库架构设计师们并不是仅有的花费大量时间决定如何使用大内存机器的人:操作系统专家也在研究这个问题。您将需要做一个信念上的飞跃,将所有数据放置到 SMS 表空间,并将文件系统用作容器。(也可以使用 DMS 来做这件事,但是在为容器定义文件大小时,还必须计划数据增长)。现在,查看所有 4 GB 内存地址以上的空间并将它用于文件系统高速缓存,是操作系统的任务。幸运的是,由于大多数数据库运行在大型 SMP 上,并且能够通过利用应用程序来达到其性能目标,这推动了系统设计师们挖掘出大内存机器的潜能,以将频繁访问的数据保存在内存中。而这正是人们希望数据库缓冲池所做的:将经常访问的数据保存在内存中,而其余的仅留在磁盘上。
更多精彩
赞助商链接