Основное различие между 32 и 64 битной OS - размер виртуального адресного пространства.
x64 bit Win 2003 SP1 - SQL 2000 32 bit
in WOW64 = 4Gb of virtual address space (VAS)
В 32 битной OS максимальный адрес 0xFFFFFFFF (4Gb decimal)
Поэтому мы имеем ограничение в 4Gb.
Адресное пространство делится на kernel (2Gb) и user (2Gb) mode
(например SQL). С 3Gb мы уменьшаем kernel на 1Gb и увеличиваем user mode.
В этом случае пользовательский процесс сможет использовать 3Gb
если он /LARGEADDRESSAWARE.
В 64 битной OS kernel достаточно адресного пространства,
поэтому пользовательский процесс может использовать все 4Gb
(Win 2003 x64 SP1). Пользовательский процесс при этом должен быть
слинкован с /LARGEADDRESSAWARE. 3Gb указывать не надо.
Иными словами каждой инстанс SQL в x64 bit Win 2003 SP1 будет доступно 4Gb виртуального адресного пространства.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devtest_g/hh/DevTest_g/BootIni_de16d3ec-c437-4628-805f-8945ea598a92.xml.asp
On 64-bit versions of Windows Server 2003, the system automatically expands the virtual address space available to 32-bit user-mode programs linked with the /LARGEADDRESSAWARE option as needed without the /3GB boot parameter. On Windows Server 2003 RTM (without Service Pack 1), these 32-bit programs can access up to 3 GB of virtual address space. On Windows Server 2003 with Service Pack 1 and later systems, they can access up to 4 GB of virtual address space. Native 64-bit user-mode programs can access up to 8 TB of virtual address space.
Все вышесказанное не зависит от размера физической памяти.
Если у Вас будет недостаточно физический памяти для покрытия
всего используемого виртуального адресного пространства,
kernel будет интенсивно использовать page swapping.
x64 bit Windows 2003 поддержтвает PAE по умолчанию.
Вам необходимо включить опцию AWE и задать максимальный
размер памяти, доступный SQL Server. SQL Server будет использовать
AWE также как и в 32 битной OS. Kernel не может производить
page swapping с памятью используемой при помощи AWE в SQL 2000.
Поэтому вся память резервируется при старте SQL.
Аналогично в 32 bit Windows 2003.
SQL 2005 с Windows 2003 может резервировать AWE память динамически.
Для расчета памяти используется примерно такая формула:
32 bit:2Gb VAS = user mode (SQL Server)
MemToLeave = 255 (max worker threads)* 0.5Mb = 128Mb + 256Mb = 384Mb
Buffer Pool (max server memory)= 2Gb - 384Mb ~= 1.6Gb
+ /3GB
Total 1.6Gb + 1Gb = 2.6
Пример с общей физической памятью = 8Gb (без /3GB):
4Gb физической памяти для покрытия 2Gb(VAS kernel)+2Gb(VAS SQL)
Из 2Gb(VAS SQL) Buffer Pool (max server memory) = 1.6
Остается дополнительные 4Gb физической памяти. 1.6 + 4 = 5.6Gb
Тоесть max server memory надо устанавливать 5600
64 bit:Без AWE:
4Gb VAS = user mode (SQL Server)
MemToLeave = 384Mb
Buffer Pool ~= 3.6 Gb