Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оптимізація використання пам'яті при індексуванні. Виділення пам'яті для запитів




Включення підтримки розширеної пам'яті за допомогою технології AWE.

В редакциях SQL Server 2005 Enterprise и Developer реализована поддержка расширенной памяти, выделяемой с помощью интерфейса программирования AWE (address windowing extensions), позволяющего 32-разрядным приложениям адресовать память за пределами 4 Гбайт. Если включена поддержка технологии AWE, SQL Server 2005 динамически распределяет расширенную память при запуске, а также распределяет или освобождает расширенную память в рамках заданных параметров минимального и максимального количества используемой памяти. Администратор должен сбалансировать использование памяти SQL Server с требованиями всей системы. SQL Server всегда, даже на компьютерах, настроенных на выделение приложениям менее чем 3 Гбайт адресного пространства в непривилегированном режиме процессора, пытается использовать всю расширенную память, отображаемую через механизм AWE.

Совет Для обеспечения функциональности Hot-Add Memory (Добавление памяти на ходу), предоставляемой Windows Server 2003, Microsoft рекомендует включить поддержку технологии AWE. Следует учитывать и то, что SQL Server способен динамически освобождать память, отображаемую через механизм AWE, однако текущее количество распределенной расширенной памяти не может быть выгружено в файл подкачки.

Совет Если включена поддержка AWE, учетная запись пользователя или сервера, под которой запущен экземпляр, должна обладать правом пользователя Lock pages in memory (Закрепление страниц в памяти), которое назначается с помощью оснастки Group Policy (Групповая политика).

Чтобы включить поддержку технологии AWE, выполните следующие действия.

1. В диалоговом окне Server Properties (Свойства сервера) перейдите на страницу Memory (Память) и установите флажок Use AWE to allocate memory (Использовать AWE для распределения памяти).

2. Установите такие значения максимального и минимального использования памяти, которые будут гарантировать достаточно памяти для других приложений.

Например, определив минимальный объем, равным 2 Гбайт (2048 Мбайт), а максимальный — 4 Гбайт (4096 Мбайт), вы ограничите количество памяти для SQL Server 2005.

3. Щелкните кнопку OK.

Для включения поддержки AWE можно также использовать хранимую процедуру sp_configure, применив следующие инструкции Transact-SQL:

EXEC sp_configure 'awe enabled', 1

RECONFIGURE

GO

 

Оптимизация использования памяти при индексировании

По умолчанию SQL Server 2005 динамически управляет количеством памяти, выделяемой для операций создания индексов. Если для создания индексов требуется дополнительная память, и согласно параметрам конфигурации сервера память доступна, то сервер ее выделит. Если же дополнительная память требуется, но заданные параметры не позволяют ее выделить, для создания индексов будет использоваться память, уже выделенная для выполнения построения индексов.

Как правило, сервер автоматически настраивает выделение памяти для таких операций — в большинстве ситуаций этого бывает достаточно. Едва ли не единственным исключением являются случаи, когда используются секционированные таблицы и индексы и при этом некоторые секционированные индексы являются несовмещенными (nonaligned), то есть для их секционирования определена отличная от связанной таблицы схема. В этих случаях, если множество одновременных операций создания индексов выполняются параллельно, могут возникнуть проблемы создания индексов.

Когда такое происходит, можно назначить определенное количество памяти, выделяемой для создания индекса. Для этого выполните следующие действия.

1. В диалоговом окне Server Properties (Свойства сервера) перейдите на страницу Memory (Память) и задайте необходимое значение в поле Index creation memory (Объем памяти для создания индекса). Значение указывается в килобайтах.

2. Щелкните кнопку OK.

Можно также использовать хранимую процедуру sp_configure, применив такую инструкцию:

EXEC sp_configure 'index create memory', number_of_kilobytes

Примечание Количество памяти, назначенное для операций создания индекса, должно быть не меньше, чем минимальное количество памяти для запроса. В противном случае SQL Server будет использовать количество памяти, указанное как минимальное для запроса, и отобразит предупреждение об этом.

Выделение памяти для запросов

По умолчанию сервер назначает определенный минимальный объем памяти — 1024 Кбайт — для выполнения запроса. Это количество памяти гарантированно выделяется для каждого пользователя, причем значение можно указать в диапазоне от 512 Кбайт до 2 Гбайт. При увеличении минимального размера памяти, выделяемой для запроса, повысится производительность запросов, выполняющих операции по интенсивному использованию процессора, такие как сортировка или хеширование.

Однако если указать слишком высокое значение, можно снизить общую производительность системы. Поэтому устанавливайте минимальный размер памяти, выделяемой для запроса, только в случае, когда существуют проблемы со скоростью выполнения запросов.

 

Совет Значение по умолчанию, равное 1024 Кбайт, приемлемо в большинстве случаев.

Однако иногда возникает потребность его изменить. Как правило, это бывает в двух случаях: если сервер предельно загружен и обрабатывает большое количество одновременных запросов, выполняющихся в контексте отдельных пользовательских соединений, или, на оборот, в относительно медленной среде, с небольшим количеством запросов, которые, тем не менее, весьма обширны и сложны. Для этих случаев определяющими в решении настроить минимальный размер памяти для запроса должны стать четыре фактора:

• общее количество свободной памяти (когда система находится в состоянии ожидания при запущенном SQL Server);

• среднее количество одновременных запросов, выполняющихся в отдельных пользовательских соединениях;

• средний размер запроса;

• время отклика для запроса, к которому следует стремиться.

Совет Часто между этими значениями необходимо найти компромисс. Не всегда удается добиться мгновенного отклика, но можно оптимизировать производительность, базируясь на доступных ресурсах.

Используйте следующее уравнение, чтобы получить начальную точку для оптимизации: свободная_память / (средний_размер_запроса * среднее_количество_одновременных_запросов). Например, если система имеет 200 Мбайт свободной памяти, средний размер запроса — 2 Мбайт и среднее количество одновременных запросов — 5, тогда оптимальное значение для размера запроса будет таким: 200 Мбайт / (2 * 5) или 20 Мбайт. Обычно это значение отображает максимум, который нужно назначить в текущей конфигурации системы, поэтому следует рассмотреть возможность уменьшения этого значения.

Чтобы определить количество памяти, выделяемой для запросов, выполните указанные действия.

1. В диалоговом окне Server Properties (Свойства сервера) перейдите на страницу Memory (Память) и в поле Minimum memory per query (Минимальный объем памяти для запроса) задайте необходимое значение, которое указывается в килобайтах.

2. Щелкните кнопку OK.

Также можно использовать хранимую процедуру sp_configure. Соответствующая инструкция следующая:

EXEC sp_configure 'min memory per query', number_of_kilobytes

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 349; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.