Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Правильно ли понимаю, что надо обновлять статистику после rebuild/defrag?  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Читаю https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes:
Starting with SQL Server 2012, statistics are not created by scanning all the rows in the table when a partitioned index is created or rebuilt. Instead, the query optimizer uses the default sampling algorithm to generate statistics. To obtain statistics on partitioned indexes by scanning all the rows in the table, use CREATE STATISTICS or UPDATE STATISTICS with the FULLSCAN clause.

Или же текст означает "если хотите то можете сделать так, но не обязательно"? Сомнения поскольку не знаю что за "default sampling algorithm".
25 июл 17, 07:47    [20671718]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли понимаю, что надо обновлять статистику после rebuild/defrag?  [new]
o-o
Guest
ваш вопрос именно о partitioned index?
а то вроде в заголовке общий вопрос,
а цитата именно о секционированных.
---
для несекционированных ребилд обновляет статистику с FULLSCAN, бесплатно.
т.к. он все равно весь индекс читает.

для секционированных...
да, сделали такую оптимизацию.
статистика же 1 на весь индекс, не на партицию.
выходит, ребилдим 1 Гб, а статистику что, с фуллсканом обновим,
т.е. 400Гб вычитаем?
логично оставить это на откуп ребилдящего.
можете себе позволить все перечитать -- читайте with the FULLSCAN clause.
не хотите/не можете -- вам обновят с "default sampling algorithm"
SQL Server Statistics: Explained
link above
When it fires it will use the default sampling rate and here is the algorithm how it calculates the sampling rate.

1) If the table < 8MB then it updates the statistics with a fullscan.

2) If the table > 8MB, it follows an algorithm. It reduces the sampling rate as the number of rows in the table are increased to make sure we are not scanning too much data. This is not a fixed value but is under the control of optimizer. It is not a linear algorithm either.

Example: if we have 1,000,000 rows it would use a sampling rate of 30% but when the number of rows increase to 8,000,000 it would reduce the sampling rate to 10%. These sampling rates are not under the DBAs control but optimizer decides it.
25 июл 17, 11:38    [20672412]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли понимаю, что надо обновлять статистику после rebuild/defrag?  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Изначально прочитал partitioned index как Fragmented. 8-D
Так что вопрос мой некорректный. Я имел в виду несекционированные.
25 июл 17, 12:00    [20672519]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли понимаю, что надо обновлять статистику после rebuild/defrag?  [new]
o-o
Guest
для несекционированных все осталось как и было.
не стОит по ним статистику обновлять после ребилда,
можно только исказить ее,
т.к. ребилд обновил с аналогом FULLSCAN,
а вы можете пересчитать с SAMPLED.

что НЕ обновляет ребилд, так это колоночные статистики, если они были
25 июл 17, 12:10    [20672566]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить