Поделиться через


Помощник по оптимизации памяти

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Отчеты об анализе производительности транзакции (см. статью Определение, должна ли таблица или хранимая процедура быть перенесена в In-Memory OLTP) информируют о том, какие таблицы в базе данных смогут воспользоваться преимуществами перехода на выполняющуюся в памяти OLTP. После определения таблицы, которую планируется перенести для использования In-Memory OLTP, можно воспользоваться помощником по оптимизации памяти в SQL Server Management Studio для миграции таблицы базы данных в таблицу, оптимизированную для памяти.

Помощник по оптимизации памяти предоставляет следующие возможности:

  • Определение любых компонентов из таблицы на диске, которые не поддерживаются для таблиц, оптимизированных для памяти.

  • Перенос таблицы и данных в среду, оптимизированную для памяти (при отсутствии неподдерживаемых компонентов).

Дополнительные сведения о методологиях миграции см. в разделе Выполняемая в памяти OLTP — стандартные шаблоны рабочей нагрузки и вопросы миграции.

Пошаговое руководство по помощнику по оптимизации памяти

В обозреватель объектов щелкните правой кнопкой мыши таблицу, которую нужно преобразовать, и выберите помощник по оптимизации памяти. Появится стартовая страница помощника по оптимизации памяти таблицы.

Контрольный список оптимизации памяти

При нажатии кнопки Далее на странице приветствия помощника по оптимизации памяти таблицыотобразится контрольный список оптимизации памяти. Таблицы, оптимизированные для памяти, поддерживают не все функции дисковой таблицы. Контрольный список оптимизации памяти сообщает, использует ли дисковая таблица какие-либо функции, которые несовместимы с таблицей, оптимизированной для памяти. Помощник по оптимизации памяти таблицы не изменяет дисковую таблицу для ее миграции на In-Memory OLTP. Эти изменения вы должны выполнить самостоятельно, прежде чем продолжать миграцию. Для каждой найденной несовместимости Помощник по оптимизации памяти таблицы отображает ссылку на сведения, которые могут помочь изменить дисковые таблицы.

Если необходимо сохранить список этих несовместимостей, чтобы запланировать миграцию, нажмите кнопку Создание отчета , чтобы создать список в формате HTML.

Если в таблице нет несовместимости и вы подключены к экземпляру SQL Server 2014 (12.x) с OLTP в памяти, нажмите кнопку "Далее".

Предупреждения оптимизации памяти

Следующая страница с предупреждениями оптимизации памяти содержит список проблем, которые не препятствуют миграции таблицы для использования с In-Memory OLTP, но могут вызвать ошибки в поведении других объектов (например, хранимых процедур и функций CLR) или привести к непредвиденному их поведению.

Первые несколько предупреждений в списке информационные, они могут относиться или не относиться к таблице. По ссылкам в правом столбце таблицы можно открыть дополнительные сведения.

В таблице предупреждений также приводятся предупреждения о потенциальных условиях, которые отсутствуют в таблице.

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

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

Просмотр параметров оптимизации

Следующий экран позволяет изменять параметры миграции в In-Memory OLTP.

Оптимизированная для памяти файловая группа
Имя создаваемой, оптимизированной для памяти файловой группы. База данных должна иметь оптимизированную для памяти файловую группу по крайней мере c одним файлом, чтобы можно было создать таблицу, оптимизированную для памяти.

Если оптимизированной для памяти файловой группы нет, можно изменить имя по умолчанию. Оптимизированные для памяти файловые группы нельзя удалять. Существование оптимизированной для памяти файловой группы может отключить некоторые функции уровня базы данных, например AUTO CLOSE и зеркальное отображение базы данных.

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

Логическое имя файла и путь к файлу
Имя файла, который будет содержать оптимизированную для памяти таблицу. База данных должна иметь оптимизированную для памяти файловую группу по крайней мере c одним файлом, чтобы можно было создать таблицу, оптимизированную для памяти.

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

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

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

Предполагаемая стоимость текущей памяти (МБ)
Помощник по оптимизации памяти оценивает объем памяти, который будет потреблять новая, оптимизированная для памяти таблица, основывая эту оценку на метаданных дисковой таблицы. Расчет размера таблицы описан в разделе Размер строк и таблицы для таблиц, оптимизированных для памяти.

При отсутствии достаточного объема памяти процесс миграции может завершиться ошибкой.

Также он копирует данные таблицы в новую, оптимизированную для памяти таблицу
Выберите этот параметр, если нужно также перенести данные из текущей таблицы в новую, оптимизированную для памяти таблицу. Если этот параметр не выбран, то новая, оптимизированная для памяти таблица будет создана без строк.

По умолчанию миграция таблицы будет выполняться как миграция устойчивой таблицы.
In-Memory OLTP поддерживает неустойчивые таблицы с более высокой производительностью по сравнению с устойчивыми таблицами, оптимизированными для памяти. Однако данные в неустойчивой таблице будут утеряны после перезапуска сервера.

Если этот параметр выбран, помощник по оптимизации памяти создаст неустойчивую таблицу вместо устойчивой.

Предупреждение

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

Нажмите кнопку Next (Далее), чтобы продолжить.

Просмотр преобразования первичного ключа

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

Если первичный ключ не существует и таблица переносится в неустойчивую таблицу, этот экран не появляется.

Для текстовых столбцов (столбцы с типами char, nchar, varcharи nvarchar) следует выбрать соответствующие параметры сортировки. In-Memory OLTP поддерживает для столбцов в оптимизированной для памяти таблице только параметры сортировки BIN2 и не поддерживает параметры сортировки с дополнительными символами. Сведения о поддерживаемых параметрах сортировки и возможном влиянии изменений в параметрах сортировки см. в разделе Collations and Code Pages .

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

Выберите новое имя для этого первичного ключа
Имя первичного ключа для этой таблицы должно быть уникальным в пределах базы данных. Изменить имя первичного ключа можно здесь.

Выберите тип этого первичного ключа
In-Memory OLTP поддерживает 2 типа индексов в оптимизированной для памяти таблице.

  • Индекс NONCLUSTERED HASH. Этот индекс лучше всего подходит для индексов с большим числом уточняющих запросов. Число контейнеров для этого индекса можно задать в поле Число контейнеров .

  • Индекс NONCLUSTERED. Этот тип индекса лучше всего подходит для индексов с большим количеством запросов в диапазоне. Порядок сортировки для каждого столбца можно настроить в списке Столбец и порядок сортировки .

Сведения о том, индексы какого типа лучше подходят для конкретного первичного ключа, см. в разделе Хэш-индексы.

Выбрав параметры для первичного ключа, нажмите кнопку Далее .

Преобразование проверки индекса

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

Если таблица имеет только первичный ключ и миграция выполняется в устойчивую таблицу, этот экран не появляется.

Приняв решение для каждого индекса в таблице, нажмите кнопку Далее.

Проверка действий миграции

Следующая страница — Проверка действий миграции. Чтобы выполнить скрипт миграции, щелкните "Скрипт ", чтобы создать скрипт Transact-SQL. После этого скрипт можно изменить и выполнить. Нажмите кнопку Миграция , чтобы начать миграцию таблицы.

После завершения процесса обновите обозреватель объектов для просмотра новой, оптимизированной для памяти таблицы и старой дисковой таблицы. Старую таблицу можно сохранить или удалить по своему усмотрению.

См. также

Миграция в In-Memory OLTP