È davvero una cosa situazionale che vuoi guardare per tabella o per indice, e devi davvero scoprire cosa c'è in produzione prima di intraprendere qualsiasi azione. In caso di dubbi, utilizzare anche ciò che è in produzione negli altri ambienti, anche se ciò significa utilizzare un sacco di impostazioni pazze. Non puoi avere una buona idea di come si comporterà la produzione se le cose sono diverse nei test o negli sviluppatori.
Ad ogni modo, la raccomandazione generale di lasciare le statistiche di aggiornamento automatico attivate ( STATISTICS_NORECOMPUTE = OFF
che è l'impostazione predefinita) è per motivi di sicurezza, perché se questa opzione è disattivata e nulla aggiorna manualmente le statistiche, il risultato potrebbe essere piani di esecuzione davvero orrendi che non cambiano mai dopo che sono stati creati per la prima volta (e non vengono invalidati per altri motivi in seguito).
Hai detto che le statistiche di aggiornamento automatico sono disattivate per la maggior parte degli indici (penso di averlo letto male inizialmente come tutti , non la maggior parte ). Per gli indici con le statistiche di aggiornamento automatico ancora abilitate, questa impostazione ha senso data l'attività su quelle tabelle? Mi aspetto che si tratti di tabelle con attività più elevate. È possibile che sia stato necessario molto lavoro per capirlo, e potrebbe valere la pena mantenere (o considerare fortemente) tali impostazioni. Per lo meno, prendi nota di quali statistiche sono, perché tali informazioni potrebbero tornare utili lungo la strada.
Pensandoci di più, dirò che l'attuale strategia ha un senso. È meglio che lasciare le statistiche di aggiornamento automatico attive per tutto? Sembra che qualcuno la pensasse così, al punto che valeva la pena fare un semplice compromesso per avere un lavoro SQL Agent associato.
Se l'idea era di avere a disposizione nuove statistiche senza bloccare le query (come questa ), potresti prendere in considerazione la possibilità di riattivare l'aggiornamento automatico per tutto e quindi attivare AUTO_UPDATE_STATISTICS_ASYNC
anche. Quindi probabilmente modifica la pianificazione del lavoro in modo che venga eseguita una volta alla settimana anziché ogni giorno, poiché desideri comunque aggiornare WITH FULLSCAN
periodicamente le statistiche .
Potrei semplicemente lasciarlo, però, poiché probabilmente hai pesci più grandi da friggere se gli indici stessi sono diversi tra gli ambienti e le ricostruzioni delle statistiche non sono troppo dolorose. Quello che c'è ora ha senso; devi solo rendere le cose coerenti in tutti gli ambienti. Probabilmente è leggermente migliore delle impostazioni più semplici che ho suggerito, a scapito di più lavoro. Ma scopri cosa c'è in produzione, tende ad usarlo e passa a cose più importanti; riesaminalo quando sei sul punto di aver bisogno di ottimizzare le prestazioni: le migliori statistiche al mondo non salveranno una query in cui manca un indice critico.