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

Откуда:
Сообщений: 37
Доброго времени суток, уважаемые знатоки !
Прошу помочь мне с ответом на вопрос:

Оптимизатор обновляет статистику в случае ее устаревания. Факт устаревания он устанавливает исходя из общего количества строк в таблице и порога допустимых изменений. Можно ли каким то образом посмотреть/подправить это значение (порог)?

Версия MS SQL SERVER 2008 R2.
12 апр 12, 11:29    [12404412]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Evelion
Оптимизатор обновляет статистику в случае ее устаревания

С чего вы это взяли ?
12 апр 12, 11:30    [12404426]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35396
Блог
Гуглите про флаг трассировки 2371
12 апр 12, 11:38    [12404510]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
http://blogs.msdn.com/b/saponsqlserver/archive/2011/09/07/changes-to-automatic-update-statistics-in-sql-server-traceflag-2371.aspx
12 апр 12, 12:01    [12404729]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Evelion
Member

Откуда:
Сообщений: 37
Уже нашел про флаг, но все равно спасибо !)
Я так понимаю его можно только включить или отключить... а можно ли поменять используемую им формулу ?
12 апр 12, 12:25    [12404911]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Evelion
Member

Откуда:
Сообщений: 37
Glory,

Из BOL..

"Если включен параметр AUTO_UPDATE_STATISTICS (автоматическое обновление статистики), то оптимизатор запросов определяет, когда статистика может оказаться устаревшей, и обновляет ее, если она используется в запросе. "
12 апр 12, 12:26    [12404918]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Evelion
Member

Откуда:
Сообщений: 37
Критик, tpg

Этот флаг использует данные о количестве изменений произошедших в таблице. Можно ли откуда-нибудь выцепить такую иноформацию ?
12 апр 12, 14:02    [12405747]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35396
Блог
Можно конечно,
SELECT t.name AS [TableName],
       fi.page_count AS [Pages],
       fi.record_count AS [Rows],
       CAST(fi.avg_record_size_in_bytes AS int) AS [AverageRecordBytes],
       CAST(fi.avg_fragmentation_in_percent AS int) AS [AverageFragmentationPercent],
       SUM(iop.leaf_insert_count) AS [Inserts],
       SUM(iop.leaf_delete_count) AS [Deletes],
       SUM(iop.leaf_update_count) AS [Updates],
       SUM(iop.row_lock_count) AS [RowLocks],
       SUM(iop.page_lock_count) AS [PageLocks]
  FROM sys.dm_db_index_operational_stats(DB_ID(),NULL,NULL,NULL) AS iop
  JOIN sys.indexes AS i ON iop.index_id = i.index_id AND
                           iop.object_id = i.object_id
  JOIN sys.tables AS t ON i.object_id = t.object_id AND
                          i.type_desc IN ('CLUSTERED', 'HEAP')
  JOIN sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') AS fi ON fi.object_id=CAST(t.object_id AS int) AND
                                                                                     fi.index_id=CAST(i.index_id AS int)
  GROUP BY t.name, fi.page_count, fi.record_count, fi.avg_record_size_in_bytes, fi.avg_fragmentation_in_percent
  ORDER BY [RowLocks] desc


весь вопрос только в "от какого момента считать"
12 апр 12, 15:27    [12406491]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Статистик
Guest
Evelion
Критик, tpg

Этот флаг использует данные о количестве изменений произошедших в таблице. Можно ли откуда-нибудь выцепить такую иноформацию ?


Можешь выцеплять то же, что и сервер -

sp_helptext sp_updatestats
12 апр 12, 15:44    [12406649]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по статистике в MS SQL 2008  [new]
Evelion
Member

Откуда:
Сообщений: 37
Всем большущее спасибо !!!!)
13 апр 12, 14:13    [12412036]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить