Время выполнения UPDATE STATISTICS варьируется для одной и той же таблицы на разных серверах с одинаковой спецификацией - PullRequest
0 голосов
/ 22 мая 2018

У меня есть два SQL Server (скажем, SQL1 и SQL2) с одинаковой конфигурацией и таблица (скажем, TargetTable) с одинаковой структурой и индексами на обоих серверах.Обе таблицы имеют одинаковое количество записей (около 1 миллиарда).В основном точно такая же таблица реплик.У меня есть работа, которая обновляет статистику этой таблицы еженедельно на соответствующем сервере.Поскольку данные огромны, я использовал

UPDATE STATISTICS TargetTable WITH SAMPLE 1 PERCENT;

. На сервере SQL2 время выполнения шагов статистики обновления колеблется от 8 минут до 1 часа 30 минут, в то время как время выполнения на сервере SQL1 довольно постоянное и составляет 8 минут.

Сначала я подумал, что причиной может быть память tempdb, но это не так.На этом шаге база данных обоих серверов имеет одинаковую свободную память.

Есть ли причина для такого колебания?

1 Ответ

0 голосов
/ 23 мая 2018

Хотя вы подтвердили, что оба SQL-сервера имеют одинаковую конфигурацию / настройку, ваши серверы являются виртуальными, а не физическими серверами.

Это означает, что вы зависите от того, что еще работает на базовом хостеаппаратное обеспечение, и может быть много других виртуальных серверов, совместно использующих те же аппаратные ресурсы.

Ваши 2 сервера могут даже не находиться на одном хосте или могут быть подключены к разным логическим устройствам хранения с разными возможностями.

Примечание . Если вы еще не настроили эту настройку, советуем установить резервирование памяти на хосте, равное количеству памяти, выделенной вашему виртуальному серверу (а также установить SQL).Максимальная настройка памяти сервера на значение, по крайней мере, на 4 ГБ ниже максимально доступной памяти. Объем оставляемой памяти зависит от того, что еще работает на сервере.)

Как установить максимальную память SQL Server дляVMware

...