Prestazioni: migliorare problemi di lentezza di un database

Mettere a punto le performance di un database non èaffatto semplice, ma in questo tutorial vedremo quali sono ipunti principali per farlo.

 

In teoria, i controlli relativi alle performance andrebberoeffettuati da un DBA, ma con grandissima probabilità,questo non avrà mai il tempo a disposizione perdedicarsi attentamente ad ogni cambiamento apportato da unastored procedure.

Di seguito riportiamo una lista di 15 aspetti di cui tutti iwebmaster dovrebbero tener conto per migliorare leprestazioni dei loro databases.

  1. Creare una chiave primaria per ciascuna tabella che viene creata
  2. Creare una chiave primaria per ciascuna colonna che contenga una foreign key. Se si sa che questa sarà unica, meglio chekkare l' opzione che forza un unico indice.
  3. Non indicizzare nient' altro
  4. Utilizzare il dbo.sysdatabases piuttosto che il sysdatabases
  5. Impostare nocount on all' inizio di ciascuna stored procedure, mentre impostare in fondo a ciascuna il nocount off
  6. Non proteggere troppo il database, mi spiego: a meno che non si stia gestendo il database di una banca (esempio), si può usare il settaggio NOLOCK, ma ancora meglio sarebbe usare SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED all' inizio di ciascuna procedura, per poi reimpostare READ COMMITTED alla fine di essa
  7. Mantenere solamente le tabelle, le colonne e le righe che si utilizzano
  8. Usare le transactions solo quando servono, limitando a 0 la possibilità dell' utente di interagirvi durante la sua esecuzione; per questo motivo sarebbe utile inserire tutte le transactions in una stored procedure
  9. Evitare le tabelle temporanee il più possibile, ma nel caso non se ne possa fare a meno, la si crei esplicitamente, tramite il comando Create Table #temp
  10. Evitare il NOT IN, sebbene sia spesso efficace
  11. Nel caso si perseveri nell' utilizzo di dql dinamico (eseguendo cioè stringe concatenate tra loro), usare paramtri nominali ed usare l' sp_executesql anzichè EXEC
  12. Prendere l'a bitudine di marchiare sempre con dei commenti le modifiche apportate, così che, nel caso sorgano problemi in seguito alle modifiche, si possa subito trovare il punto modificato ed analizzarlo
  13. Cercare quanto possibile di ridurre le connessioni al database
  14. Evitare troppi indici e congiungerli tra di loro
  15. Quando si ha terminato la stesura del codice, impostare il profiler per monitorare le richieste provenienti solo dalla propria postazione, per poi analizzare le richieste globali inviate e ricevute dal server. nel caso si scorga qualcosa di strano, riferirlo immediatamente al DBA, così che possa controllare in maniera mirata