Più di un anno dopo voglio far conoscere a tutti la mia esperienza e il risultato finale di questa domanda / argomento.
Ho iniziato a creare cose da solo. Inizialmente ho seguito l'articolo Raccogli e archivia i dati storici del contatore delle prestazioni di SQL Server con i CMV di Tim Ford per ottenere qualcosa e estenderlo con qualsiasi dato volessi raccogliere. Quindi una volta al giorno eseguo diverse procedure memorizzate su ciascun server SQL che raccolgono alcune informazioni specifiche dai DMV e memorizzano i risultati sul server locale all'interno di un database. Ciò include l'utilizzo dell'indice, gli indici mancanti, voci di registro specifiche come la crescita automatica, le impostazioni del server, le impostazioni del database dell'applicazione, la frammentazione, l'esecuzione del lavoro, le informazioni del registro delle transazioni, le informazioni sui file, le statistiche di attesa e altro ancora.
Inoltre ho aggiunto i risultati dell'esecuzione regolare di sp_blitz di Brent Ozar a questo repository per raccogliere ulteriori preziose indicazioni per lavorare, migliorare e riferire.
Tutti i dati vengono successivamente raccolti da lì in un server SQL di monitoraggio dedicato e in questo modo creo un archivio in bundle per informazioni rilevanti sulle prestazioni di tutti i miei server e lo utilizzo come base per le indagini e i report.
Quindi ho creato fogli Excel e anche rapporti usando servizi di reportistica per analizzare e interpretare. Alcuni esempi:
Inoltre ho configurato il monitoraggio di alcuni contatori delle prestazioni usando TYPEPERF ispirato all'articolo " Raccolta dei dati sulle prestazioni in una tabella di SQL Server " di Fedor Georgiev.
Dalla mia istanza di monitoraggio SQL, innesco typeperf per eseguire e raccogliere un numero configurabile di campioni con un intervallo di campionamento configurabile e memorizzare i risultati nel mio db di monitoraggio centrale.
Questo mi permette di osservare i valori delle prestazioni a lungo termine, esempio:
Dopo un po 'di utilizzo di questo per raccogliere informazioni di base, è stato messo a punto il fatto che è necessario dedicare parecchi lavori di manutenzione alla ricerca di lavori non riusciti, alle procedure di rimozione dei buggin (ad esempio nel caso in cui un DB fosse portato offline, alcuni script non riusciti), mantenendo le impostazioni dopo la sostituzione di un server ...
Anche il database che raccoglie tutti i record richiede manutenzione e ottimizzazione delle prestazioni, quindi è necessario un lavoro aggiuntivo per mantenere utili i dati ...
Ciò che alla fine manca completamente è la capacità di guardare le cose che accadono dal vivo. Nel migliore dei casi, sarò in grado di dire cosa potrebbe accadere il giorno successivo dopo l'esecuzione dei raccoglitori di dati. Inoltre mancano tutti i dettagli. Non ho accesso ai grafici di deadlock, non riesco a guardare i piani di query di query che erano in esecuzione in un periodo di tempo sospetto ....
Tutto ciò mi ha fatto andare in carica il management per spendere soldi per una soluzione prefessional che non sono in grado di creare da solo.
La scelta finale è stata quella di acquistare SentryOne perché, rispetto ad altri, è convincente e fornisce molte informazioni necessarie per identificare i nostri punti deboli.
Come conclusione finale, consiglierei a tutti coloro che cercano risposte a domande simili di non provare a creare cose da sole finché non si dispone di un ambiente piccolo e sostanzialmente sano. Se hai un paio di sistemi e molti problemi, meglio cercare subito una soluzione professionale e utilizzare l'assistenza del fornitore sui tuoi problemi invece di spendere molto tempo e denaro per creare qualcosa di meno utile. Tuttavia, questo percorso era ancora molto interessante e mi ha fatto imparare molto che non voglio perdere.
Spero che ti sia utile una volta che ti sei imbattuto in questo thread di domande.
EDIT 20 aprile 2017:
Brent Ozar ha recentemente pubblicato il seguente articolo su Facebook che è una specie di approccio simile adottato dal team SQL Tiger: https://blogs.msdn.microsoft.com/sql_server_team/sql-server-performance-baselining -reports-sfoga-per-enterprise di monitoraggio /