Answers:
密切相关:保留32位Microsoft Windows桌面操作系统的充分理由
您正在使用64位操作系统。Server 2008 R2是第一个仅支持64位CPU的服务器。
Windows的“较新”版本甚至不是为32位设计的。您可能不会利用任何东西,但也不应有任何缺点。话虽如此:还是要升级,如Server 2008 R2 SP1(我希望您正在使用)将从2020-01-14起停产。
至于SQL Server 32位/ 64位:您的理解是正确的,如果您不再需要>〜3.75 GB的RAM(或每个进程> 2 GB),则可以使用32位版本而不会出现问题。但是对于较新的版本,将不会安装任何32位版本,因为Microsoft仅切换到64位。
如前所述,您已经在使用64位操作系统。切换到64位版本的SQL Server有两个优点,一个缺点是。
唯一的缺点是SQL Server的64位版本将使用64位指针。这意味着指针将占用两倍的内存,消耗两倍的内存带宽,依此类推。这可能几乎可以忽略不计,但这是一个缺点。切换到64位应用程序将使您省去兼容性层的开销,这部分补偿了32位应用程序必须用来访问64位OS的功能的事实。
主要优势在于,随着时间的流逝,CPU指令集获得了许多重大改进。其中一些是在更改为64位的同时进行的,而某些是先前进行的。
但是,即使对于以前制造的实例,32位版本也必须处理不具有这些功能的CPU,并避免在多个实例之间进行检测和切换的麻烦,即使存在实例也不要使用它们。例如,64位CPU必须具有SSE2,但32位CPU可能没有。因此,大多数32位代码只是不打扰检查并且不假设SSE2。确保有64位代码存在SSE2指令,因此,如果这是最佳选择,则将使用它。
最大的一个是命名的通用寄存器的数量从8增加到16。128位XMM寄存器的数量也增加了一倍,从8增加到16。
另外,一个64位进程可以利用大量的虚拟内存。这对于访问磁盘上大量结构化数据的进程尤为重要。而且,当然,他们可以使用64位整数操作,这些操作往往会提高加密,压缩甚至大型文件系统上某些文件系统操作的性能。
/arch:SSE2
选择32位代码,相当于gcc / clang / ICC -msse2
。我猜想SQL没有很多SIMD向量化循环,但是复制带有16字节SIMD加载/存储的小型结构是很好的。
__fastcall
在许多功能的寄存器中传递了args。Linux 32位调用约定完全在堆栈上,因此对于不内联的小功能来说,这是很废话的。
性能!
这里已经有几个技术上的答案,但是没有太过技术性,并且根据您的应用程序,您应该看到性能提升。
主要部分是:
大内存寻址: 64位体系结构提供了更大的可直接寻址的存储空间。SQL Server 2005(64位)不受32位系统的4 GB内存限制的约束。因此,更多的内存可用于执行复杂的查询并支持基本的数据库操作。与传统的32位系统相比,这种更大的处理能力通过利用更多的内存来减少I / O延迟的代价。
增强的并行性: 64位体系结构提供了高级并行性和线程。并行处理和总线体系结构的改进使64位平台能够支持更多数量的处理器(最多64个),同时每个附加处理器都提供接近线性的可扩展性。使用大量的处理器,SQL Server可以在单个系统中支持更多的进程,应用程序和用户。
https://teratrax.com/sql-server-64-bit/
从32位SQL Server升级到64位SQL Server(这是SQL Server 2005)时,我看到的最引人注目的结果是将客户端的主要应用程序的速度提高了40%。我们要做的就是安装64位SQL Server,其他所有内容都是一样的!这是现实世界中的主要性能提升。
您可以具有更好的多任务处理性能,尤其是对于内置大量多线程的程序。此外,您可以在64位操作系统上安装更多ram。但是,只有在处理器支持64位指令时,才执行此操作。