#azure-sqldw
#azure-sqldw
Вопрос:
Создает ли функция «Создать таблицу как» в хранилище данных SQL статистику в фоновом режиме или ее нужно создавать вручную (как я делал бы, когда выполнял обычную инструкцию «Создать таблицу»?)
Ответ №1:
Начиная с текущей версии, вам всегда нужно создавать статистику на уровне столбцов для таблиц, независимо от того, была ли она создана с помощью обычной CREATE TABLE
команды или команды CTAS CREATE TABLE AS...
. Также рекомендуется создавать статистику для столбцов, используемых в объединениях, предложениях WHERE, GROUP BY , ORDER BY и предложениях DISTINCT.
Что касается таблиц, созданных с помощью CTAS, компонент database Engine имеет правильное представление о том, сколько строк в таблице, как указано в sys.partitions
, но не на уровне статистики на уровне столбцов. Для таблиц, созданных с помощью CREATE TABLE
этого, по умолчанию используется 1000 строк. В приведенном ниже примере первая таблица была создана с помощью CTAS и содержит 208 строк, вторая таблица с обычным CREATE TABLE
и INSERT
из первой таблицы и также имеет 208 строк, но sys.partitions
считает, что в ней 1000, например
Создание любой статистики на уровне столбцов вручную исправит это число.
Таким образом, всегда вручную создавайте статистику по важным столбцам, независимо от того, как была создана таблица.