Я исследую преимущества обновления с MS SQL 2012 до 2014 года. Одна из главных особенностей SQL 2014 - это оптимизированные для памяти таблицы, которые, очевидно, делают запросы очень быстрыми.
Я обнаружил, что есть несколько ограничений для таблиц, оптимизированных для памяти, таких как:
- Нет
(max)
размеров полей - Максимум ~ 1 КБ на строку
- Нет
timestamp
полей - Нет вычисляемых столбцов
- Нет
UNIQUE
ограничений
Все это квалифицируется как неприятности, но если я действительно хочу обойти их, чтобы получить преимущества в производительности, я могу составить план.
Настоящим ударом является тот факт, что вы не можете выполнить ALTER TABLE
оператор, и вам приходится проходить через эту проверку каждый раз, когда вы просто добавляете поле в INCLUDE
список индекса. Более того, похоже, что вам необходимо отключить пользователей от системы, чтобы внести какие-либо изменения в схемы таблиц MO в действующей БД.
Я нахожу это совершенно возмутительным, поскольку я действительно не могу поверить, что Microsoft могла бы инвестировать так много капитала для разработки в эту функцию и сделать ее поддержку настолько непрактичной. Это приводит меня к выводу, что я, должно быть, получил неправильный конец палки; Должно быть, я неправильно понял что-то об оптимизированных для памяти таблицах, что заставило меня поверить, что поддерживать их гораздо сложнее, чем есть на самом деле.
Итак, что я неправильно понял? Вы использовали таблицы МО? Есть ли какой-то секретный переключатель или процесс, который делает их практичными в использовании и обслуживании?
Вы не можете щелкнуть правой кнопкой мыши таблицу, оптимизированную для памяти, чтобы открыть конструктор и добавить новые столбцы по своему усмотрению из Sql Server Management Studio. Вы также не можете щелкнуть внутри имени таблицы как средство переименования таблицы. (SQL 2014 на момент написания этой статьи.)
Вместо этого вы можете щелкнуть правой кнопкой мыши таблицу и написать команду create для нового окна запроса. Эта команда создания может быть изменена путем добавления любых новых столбцов.
Таким образом, чтобы изменить таблицу, вы можете сохранить данные в новой таблице, временной таблице или табличной переменной. Затем вы можете удалить и заново создать таблицу с новой схемой и, наконец, скопировать обратно фактические данные . Эта игра из 3 контейнерных оболочек является чуть менее удобной для большинства случаев использования.
Но у вас нет причин беспокоиться о таблицах с оптимизацией памяти, если нет проблемы с производительностью, которую вы пытаетесь решить.
Затем вам придется взвесить, если ограничения и обходные пути того стоят для вашего варианта использования. У вас есть проблемы с производительностью? Вы пробовали все остальное? Повысит ли это вашу производительность в 10-100 раз? Использовать его или не использовать его, скорее всего, в любом случае будет немного проще.
источник
Вы можете использовать In-Memory OLTP в операционных серверах без каких-либо серьезных проблем. мы использовали эту технологию в банковской и платежной компании,
В общем, мы можем использовать оптимизированные для памяти таблицы, когда рабочая нагрузка слишком высока. с помощью In-Memory OLTP вы можете достичь более высокой производительности в 30 раз! Microsoft исправляет большинство этих ограничений в SQL Server 2016 и 2017. Оптимизированные для памяти таблицы имеют совершенно другую архитектуру по сравнению с таблицами на основе дисков.
Оптимизированные для памяти таблицы бывают двух типов. долговечные таблицы и недлительные таблицы. Надежные и недолговечные таблицы хранят данные таблиц в памяти. Кроме того, долговечные таблицы сохраняют данные на дисках для данных восстановления и схемы. В большинстве операционных сценариев мы должны использовать долговременные таблицы, потому что потеря данных здесь очень важна. в некоторых сценариях, например загрузка ETL и кэширование, мы можем использовать недолговечные таблицы.
Вы можете использовать эти электронные книги и узнать, как использовать эту технологию:
Кален Делани: https://www.red-gate.com/library/sql-server-internals-in-memory-oltp
Дмитрий Короткевич: https://www.apress.com/gp/book/9781484227718
источник