Le performance di SQL Server sono fondamentali per la stabilità delle applicazioni e la conservazione degli utenti. I database possono rappresentare un collo di bottiglia in qualsiasi applicazione, pertanto per un ambiente di produzione sono necessari analytics in tempo reale e monitoraggio delle performance. Grazie al monitoraggio e all'ottimizzazione continua, le applicazioni rimangono competitive in termini di performance e il database SQL Server sarà eseguito in modo più efficiente.
Come funzionano le performance di SQL Server
Le performance di SQL Server misurano la velocità con cui un database riceve, elabora e restituisce i dati da una query. SQL Server a performance elevate possono restituire set di dati di grandi dimensioni in pochi millisecondi. È fondamentale che gli amministratori di database monitorino le performance per garantire che l'applicazione front-end non subisca colli di bottiglia a causa di hardware, configurazioni o capacità di storage del server scadenti.
In pratica, le performance di SQL Server dipendono dall'hardware. L'hardware gioca un ruolo importante nelle performance, ma anche le configurazioni o lo sviluppo di query inadeguate possono influire sulla velocità del server. Il monitoraggio delle performance hardware consente di mantenere un database in esecuzione alle massime performance. Gli amministratori devono inoltre esaminare le query per assicurarsi che siano ottimizzate per le massime performance.
Fattori chiave che influiscono sulle performance di SQL Server
Le configurazioni dei database sono spesso il problema principale delle scarse performance di SQL Server. In particolare, l'indicizzazione è spesso mal configurata e causa una riduzione delle performance. Gli indici delle tabelle ordinano i dati in modo da velocizzare la ricerca e la restituzione dei dati da parte del motore di database in base alla query. I database di piccole dimensioni potrebbero non sentire gli effetti di una scarsa indicizzazione, ma i database con terabyte di dati e milioni di record in un unico set di dati vedranno problemi di performance.
Anche l'hardware, compresi i dispositivi di storage, è un fattore chiave. Lo storage deve essere abbastanza veloce da recuperare i dati di input e output e la CPU deve essere abbastanza veloce da elaborare le richieste di dati. La memorizzazione nella cache e l'esecuzione dei programmi vengono eseguite in memoria, pertanto i server devono disporre di memoria sufficiente per supportare il database. Gli amministratori possono anche monitorare questi fattori per aggiornare l'hardware quando diventa obsoleto.
Scegliere l'infrastruttura giusta per le performance di SQL Server
Le massime performance possono provenire dall'infrastruttura on-premise o cloud. Gli ambienti ibridi sono comuni anche ai database aziendali. Ad esempio, è possibile archiviare archivi e backup caldi nel cloud, mentre un database on-premise con infrastruttura high-end supporta le query di produzione. Un altro esempio è un ambiente di business in cui le query pubbliche vengono elaborate nel cloud e le query interne vengono elaborate on-premise.
I requisiti di storage sono spesso alle stelle per le aziende in crescita. È essenziale che allochino spazio di storage sufficiente e crescita futura per supportare le applicazioni. Le organizzazioni possono sfruttare FlashArray™, che supporta applicazioni dipendenti da performance e latenza come i database. Pure Cloud Block Store™ è l'alternativa cloud all'infrastruttura on-premise. Le aziende che effettuano il porting da VMware hanno la possibilità di integrare Portworx®.
Problemi di performance comuni
Il primo problema comune di performance di SQL Server è costituito da risorse server insufficienti. Se un server è lento, gli amministratori devono prima controllare l'utilizzo delle risorse. Verificare la presenza di picchi nell'utilizzo della CPU, nella saturazione dell'utilizzo della RAM o in caso di errori di I/O del disco. Sia il cloud che i sistemi operativi locali dispongono di strumenti di utilizzo per identificare l'utilizzo delle risorse.
L'indicizzazione è un altro problema comune. Tutte le tabelle devono avere chiavi e indici primari nelle colonne delle tabelle comunemente utilizzate nelle clausole di query WHERE. L'indice corretto in una colonna di tabella di uso comune può ridurre i tempi di query da minuti a millisecondi.
Tecniche per ottimizzare le performance di SQL Server
Ogni query inviata a un database SQL Server di produzione deve essere esaminata per verificarne l'ottimizzazione e le performance. SQL Server ha i propri strumenti per identificare le query lente, ma le query devono restituire solo le colonne necessarie per la funzionalità front-end, utilizzare correttamente gli estratti JOIN e indicizzare le colonne della tabella comunemente utilizzate negli estratti JOIN e WHERE. Le query CURSOR devono essere utilizzate con parsimonia e solo quando necessario. Evita le query dinamiche e utilizza le procedure memorizzate scritte in SQL anziché le stringhe.
Gli amministratori devono monitorare le performance di SQL Server utilizzando gli strumenti SQL Server di Microsoft o i loro strumenti preferiti. L'hardware deve essere monitorato per garantire che il server disponga di memoria e CPU sufficienti per elaborare le query e lo spazio di storage deve essere adeguato per ulteriori dati a supporto di un'azienda in crescita. I cloud provider hanno i propri strumenti per aiutare gli amministratori a monitorare l'infrastruttura.
Strumenti di infrastruttura e monitoraggio delle performance
Microsoft fornisce SQL Server con diversi strumenti di monitoraggio. In SQL Server Management Studio, gli amministratori possono vedere una dashboard delle performance. Database Engine Tuning Advisor aiuta gli amministratori a ottimizzare le procedure memorizzate. System Monitor può essere utilizzato su un server locale o remoto per monitorare l'utilizzo e l'attività dell'hardware.
I cloud provider di terze parti hanno i propri strumenti di monitoraggio. Ad esempio, Pure Storage dispone di propri strumenti di monitoraggio e supporto per SQL Server. Gli strumenti cloud che decidi di utilizzare dipendono dai servizi con cui lavori. Gli strumenti cloud inviano avvisi agli amministratori quando le risorse dell'infrastruttura sono insufficienti, ma gli amministratori possono scegliere di utilizzare gli strumenti di monitoraggio di Microsoft SQL Server per l'ottimizzazione. La strategia migliore è quella di provare gli strumenti per trovare la soluzione più adatta alle tue esigenze aziendali.
Conclusione
Per mantenere le applicazioni al massimo delle performance, il monitoraggio del database per rilevare eventuali colli di bottiglia garantisce che gli amministratori possano adottare misure proattive per l'ottimizzazione. Non solo è necessario monitorare le tabelle e le query del database, ma è necessario monitorare anche l'hardware per evitare i crash del sistema dovuti a un guasto dell'infrastruttura. Sebbene Microsoft fornisca strumenti per il monitoraggio di SQL Server, Pure Storage aiuta anche gli amministratori a tenere il passo con il proprio stack tecnologico.