Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Aiutaci a migliorare le statistiche di SQL Server!

Molto tempo fa, pubblicavo digest Connect, piccoli post che evidenziavano alcune segnalazioni di bug o suggerimenti su Connect che pensavo meritassero più attenzione. Ora, dirò questo:non sono davvero un grande fan di un sistema in cui la persona con il maggior numero di amici disposti a votare fa a modo suo, perché il team di SQL Server dovrebbe essere in grado di ignorare o differire il rumore e concentrarsi su i bug o i suggerimenti più importanti e di impatto. Ma non è così che fanno le cose a Redmond . Quindi, oggi, ho una richiesta:aiutami votando e commentando questi tre elementi Connect, che mirano tutti a migliorare il funzionamento delle statistiche di SQL Server.

(Tieni presente che i commenti hanno un peso molto maggiore rispetto al semplice conteggio dei voti, quindi indica il tuo caso aziendale, se ne hai uno condivisibile.)

Suggerimento MAXDOP per AGGIORNAMENTO STATISTICHE

SQL Server 2016 ha aggiunto un suggerimento MAXDOP per i comandi DBCC CHECK, quindi perché non per gli aggiornamenti delle statistiche? Sulle tabelle partizionate questo può avere un grande impatto sul resto del carico di lavoro. Dovremmo anche essere in grado di sovrascrivere il MAXDOP definito dal sistema per gli aggiornamenti automatici delle statistiche, ma per ora sarei felice di avere un maggiore controllo sulla gestione manuale delle statistiche. La richiesta viene acquisita nel seguente elemento Connect:

  • Connetti #628971 :aggiungi il parametro MAXDOP per aggiornare le statistiche

Consenti a Query Optimizer di visualizzare le statistiche a livello di partizione

Erin Stellato ha scritto sul blog sui vantaggi delle statistiche incrementali qui, ma ha davvero colpito nel segno sui suoi problemi in questo post:le statistiche incrementali NON vengono utilizzate da Query Optimizer. Per favore leggilo e poi vota e commenta l'elemento che ho appena creato (non posso credere di non aver mai notato che non esisteva già un DCR per questo):

  • Connetti #2010834:l'ottimizzatore dovrebbe effettivamente *utilizzare* statistiche per partizione

Le statistiche automatiche dovrebbero considerare il numero di righe in un indice/stat filtrato

Attualmente, fare affidamento sugli aggiornamenti automatici degli indici e delle statistiche filtrati è come Aspettare Godot:l'algoritmo utilizza il numero di righe nella tabella per determinare la soglia di abbandono, non il numero di righe nell'indice. Ciò significa che la maggior parte degli indici filtrati e, in effetti, i più utili indici filtrati:non verranno mai aggiornati automaticamente. (Ne parlo qui e Kimberly Tripp ne parla qui e qui. Sono sicuro che anche altri ne hanno scritto sul blog.) Penso che sia ora che le cose cambino:se sei d'accordo, vota e commenta l'articolo di Joe Sack (il titolo indica le statistiche filtrate, ma si riferisce in realtà ad entrambe):

  • Connect #509638 :suggerimento di modifiche agli aggiornamenti delle statistiche filtrate