sql >> Databáze >  >> RDS >> Sqlserver

Pomozte prosím zlepšit statistiky SQL Serveru!

Kdysi dávno jsem publikoval přehledy Connect – malé příspěvky, které zdůrazňovaly několik hlášení o chybách nebo návrhy na Connectu, o kterých jsem si myslel, že si zaslouží více pozornosti. Nyní řeknu toto:Nejsem opravdu velkým fanouškem systému, kde si člověk s nejvíce přáteli ochotnými hlasovat přijde na své, protože tým SQL Server by měl být schopen ignorovat nebo odložit hluk a soustředit se na nejdůležitější a nejpůsobivější chyby nebo návrhy. Ale takhle to v Redmondu nedělají . Takže dnes mám prosbu:pomozte mi hlasováním a komentářem k těmto třem položkám Connect, z nichž všechny mají za cíl zlepšit fungování statistik SQL Server.

(Upozorňujeme, že komentáře mají mnohem větší váhu než pouhé počty hlasů, proto prosím uveďte svůj obchodní případ, máte-li takový, který lze sdílet.)

Nápověda MAXDOP pro AKTUALIZACI STATISTIKY

SQL Server 2016 přidal nápovědu MAXDOP pro příkazy DBCC CHECK, tak proč ne pro aktualizace statistik? U dělených tabulek to může mít velký dopad na zbytek pracovní zátěže. Měli bychom být také schopni přepsat systémem definovaný MAXDOP pro automatické aktualizace statistik, ale prozatím bych byl spokojen s větší kontrolou nad manuální správou statistik. Požadavek je zachycen v následující položce Connect:

  • Connect #628971 :Přidejte parametr MAXDOP k aktualizaci statistik

Umožněte optimalizátoru dotazů vidět statistiky na úrovni oddílu

Erin Stellato zde napsala blog o výhodách přírůstkových statistik, ale v tomto příspěvku opravdu trefila hřebík na hlavičku o jeho problémech:Přírůstkové statistiky NEPOUŽÍVÁ nástroj Query Optimizer. Prosím, přečtěte si to a pak hlasujte a komentujte položku, kterou jsem právě vytvořil (Nemůžu uvěřit, že jsem si nikdy nevšiml, že pro to DCR ještě neexistoval):

  • Connect #2010834 :Optimalizátor by měl ve skutečnosti *použít* statistiky pro jednotlivé oddíly

Automatické statistiky by měly zohledňovat počet řádků ve filtrovaném indexu/statistikách

V současné době je spoléhání na automatické aktualizace filtrovaných indexů a statistik podobné jako čekání na Godota – algoritmus používá při určování prahu odchodu počet řádků v tabulce, nikoli počet řádků v indexu. To znamená, že většina filtrovaných indexů – a skutečně nejužitečnější filtrované indexy – nebudou nikdy automaticky aktualizovány. (Hovořím o tom zde a Kimberly Tripp o tom mluví zde a zde. Jsem si jistý, že o tom napsali i ostatní.) Myslím, že je čas, aby se to změnilo – pokud souhlasíte, prosím hlasujte a komentujte položku Joea Sacka (název označuje filtrované statistiky, ale ve skutečnosti se týká obou):

  • Connect #509638 :Navrhování změny filtrovaných aktualizací statistik

  1. Sekvence provádění klauzule Seskupit podle, Mít a Kde v SQL Server?

  2. MySQL - ignorovat chybu vložení:duplicitní záznam

  3. Konverze časového pásma v dotazu SQL

  4. Hibernate, Postgresql:Sloupec x je typu oid, ale výraz je typu byte