Stiamo progettando una nuova versione del nostro prodotto esistente su un nuovo schema. È un'applicazione Web interna con possibilmente 100 utenti simultanei (max) Questa verrà eseguita su un database SQL Server 2008.Guida all'architettura di SQL Server
Uno degli argomenti di discussione è se dovremmo avere un singolo database di suddivisione del database per motivi di prestazioni su 2 database separati.
Il database potrebbe crescere ovunque da 50-100 GB su 5 anni.
Siamo sviluppatori e non DBA quindi sarebbe bello avere una guida generale.
[So che la risposta non è semplice, in quanto dipende lo schema, la politica, la quantità di dati di archiviazione, ecc]
Opzione 1 Main unico database [Questa è la mia opzione preferita].
Il piano consisterebbe nell'avere tutte le tabelle in un singolo database e possibilmente utilizzare i gruppi di file e il partizionamento per separare i dati se richiesto su più dischi. [Usa lo schema se appropriato]. Questo dovrebbe riguardare i problemi di prestazioni Uno dei commenti di questo era che un'istanza di un singolo server avrebbe ancora elaborato questi dati, quindi ci sarebbe ancora un collo di bottiglia di elaborazione.
Per la segnalazione potremmo avere un DB di report separato, ma questo è ancora in discussione.
Opzione 2 dividere il database in 2 database separati
DB1 - Clienti, Conti, risorse del cliente ecc
DB2 - Ciò contenere la maggior parte dei dati [vale a dire Dati di tracciamento del veicolo, tabelle di transazioni finanziarie ecc.].
Queste tabelle in genere contengono molti dati. [Potrebbe risiedere su un server separato, se necessario]
Questo piano comporterebbe il mantenimento dei dati principali in un database più piccolo [DB1] e il mantenimento dei dati di tipo di transazione [principalmente] di sola lettura in un DB [DB2] separato. L'interfaccia utente leggerà principalmente da DB1 e quindi sarà più reattivo. [Sono consapevole che questa opzione rende più difficile per l'integrità referenziale da eseguire.]
Punti per conto Dato che siamo in fase di progettazione possiamo almeno fare un uso corretto degli indici per affrontare i problemi di prestazioni di modo che è perché l'opzione 1 per me è attraente e il suo approccio più standard. Per entrambe le opzioni stiamo considerando l'implementazione di un database di archiviazione.
Scuse per la lunga domanda. In sintesi la domanda è 1 DB o 2?
Grazie in anticipo,
Liam
Grazie a tutti per le vostre risposte complete. È molto apprezzato Di conseguenza abbiamo alcuni fattori da considerare in particolare sull'hardware che verrà utilizzato, ecc. Il mio parere generale è di attenersi all'approccio standard di tutte le tabelle su un singolo DB. – Liam