Причини відключення автоматичного оновлення статистики?


13

Щойно я дізнався, що компанія-клієнт, над якою працюю, вирішила відключити параметри статистики автоматичного оновлення для деяких своїх SQL-серверів, а DBA вручну усунути проблеми з продуктивністю, коли вони виникають.

Однак такий спосіб для мене не має сенсу. Чому ви хочете не допустити оновлення статистики?

Відповіді:


11

Моя порада:

  • Залиште "Автоматичне оновлення статистики" увімкнутим (поки ви не зіткнетеся з дуже вагомою причиною цього не робити) - ви не хочете, щоб велике видалення в середині дня скидало плани запитів до наступного запуску технічного обслуговування.
  • Однак заплануйте обслуговування / оновлення індексу статистики у спокійний час. sp_updatestatsоновить всі статистичні дані для всіх таблиць у базі даних для вас, але це також спричинить збережені перекомпіляції протоколу, тому вибирайте свій час ретельно (тобто sp_updatestatsбезпосередньо перед звітом про кінець місяця, ймовірно, неоптимальним).

Скільки часто потрібно запускати статистику обслуговування / відновлення індексу, залежить від завантаження вашої бази даних, зокрема від того, як часто ваші дані змінюються (тобто INSERT// UPDATE/ DELETE). Якщо ви змінюєте дані протягом усього шоу (тобто таблиця постановок для щотижневого пакетного процесу), ви, ймовірно, хочете щодня оновлювати статистику / реорганізовувати індекси. Якщо ваші дані досить статичні, ви, ймовірно, можете складати це щотижневий або щотижневий графік.


7

Я бачив це лише один раз із поганим додатком, який мав погано індексовану купу і мав важкі ETL.
Це сміття і, на щастя, не моє.

Інакше причин немає.

Якщо ви отримуєте оновлення статистики у невідповідний час, це означає, що ви виконуєте неправильне обслуговування індексу / статистики або маєте масивні видалення / завантаження, які досягли порогу.

За допомогою SQL Server 2005+ ви можете будь-коли відкласти оновлення статистики.
Див. "Коли використовувати оновлення синхронної чи асинхронної статистики"

Було б цікаво подивитися, яку статтю вони дотримувались чи читали, щоб зробити цей вибір ...


Це може бути питання спадщини? Чи відрізнялося обслуговування статистики в 2 к?
JNK

@JNK: IIRC деякі зміни порогу зміни рядків, але мені доведеться його шукати ... ах так, тепер відстежуються за стовпцем не за таблицею msdn.microsoft.com/en-us/library/ms190283.aspx
gbn

Це 20% у 2008 році?
JNK


20% + 500 для> 500 на стовпчик з часу SQL Server 2005+
gbn

7

Єдиний раз, коли я вимикав автоматичну статистику, це коли я використовував кілька недокументованих команд, щоб створити кілька підроблених статистичних даних, які я не хотів, щоб система стиралася під час завантаження даних. Це був ДУЖЕ крайній випадок.


5

За старих часів (SQL Server 2000) встановлення статистики автоматичного оновлення може призвести до великих «пауз» у програмах OLTP, коли SQL вирішив зробити оновлення статистики.

Від SQL Server 2005 і далі існує асинхронна опція, яка не призведе до "паузи", коли статистика застаріла і згодом перекомпілюється. Статистика буде перекомпільована асинхронно наступного разу, коли буде потрібно.

Майте на увазі, що має бути баланс - для великих наборів даних, можливо, ви хочете, щоб поточний запит враховував найновішу статистику, оскільки запит може тривати експоненціально довше за неефективного плану запитів.

Ви також можете відстежувати кількість перекомпіляцій в секунду та інші важливі показники продуктивності, використовуючи лічильники perfmon , які публікуються SQL Server, як кажуть, докази є в пудингу.


4

Наскільки активні системи?

Якщо вони здебільшого читають системи, які ви можете отримати, не оновлюючи їх, якщо вони трапляються вручну під час зміни даних (вставлення, оновлення, видалення).

Однак для найкращої практики рекомендується дотримуватися справи, я думаю, що це буде рідкістю, щоб це було питанням ефективності. Я, мабуть, надішлю їм статті та дописи в блозі, в яких пропонується залишити його. У Кімберлі Тріпп є кілька хороших.


4

Хоча я ніколи ні в якому разі не суперечую чи навмисно не розважаю містера Денні (надто поважаю його знання та внесок у співтовариство), я помітив документацію щодо MS, яка рекомендує вимкнути статистику автоматичного оновлення.

У плануванні та конфігурації ємностей для зберігання та SQL Server (SharePoint Server 2010) MS рекомендує відключити його.

Я також читав ту саму рекомендацію MS для більш ранніх версій SP, але зараз не можу знайти посилання.

Але я НЕ DBA експерта з SP, тому ви, можливо, також захочете перевірити, що Чун Лю, MS Permier Field Engineer, повинен сказати про це в Чун Лю на SharePoint або просто проігнорувати цю публікацію та залишити її.


5
Ваша порада стосується баз даних SharePoint, вона, як правило, не застосовується до всіх установок SQL Server.
Саймон Рігхартс

0

Зазвичай ви вимикаєте їх лише у тому випадку, якщо у вас є спосіб їх оновлення самостійно. Я роблю це постійно, оскільки нам потрібен кращий або просто інший вибірки, ніж це робитиме автоматична статистика. Це досить поширене явище, але ви б просто не вимкнули його і не зробили нічого іншого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.