新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> 数据库开发 >> 文章正文

SQL Server虚拟内存和物理内存管理

      
          在这篇专栏里,我们将从开发者的角度来探讨SQL Server内存管理内幕。
就是说,我们将讨论SQL Server使用API和操作系统功能管理内存的方式及其工作原理。通过这种方式探讨一个产品,将有助于我们理解产品开发者的思路,以及他们设计的使用方法。
理解一个产品的工作原理和它的设计用途,是掌握这个产品的关键。
       我们将从基础的Windows内存管理基本原理介绍开始。和所有32位Windows应用程序一样,SQL Server使用Windows内存管理功能分配、释放、管理内存资源,它调用Win32内存管理API函数,与操作系统提供的内存资源进行交互。
       由于SQL Server中几乎所有的内存分配都使用虚拟内存(不是内存堆),因此绝大部分内存分配代码最终都是通过调用Win32的VirtualAlloc或者是 VirtualFree函数完成。SQL Server调用VirtualAlloc预留、提交虚拟内存,调用VirtualFree释放虚拟内存。

    虚拟内存与物理内存
         在x86系列处理器上,Windows为所有进程提供一个4GB虚拟内存工作空间。用"虚拟"这个词,意思是这个内存并不是通常意义上的内存,它只是一个地址范围,并没有和物理存储单元关联在一起。当进程请求内存分配时,这些地址空间才被使用,和具体的物理存储单元关联起来。然而这些物理存储单元并不一定是物理内存,它通常可能是磁盘空间,确切的说,是操作系统的分页文件(System Paging Files)。
   这就是为什么多个应用程序可以同时运行在一个128M内存的系统上,每个应用程序都有一个4GB的虚拟内存地址空间--它不是真正的内存,但对应用程序来说可以理解为内存。Windows透明的处理分页文件(paging files)的数据交换,使应用程序能够使用的内存可以超过机器的实际物理内存,并使应用程序能够公平的存取机器的物理内存。
           这个4GB的地址空间被分成两部分:用户模式(user mode)部分和内核模式(kernal mode)部分。默认情况下,每个部分的大小为2GB,在Windows NT系列的操作系统上,可以通过BOOT.INI中的开关来改变这个默认设置(Windows NT, Windows 2000, Windows XP和Windows Server 2003属于Windows NT系列,Windows 9x和Windows ME不属于)。

 

作者:未知 | 文章来源:zxbc | 更新时间:2008-2-18 10:57:44

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    没有相关文章
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·Domino平台的优缺点分析
    ·oracle不能连接本地库的解
    ·使用经验整理-TestDirecto
    ·学习sqlserver数据库的维度
    ·sqlserver 多用户并发中如
    ·丢失日志文件后数据库还能
    ·人工智能在数据库sql语句编
    ·数据库学习:Oracle应用程
    ·基础知识:软件测试的要点
    ·技术文章:sqlserver 2008
    ·SQL Server虚拟内存和物理
    ·在MySQL中 describe命令怎
    ·怎样解决视图刷新时出现的
    ·如果忘记了MySQL的root用户
    ·基础学习:基于SQL的sysob
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000