Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Моля, помогнете за подобряване на статистиката на SQL Server!

Преди много време публикувах дайджестове на Connect – малки публикации, които подчертаваха няколко доклада за грешки или предложения за Connect, които смятах, че заслужават повече внимание. Сега ще кажа следното:всъщност не съм голям фен на система, при която човекът с най-много приятели, желаещи да гласуват, получава своето, защото екипът на SQL Server трябва да може да игнорира или отлага шума и да се фокусира върху най-важните и въздействащи грешки или предложения. Но така не правят нещата в Редмънд . И така, днес имам молба:помогнете ми, като гласувате и коментирате тези три елемента на Connect, всички от които целят да подобрят работата на статистиката на SQL Server.

(Обърнете внимание, че коментарите имат много по-голяма тежест от броя на обикновените гласове, така че, моля, посочете вашия бизнес казус, ако имате такъв, който може да се споделя.)

MAXDOP намек за АКТУАЛИЗИРАНЕ НА СТАТИСТИКАТА

SQL Server 2016 добави MAXDOP намек за командите DBCC CHECK, така че защо не и за актуализации на статистиката? При разделени таблици това може да има голямо влияние върху останалата част от работното натоварване. Би трябвало също така да можем да заменим дефинирания от системата MAXDOP за автоматични актуализации на статистиката, но засега бих се радвал на повече контрол върху ръчното управление на статистиката. Заявката се записва в следния елемент за свързване:

  • Свързване #628971 :Добавете параметър MAXDOP към актуализиране на статистиката

Нека оптимизаторът на заявки вижда статистика на ниво дял

Ерин Стелато е писала в блог за ползите от инкременталните статистики тук, но наистина се е ударила за проблемите си в тази публикация:Инкременталните статистики НЕ се използват от оптимизатора на заявки. Моля, прочетете това и след това гласувайте и коментирайте елемента, който току-що създадох (не мога да повярвам, че никога не съм забелязал, че DCR вече не съществува за това):

  • Свързване #2010834 :Оптимизаторът действително трябва да *използва* статистика на дял

Автоматичните статистики трябва да отчитат броя на редовете във филтриран индекс/статистика

Понастоящем разчитането на автоматични актуализации на филтрирани индекси и статистически данни е като Waiting for Godot – алгоритъмът използва броя на редовете в таблицата, когато определя прага на отлив, а не броя на редовете в индекса. Това означава, че повечето филтрирани индекси – и наистина най-полезните филтрирани индекси – никога няма да се актуализират автоматично. (Говоря за това тук, а Кимбърли Трип говори за това тук и тук. Сигурен съм, че и други са писали в блогове за това.) Мисля, че е време това да се промени – ако сте съгласни, моля, гласувайте и коментирайте статията на Джо Сак (заглавието показва филтрирана статистика, но наистина се отнася и за двете):

  • Свързване #509638 :Предлагане на промяна на филтрирани актуализации на статистиката

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Генериране на SQL Създаване на скриптове за съществуващи таблици с Query

  2. Какъв е най-добрият начин за показване на изображение от база данни на sql сървър в asp.net?

  3. SQL Server PIVOT може би?

  4. Естествено (човешко алфа-цифрово) сортиране в Microsoft SQL 2005

  5. Как да разделя разделен низ в SQL Server, без да създавам функция?