Статистика SQL для больших баз данных - PullRequest
2 голосов
/ 21 апреля 2011

Что такое хороший способ обработки статистики в SQL 2008 для очень больших баз данных? Несколько таблиц по 100м + строк в каждой.

Должно ли быть включено автоматическое обновление статистики? Поможет ли автоматическое обновление статистики async вообще? нужно ли настроить задание для ручного обновления статистики по какому-либо расписанию?

Обычно данные добавляются в таблицу, но старые данные меняются не очень часто.

Обновление: около 100 тысяч строк вставляются каждый час. В основном отчетность делается на данных. Обновления могут происходить в 1-2 столбцах на ~ 500 тыс. Строк в день.

Ответы [ 4 ]

2 голосов
/ 21 апреля 2011

Я бы не хотел, чтобы обновление статистики запускалось в середине дня на большой таблице, поэтому я бы сказал, нет. Кроме того, вам нужно преодолеть порог (я считаю, 20%), прежде чем он пойдет в любом случае

Теперь, если у вас уже есть задание, которое перестраивает индекс, тогда статистика обновляется автоматически (это не верно для reorg / defrag)

Кроме того, 100 миллионов строк не имеют большого значения, сколько столбцов, если таблица имеет ширину 12 байт (на строку), по сравнению с 4100 байтами, что является большой разницей (особенно с учетом того, что с 4100 байтами на таблицу строк вы можете только выводить 1 строка на страницу)

1 голос
/ 21 апреля 2011

«Это зависит» - хороший ответ, но в отсутствие воспроизводимых и измеримых улучшений я бы оставил его по умолчанию.

Если вы обновляете статистику вручную в течение ночи, у вас будет меньше шансов на автоматическое обновление. И вы можете отложить обновление статистики, установив AUTO_UPDATE_STATISTICS_ASYNC (см. «Когда использовать синхронное или асинхронное обновление статистики») )

На балансе я не отключил бы его и не изменил бы значение по умолчанию, которое включено.

1 голос
/ 21 апреля 2011

Должно ли быть включено автоматическое обновление статистики?

Это зависит ...

Поможет ли автоматическое обновление статистики асинхронизация статистики вообще?

Это поможет предотвратить обновление статистики, которое занимает много времени, чтобы убить запрос.По сути, это говорит SQL Server, что если поступает запрос и он обнаруживает, что статистика устарела, вместо того, чтобы удерживать запрос, обновлять статистику и затем выполнять запрос.просто запустите запрос и обновите статистику за кулисами.Таким образом, тот конкретный запрос, который избавил от необходимости обновления статистики, не даст никаких преимуществ, но также не будет сидеть и ждать, пока статистика обновится первой.

, если будет настроено заданиевручную обновить статистику по какому-либо расписанию?

Да!Статистика обновляется только в том случае, если 20% данных таблиц были «изменены».На очень больших таблицах, которые в принципе могут совпадать с высказываниями, статистика никогда не будет обновляться.Если у вас есть большие таблицы, в которые добавляются новые данные, у вас всегда должен быть запланированный процесс обновления статистики на них.

1 голос
/ 21 апреля 2011

Что такое хороший способ обработки статистики в SQL 2008 для очень больших баз данных? Несколько столов с 100м + рядов в каждом.

ПОЖАЛУЙСТА, не называйте это очень большим. Я приведу вам пример очень большой. Мы просто запускаем SQL-оператор для некоторых данных в нашем хранилище. Временное использование пространства составляет 180 ГБ. Для этого заявления. Db? две цифры терабайта. 100 м + ряды не маленькие, но не очень большие.

Должно ли быть включено автоматическое обновление статистики? Поможет ли автоматическое обновление статистики async вообще? должна работать быть настроен вручную обновлять статистику по какому-либо расписанию?

Зависит. Об обновлениях и моделях использования.

Обычно данные добавляются в таблицу, но старые данные меняются не очень часто.

Как часто? Сколько в процентах? Какие данные? Статистика выходит за рамки быстрого или медленного движения? ВЫ должны предоставить МНОГО дополнительной информации, чтобы сделать разумные предложения.

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