最近,我在我们的一台数据库服务器上执行操作系统升级,从 Server 2003 升级到 Server 2008。数据库管理系统 (DBMS) 是 SQL Server 2005。在新的 Windows 安装上重新安装 SQL 时,我转到我们的另一台数据库服务器来验证一些设置。
现在,我一直以为第二台服务器是 Server 2003 x64 + SQL 2005 x64(据我所知),但现在我对此产生了怀疑。我现在怀疑它实际上只是 32 位 SQL,但我想验证这一点。
以下是一些详细信息:
操作系统肯定是 64 位的。
xp_msver
显示Platform
为NT INTEL X86
SELECT @@VERSION
节目Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)...
但是 sqlservr.exe 在 taskmgr 中没有显示“* 32”,有人知道为什么会这样吗,如果它确实是 32 位的,就像声称的那样?尽管如此,它似乎确实用完了 x86 程序文件文件夹。
如果我对确认的 64 位安装进行相同的检查,它确实会返回预期的 64 位读数,这只能证明该服务器仅在 32 位下运行。
现在,既然如此,问题就来了,这个“32 位”安装可以使用多少内存。任务管理器报告 sqlservr.exe 的内存使用量约为 3.5GB(服务器有 16GB 物理内存)。我怀疑 AWE 根本没有配置,因此如果 SQL 只是使用 32 位地址空间,服务器的利用率将大大降低(记住操作系统是 64 位)。
这个假设正确吗?
我觉得服务器应该将 SQL 重新安装为 64 位,以便充分利用硬件平台,但目前它正处于大量生产中;这不是一件容易的事。我怀疑我们可能只需要正确配置 AWE 并暂时让它保持原样(除非这是一个坏主意?)。
我很抱歉这个问题有点模糊/迷失;我不是 SQL 专家,只是想了解这里发生了什么。
答案1
这个帖子列出了两种不同的检查方法(第一种是 @@version,它显示您正在运行 32 位版本的 SQL Server),但为了节省点击次数,
select serverproperty('edition')
结果将会像这样:
32 位:企业版
64 位:开发者版(64 位)
答案2
您还可以使用
USE master
SELECT @@Version
将显示类似以下内容的内容 -
Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
答案3
在您的安装介质中,您是否看到 x64 或 x86 目录?如果没有,我相信您的介质将仅为 32 位。
这也解释了为什么你的 64 位操作系统上只运行 32 位版本。
该磁盘是盒装购买还是从 MSDN 或 Technet 下载?
答案4
我不会评论您是否拥有 64 位或 32 位。您询问有关 AWE 的问题,所以我会回答那部分,因为我在这里有一些经验。
我曾在类似情况下使用过 AWE,它暂时对我们来说效果很好。
当然,我们最终还是迁移到了完全 64 位系统,但 AWE 允许我们使用更多 RAM。如果我没记错的话,还要查看 boot.ini 中的 /3GB 开关。如果在切换之前可以在启用 AWE 的情况下测试安装,这显然会很有帮助。我们要求托管服务提供商启用它,他们有一位 DBA 与我们合作,他之前有过这方面的经验。我们将更改安排在清晨维护时段,进行更改、重新启动并开始测试。实际上,它也为我们带来了相当多的性能提升。
据我回忆,您无法轻松查看 SQL Server 使用了多少内存 - taskmgr.exe 并没有说明全部情况。您必须运行 perfmon 并深入查看 SQL Server 计数器,才能查看 SQL 实际访问了多少 RAM。
我建议你先阅读一下,但这是一个很好的方法,直到你能够更永久地解决问题。
http://blogs.msdn.com/chadboyd/archive/2007/03/24/pae-and-3gb-and-awe-oh-my.aspx http://msdn.microsoft.com/en-us/library/ms190673.aspx