Как заставить SQL-сервер эффективно работать с 4-мя гигабайтами памяти?   

Если на вашем сервере установлен Windows 2000 Advanced Server и SQL Server 2000 Enterprise Edition, и объем оперативной памяти, захватываемый процессом SQL-сервера (sqlserver.exe) не превышает 2-х гигабайт (чаще всего эта цифра не доходит до двух гигабайт), то эта информация для вас.

Посмотрите пример - объем установленной в системе памяти - 4 гигабайта, при этом используется чуть больше половины.

Объем выделенной для одного приложения (sqlserver.exe) памяти не достигает и 2-х гигабайт, в то время как нужно значительно больше.

Дело в том, что адресное пространство стандартного х86 32-разрядного процессора - 4 гигабайта. Операционная система резервирует для своих нужд адресное пространство в 2 гигабайта, а приложению достается такой же объем адресного пространства (2 гигабайта). В принципе, несколько процессов, например несколько экземпляров SQL-сервера могут занять всю доступную в системе память, но опять же таки - по частям.

Нам же требуется добиться того, чтобы один экземпляр получил максимум памяти. Для этого в Windows 2000 Advanced Server есть ключ системы: /3GB. Он указывается в файле boot.ini.

Пример. Существующую запись:

multi(0)disk(0)rdisk(0)partition(2)WINNT="Microsoft Windows 2000 Advanced Server" /fastdetect

мы заменим на:

multi(0)disk(0)rdisk(0)partition(2)WINNT="Microsoft Windows 2000 Advanced Server" /3GB /fastdetect

Теперь о том, что означает этот ключ. А означает он, что объем адресного пространства, выделяемого каждому приложению теперь будет равен 3 гигабайтам, в то время как 1 гигабайт резервируется системой.

Таким образом, если у нас объем оперативной памяти больше 2 гигабайт, то для того чтобы можно было распределить большой объем памяти для одного приложения мы указываем этот ключ. При этом не имеет значения, сколько в действительности у нас физической памяти: 2,5 или 4 гигабайта, речь идет об адресуемом адресном пространстве. Приложению будут доступны 3 гигабайта адресного пространства.

Далее, для SQL-сервера мы можем указывать, сколько памяти он может использовать.

Из всего вышеперечисленного следует мораль: если вы хотите, чтобы SQL-сервер работал с объемом памяти более 2-х гигабайт на платформе из семейства Windows 2000 Server, вам потребуется установить Windows 2000 Advanced Server или выше и SQL Server 2000 Enterprise Edition.

 

 

 Перепечатка,воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").