Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Новые возможности SQL Server 2014 (12.x), In-Memory OLTP могут значительно повысить производительность приложения базы данных OLTP. In-Memory OLTP — это подсистема СУБД, оптимизированная для памяти, интегрированная в подсистему SQL Server, оптимизированная для OLTP.
![]() |
Вы хотите попробовать SQL Server 2016? Зарегистрируйтесь в Microsoft Azure, а затем перейдите здесь , чтобы развернуть виртуальную машину с уже установленным SQL Server 2016. После завершения можно удалить виртуальную машину. |
Чтобы использовать In-Memory OLTP, вы определяете таблицу с высокой частотой обращений как оптимизируемую для работы в памяти. Таблицы, оптимизированные для памяти, полностью транзакционные, устойчивые и доступны с помощью Transact-SQL таким же образом, как и таблицы на основе дисков. Запрос может ссылаться как на оптимизированные для памяти таблицы, так и на диски. Транзакция может обновлять данные в оптимизированных для памяти таблицах и таблицах на основе дисков. Хранимые процедуры, которые ссылаются только на оптимизированные для памяти таблицы, можно скомпилировать в машинный код для дальнейшего улучшения производительности. Модуль OLTP In-Memory предназначен для чрезвычайно высокой параллельности сеансов для типа транзакций OLTP, инициируемых высокомасштабируемым средним уровнем. Для этого используются структуры данных без блокировки и оптимистичный, многоверсионный контроль конкурентности. Результат предсказуем: задержка меньше миллисекунды и высокая пропускная способность с линейным масштабированием для транзакций базы данных. Фактическое повышение производительности зависит от многих факторов, но 5–20 раз улучшения производительности являются общими.
В следующей таблице приведены шаблоны рабочей нагрузки, которые могут воспользоваться преимуществами In-Memory OLTP:
Сценарий реализации | Сценарий реализации | Преимущества In-Memory OLTP |
---|---|---|
Высокая скорость вставки данных из нескольких одновременных подключений. | В основном хранилище только для добавления. Не удается справляться с нагрузкой на вставку. |
Устранение разногласий. Уменьшение ведения журнала. |
Производительность чтения и возможности масштабирования при периодических пакетных вставках и обновлениях. | Высокопроизводительные операции чтения, особенно если каждый запрос сервера имеет несколько операций чтения для выполнения. Не удалось выполнить требования к масштабированию. |
Устраните конфликт при поступлении новых данных. Более низкая задержка извлечения данных. Свести к минимуму время выполнения кода. |
Интенсивная обработка бизнес-логики на сервере базы данных. | Ввод, обновление и удаление задач. Интенсивные вычисления внутри хранимых процедур. Соперничество при чтении и записи. |
Устранение конфликтов. Свести к минимуму время выполнения кода для уменьшения задержки и повышения пропускной способности. |
Низкая задержка. | Требовать низкой задержки бизнес-транзакций, которые типичные решения базы данных не могут достичь. | Устранение разногласий. Свести к минимуму время выполнения кода. Выполнение кода с низкой задержкой. Эффективное получение данных. |
Управление состоянием сеанса. | Частые вставки, обновления и поиск точек. Высокая масштабируемая нагрузка с многочисленных веб-серверов без отслеживания состояния. |
Устранение конфликтов. Эффективное получение данных. Необязательное сокращение операций ввода-вывода или их удаление при использовании не сохраняемых таблиц |
Дополнительные сведения о сценариях, в которых In-Memory OLTP приведет к наибольшему повышению производительности, см. в разделе In-Memory OLTP — общие шаблоны рабочих нагрузок и рекомендации по миграции.
In-Memory OLTP повышает производительность в OLTP с короткими транзакциями.
В шаблонах программирования, такие как In-Memory OLTP, будут улучшены сценарии параллелизма, поиск по точкам, рабочие нагрузки с множеством вставок и обновлений, а также логика бизнеса в хранимых процедурах.
Интеграция с SQL Server позволяет иметь в одной базе данных как таблицы, оптимизированные для памяти, так и таблицы на основе дисков, и выполнять запросы к обоим типам таблиц.
В SQL Server 2014 (12.x) наблюдаются ограничения в области Transact-SQL, поддерживаемой для In-Memory OLTP.
In-Memory OLTP обеспечивает значительный рост производительности и масштабируемости с помощью:
Алгоритмы, оптимизированные для доступа к данным резидентной памяти.
Оптимистическое управление конкурентностью, которое устраняет логические блокировки.
Свободные от блокировок объекты, которые устраняют все физические замки и защёлки. Потоки, выполняющие транзакционные операции, не используют блокировки или блоки для управления параллелизмом.
Скомпилированные в собственном коде хранимые процедуры, которые имеют значительно лучшую производительность, чем интерпретированные хранимые процедуры при доступе к оптимизированной для памяти таблице.
Это важно
Для использования In-Memory OLTP потребуется некоторые изменения синтаксиса в таблицах и хранимых процедурах. Дополнительные сведения см. в статье "Миграция на In-Memory OLTP". Прежде чем пытаться перенести таблицу на основе диска в оптимизированную для памяти таблицу, ознакомьтесь с определением того, следует ли перенести таблицу или хранимую процедуру в In-Memory OLTP , чтобы узнать, какие таблицы и хранимые процедуры будут использовать In-Memory OLTP.
В этом разделе
В этом разделе содержатся сведения о следующих понятиях:
Тема | Описание |
---|---|
Требования к использованию таблиц Memory-Optimized | Описывает требования к оборудованию и программному обеспечению и рекомендации по использованию оптимизированных для памяти таблиц. |
Использование In-Memory OLTP в среде виртуальной машины | Охватывает использование In-Memory OLTP в виртуализированной среде. |
примеры кода OLTPIn-Memory | Содержит примеры кода, демонстрирующие создание и использование оптимизированной для памяти таблицы. |
Таблицы, оптимизированные для памяти | Содержит таблицы, оптимизированные для памяти. |
переменные таблицыMemory-Optimized | Пример кода, показывающий, как использовать переменную таблицы, оптимизированную для памяти, вместо традиционной табличной переменной для уменьшения использования tempdb. |
Индексы в таблицах Memory-Optimized | Содержит индексы, оптимизированные для памяти. |
Нативно скомпилированные хранимые процедуры | Представляет хранимые процедуры, скомпилированные нативно. |
Управление памятью для компонента In-Memory OLTP | Общие сведения об использовании памяти и управлении ими в системе. |
Создание и управление хранилищем для оптимизированных для памяти объектов | Рассматриваются файлы данных и дельта-файлы, которые хранят сведения о транзакциях в таблицах, оптимизированных для памяти. |
Резервное копирование и восстановление оптимизированных для памяти таблиц | Описывает резервное копирование, восстановление и восстановление для оптимизированных для памяти таблиц. |
Поддержка Transact-SQL для выполняющейся в памяти OLTP | Обсуждает Transact-SQL поддержку In-Memory OLTP. |
Поддержка высокой доступности для баз данных OLTP In-Memory | Описывает группы доступности и отказоустойчивую кластеризацию в In-Memory OLTP. |
Поддержка SQL Server для In-Memory OLTP | Выводит список новых и обновленных синтаксисов и функций, поддерживающих оптимизированные для памяти таблицы. |
Миграция на In-Memory OLTP | Описывается перенос таблиц на основе дисков в оптимизированные для памяти таблицы. |
Дополнительные сведения о In-Memory OLTP доступны в: