Prestazioni del database

Durante la progettazione di un database, è necessario verificare che il database esegua tutte le funzioni importanti in modo rapido e corretto. Alcuni problemi relativi alle prestazioni possono essere risolti quando il database è già utilizzato nel processo produttivo, mentre altri possono derivare da una progettazione di database inadeguata e possono essere risolti soltanto modificando la struttura del database.

Durante la progettazione e l'implementazione di un database, è consigliabile identificare le tabelle di grandi dimensioni del database e i processi più complessi che verranno eseguiti dal database, nonché considerare con particolare attenzione le prestazioni durante la progettazione di queste tabelle. Considerare inoltre l'effetto sulle prestazioni derivante dall'aumento del numero di utenti che accedono al database.

Vengono indicati di seguito alcuni esempi di modifiche di progettazione che consentono di ottimizzare le prestazioni:

  • Se è necessario riepilogare una tabella che include centinaia di migliaia di righe per creare un report giornaliero, è possibile aggiungere alla tabella una o più colonne contenenti i dati aggregati in precedenza da utilizzare soltanto per il report.

  • È possibile normalizzare i database, ovvero definire il database con più tabelle di dimensioni ridotte correlate tra loro. Durante l'elaborazione dei dati di queste tabelle, il database deve eseguire numerose operazioni aggiuntive per combinare i dati correlati. Questa elaborazione supplementare può ridurre le prestazioni del database. In queste situazioni, una leggera denormalizzazione del database che porti a semplificare processi complessi consente di ottimizzare le prestazioni.

Considerazioni sui componenti hardware

In genere, i requisiti hardware variano a seconda delle dimensioni del database. Esistono, tuttavia, altri fattori determinanti, ad esempio il numero di utenti e sessioni simultanei, la velocità effettiva delle transazioni e i tipi di operazioni eseguite all'interno del database. Ad esempio, il database di una biblioteca scolastica che include dati aggiornati di rado richiede in genere componenti hardware meno potenti rispetto a un data warehouse di 1 TB contenente informazioni analizzate di frequente relative a vendite, prodotti e clienti di un'azienda di grandi dimensioni. Oltre ai requisiti di archiviazione su disco, per il data warehouse dovranno essere disponibili una maggiore quantità di memoria e processori più veloci in modo da consentire la memorizzazione nella cache di una quantità maggiore di dati e una più rapida elaborazione delle query che fanno riferimento a una grande quantità di dati.

Il sottosistema di I/O, o motore di archiviazione, è un componente fondamentale dei database relazionali e deve essere pianificato con estrema attenzione. Per la corretta implementazione di un database è in genere necessaria una pianificazione accurata nelle fasi iniziali del progetto. Nella pianificazione è necessario prendere in considerazione gli aspetti seguenti: