SQL Server В таблицах памяти, использующих tempdb

Я тестирую в таблицах памяти на SQL 2014, и план выполнения для определенного запроса показывает сортировку в базе данных tempdb.

Запрос имеет объединение двух таблиц в памяти (в поле с некластеризованным индексом в обеих таблицах) и группы с несколькими суммами и счетами - на сервере достаточно оперативной памяти.

Почему запрос сортируется в базе данных tempdb, если таблицы находятся в памяти?

Мне также интересно, почему SQL предлагает создать индекс, если оператор "создать индекс" не разрешен в таблицах памяти.

2 ответа

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

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

Ускорение, которое вы получаете от Hekaton, здесь крайне ограничено, если оно есть.

Вы не можете использовать create index заявление, но вы можете создавать индексы во время создания таблицы.

Другие вопросы по тегам