Функция и требования OLTP в памяти SQL

#sql-server #in-memory-database

#sql-сервер #база данных в памяти

Вопрос:

Все новое в StackOverflow

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

В настоящее время обрабатывается миграция Msql16> Msql19 и рассматривается возможность реализации в памяти.

Когда я Гуглю, кажется, что в памяти есть флажок pr. База данных, которая активируется в памяти?

Зависит ли приложение от памяти?

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

ИЛИ можно просто активировать In-Memory, и тогда это сработает?

Пожалуйста, не стесняйтесь добавлять любую недостающую информацию к моим вопросам… Заранее благодарю. Бр ШЕР

Комментарии:

1. Все вопросы основаны на неверных предположениях. Базы данных уже активно кэшируют данные в памяти. Таблицы в памяти уже были доступны в SQL Server 2014, поэтому, если существующая база данных их не использовала, на то была причина. Преимущество, которое вы получаете от них, — это улучшенный параллелизм из-за различных механизмов блокировки, а не ускорение из-за кэширования памяти. Именно потому, что данные уже были кэшированы

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

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

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

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