奔向64位:64位环境下的数据库

软件世界

  这一讲我们来看看64位环境下的数据库。之所以要讨论这个议题,是因为我们的目光不应该停留在现有的Windows XP Home/Professional及其64位版本上。我们应该更前瞻地看到数据库技术在Longhorn中的应用。在那里,它将是操作系统基础架构的一个部分,地位和WinFS是一样的。所以,搞开发的人,应该了解操作系统基础架构──何况基于数据的开发占了现代的软件项目的绝大部分。这里,我们关于数据库的讨论限于微软公司的Microsoft SQL Server产品。

  使用什么版本

  和我们预想的可能会有些差别,Microsoft SQL Server并非在2005的最新版才提供64位版本,而是在早期的2000版本中就提供了。同样地,2005版本也提供了32位和64位两个版本。这样做的原因是为了保证接口的完全兼容性,只是把DBMS的底层实现改变了。不过,2000版和2005版之间还是存在接口不兼容的,这是版本变迁带来的必然结果,这和它是“多少位”的系统无关。

  值得注意的是,微软的Microsoft SQL Server存在着一个“简化版本”,这就是微软数据访问组件(Microsoft Data Access Component,MDAC),这个不起眼的组件扮演着诸多应用程序的核心角色(如Microsoft Office,特别是Business Contact Manager),并为Windows组件提供着最基础的关系型数据访问能力。它和SQL Server的区别其实是非常小的,据说“仅是并发数小了一些”,因此它也是在部署64位SQL Server时需要留意的。一般而言,部署过程会替换掉这个组件。

  什么时候部署

  这个问题的答案在Longhorn发布以后会变成“总是部署”,但就目前来看,这是企业需要经过大量轮廓技术(profile technology)的计算以后才能确定的。在前面,我们提到单个进程的内存上限达到了40GB,在SQL Server 2000中,一条SQL语句可以动用的最大内存是16GB。所以,这个问题可以改成“企业是否频繁地需要访问高达10GB以上的数据”?对于一个平常的、客户有10,000人的企业,很容易地就会突破这个限制。如果这时使用的软件是SQL Server 2000的32位版本,那么内存再大,采用的磁盘阵列级别再高也是没有用的──而SQL Server 2000的64位版本和32位版本在部署成本上相差不到一倍。这个时候,聪明的企业和数据库管理员会知道选择什么。

  64位带来了什么

  64位的SQL Server禁止了远程安装和“仅供连接”选项,集中精痢大负荷下的数据访问性能。它为企业的基于数据的计算提供了一个非常可靠而成本低的平台──当然,前提是硬件已经齐备。非常重要的一点是,它提供了一个很灵活的可伸缩性,可以复用于从小到大的各类应用,却使用单一的平台。它还提供了32位下的数据表中数据的无损迁移。

  预告:下期也是最后一讲,将为大家介绍新平台下的.net框架。