视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQLSERVER中的AWE功能
2020-11-09 07:38:03 责编:小采
文档


SQLSERVER中的AWE功能 由于32位Windows用户进程有4GB的虚拟地址空间。其中2GB给核心态,剩下2GB给用户态。这两部分严格分开。Windows不会因为其中某一块 内存地址空间用尽而将另外一块的空间让出。 由于SQLSERVER的绝大部分指令都运行在用户态下,就是说SQLS

SQLSERVER中的AWE功能

由于32位Windows用户进程有4GB的虚拟地址空间。其中2GB给核心态,剩下2GB给用户态。这两部分严格分开。Windows不会因为其中某一块

内存地址空间用尽而将另外一块的空间让出。

由于SQLSERVER的绝大部分指令都运行在用户态下,就是说SQLSERVER的内存基本上使用用户态地址空间资源。现在的情况是2GB地址空间资源

对于SQLSERVER来说严重阻碍了SQLSERVER有效利用硬件资源

所以SQLSERVER引入了AWE address windowsing extensions(地址空间扩展)。这是允许32位应用程序分配GB物理内存,并把视图或窗口

映射到2GB虚拟地址空间的机制。

使用AWE,使得一个应用程序能够访问最多达GB的物理内存!!!

在SQL2000的企业版,SQL2005/2008的企业版和标准版都支持这个技术,也能够享受这个技术带来的好处

开启这个功能的语句,执行完之后,重启SQLSERVER服务即可

1 EXEC sys.sp_configure @configname = 'AWE Enabled', -- varchar(35)
2 @configvalue = 1 -- int
3 RECONFIGURE
4 GO

AWE具体实现图

有几点需要注意的:

(1)开启这个功能需要SQLSERVER启动帐户在Windows上的lock pages in memory权限。没有这个权限,AWE就不能成功被开启。

启动的SQLSERVER这时候只能使用2GB的地址空间。

所以DBA要确认一下SQLSERVER的errorlog里有没有相关的信息
成功开启:server Address Windowing Extensions enabled
消息
Address Windowing Extensions is enabled. This is an informational message only; no user action is required.
开启失败:Cannot use Address Windowing Extensions because lock memory privilege was not granted

(2)这个功能是在应用层面有意识地使用,而不是在Windows层面实施的。也就是说SQLSERVER在申请内存时,通过特殊API调用申请到的,

如果SQLSERVER不调用这个功能,就还会在普通的2GB虚拟地址空间申请内存。在SQLSERVER中不是所有的内存申请都会调用AWE技术,

只有先reserve,再commit的内存调用,SQLSERVER才使用AWE让他们使用到扩展的内存。其他方式申请的内存只能使用普通的2GB地址空间。

正因为这样,AWE不能称为解决SQLSERVER地址空间不足的最终解决方案。使用位的服务器,虚拟地址空间可以达到8TB,

大于现在绝大多数的单个服务器的物理内存数。在位下运行的SQLSERVER,其性能往往比在32位上有比较明显的提高。

最后附上各个版本Windows上支持的最大内存数
配置 应用虚拟地址空间大小 最大物理内存数 是否支持AWE/locked pages support
32位SQLSERVER 2GB GB YES
32位SQLSERVER + /3GB boot.ini参数 3GB 16GB YES
32位SQLSERVER 应用在x位操作系统(WOW) 4GB GB YES
32位SQLSERVER 应用在IA操作系统(WOW) 2GB 2GB NO
位SQLSERVER 应用在x操作系统 8TB 2TB YES
位SQLSERVER 应用在IA操作系统 7TB 2TB YES

下载本文
显示全文
专题