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:
Scelta del tipo di dischi da utilizzare, ad esempio un sistema RAID (Redundant Array of Independent Disks). Per ulteriori informazioni, vedere Informazioni sulle soluzioni basate su hardware.
Scelta della modalità di archiviazione dei dati nei dischi. Per ulteriori informazioni, vedere Utilizzo di file e filegroup.
Scelta della struttura di indicizzazione per l'ottimizzazione dell'accesso ai dati da parte delle query. Per ulteriori informazioni, vedere Progettazione di indici.
Scelta delle impostazioni appropriate per tutti i parametri di configurazione allo scopo di ottimizzare le prestazioni del database. Per ulteriori informazioni, vedere Ottimizzazione delle prestazioni del server.
Vedere anche