I sistemi di gestione del database implementano il proprio journaling attraverso i registri del database, quindi l'installazione di tale DBMS su un file system journaled degrada le prestazioni attraverso due meccanismi:
Il journaling ridondante aumenta la quantità di attività del disco
Il layout del disco fisico può essere frammentato (sebbene alcuni file system di journaling abbiano meccanismi per ripulirlo).
Molte attività su disco possono riempire il giornale, causando condizioni "disco pieno" spurie.
Ho visto un'istanza alcuni anni fa in cui questo è stato fatto sul file system LFS su un'installazione Baan su una scatola HP / UX. Il sistema presentava persistenti problemi di prestazioni e corruzione dei dati che non venivano diagnosticati fino a quando qualcuno non ha scoperto che i file system erano formattati con LFS.
I volumi che contengono file di database avranno normalmente un numero limitato di file di grandi dimensioni. I server DBMS avranno normalmente un'impostazione che configura quanti blocchi vengono letti in un singolo I / O. Numeri più piccoli sarebbero appropriati per i sistemi di elaborazione delle transazioni ad alto volume in quanto ridurrebbero al minimo la memorizzazione nella cache dei dati ridondanti. Un numero maggiore sarebbe appropriato per sistemi come data warehouse che eseguivano molte letture sequetial. Se possibile, ottimizzare le dimensioni del blocco di allocazione del file system in modo che abbiano le stesse dimensioni della lettura a più blocchi su cui è impostato il DBMS.
Alcuni sistemi di gestione del database possono funzionare su partizioni del disco non elaborate. Ciò offre vari gradi di miglioramento delle prestazioni, in genere meno su un sistema moderno con molta memoria. Sui sistemi più vecchi con meno spazio per memorizzare nella cache i metadati del file system, i risparmi sull'I / O del disco erano piuttosto significativi. Le partizioni non elaborate rendono il sistema più difficile da gestire, ma offrono le migliori prestazioni disponibili.
I volumi RAID-5 comportano un sovraccarico di scrittura maggiore rispetto ai volumi RAID-10, quindi un database occupato con un sacco di traffico di scrittura funzionerà meglio (spesso molto meglio) su un RAID-10. I registri devono essere inseriti in volumi di dischi fisicamente separati nei dati. Se il database è di grandi dimensioni e per lo più di sola lettura (ad esempio un data warehouse), potrebbe esserci un caso per inserirlo in volumi RAID-5 se ciò non rallenta indebitamente il processo di caricamento.
La memorizzazione nella cache del write-back su un controller può darti una performance vincente a spese della creazione di alcune modalità di errore (ragionevolmente improbabili ma possibili) in cui i dati potrebbero essere danneggiati. La più grande vittoria in termini di prestazioni è rappresentata da carichi di accesso altamente casuali. Se si desidera eseguire questa operazione, prendere in considerazione l'inserimento dei registri su un controller separato e la disabilitazione della memorizzazione nella cache di riscrittura sui volumi dei registri. I log avranno quindi una migliore integrità dei dati e un singolo errore non è in grado di rimuovere sia i volumi di log che di dati. Ciò consente di ripristinare da un backup e di eseguire il roll forward dai registri.