2009-03-04 20 views
7

So che in SQL Server il numero massimo di "oggetti" in un database è poco più di 2 miliardi. Gli oggetti contengono tabelle, viste, stored procedure, indici, tra le altre cose. Non sono affatto preoccupato di andare oltre i 2 miliardi di oggetti. Tuttavia, ciò che vorrei sapere è che SQL Server subisce un calo di prestazioni dovuto all'elevato numero di tabelle. Ogni tabella che aggiungi ha un impatto sulle prestazioni, oppure non c'è praticamente alcuna differenza (presupponendo una quantità costante di dati). Qualcuno ha esperienza con i database con migliaia di tabelle? Mi sto anche chiedendo lo stesso su MySQL.Numero massimo di tabelle lavorabili in SQL Server e MySQL

risposta

8

Nessuna differenza, presupponendo una quantità costante di dati.

Probabilmente un guadagno in termini pratici a causa di cose come le finestre di manutenzione ridotti (indice più piccolo ricostruisce), la capacità di sola lettura gruppi di file, ecc

delle prestazioni è determinato dalla query e gli indici (al livello più elementare): non numero di oggetti

1

Dubito che SQL Server avrà un problema di prestazioni che funziona con migliaia di tabelle, ma di sicuro lo farei.

Ho lavorato su database con centinaia di tabelle in SQL Server senza problemi, però.

+0

Ho dovuto leggere la prima frase un paio di volte. Capisco da dove vieni, ma fondamentalmente sarebbero un sacco di tavoli tutti con la stessa struttura, e non qualcosa che sarebbe gestito individualmente. – Kibbee

+1

Se le tabelle vengono generate a livello di codice, anche tu come sviluppatore puoi gestirle a livello di programmazione. Nessun problema di prestazioni (almeno non a livello di vocazione) – Davos

0

Il server SQl può subire un aumento di prestazioni più elevato utilizzando tabelle con molte, molte colonne anziché scomporre una tabella correlata (anche una con una relazione da uno a uno). Inoltre, una tabella ampia probabilmente può avere problemi quando i dati che si desidera immettere superano il numero di byte che è possibile memorizzare per una colonna. È possibile creare una tabella che abbia il potenziale per archiviare, ad esempio, 10000 byte ma sarà comunque possibile memorizzare solo 8060 byte.

+0

Questa è un'informazione utile, ma non risponde affatto alla domanda che viene posta. – Kibbee

+0

BUt fa come la ragione per cui chiedi se troppe tabelle creeranno un problema di prestazioni è che stai considerando di consolidarle piuttosto che crearne tante che di fatto creano un problema di prestazioni molto più grande e la persona dovrebbe esserne consapevole. – HLGEM

4

In termini di numero massimo di tabelle ho avuto un database con 2 milioni di tabelle. Nessun colpo a livello di prestazioni. i miei tavoli dove sono piccoli circa 15 MB ciascuno.

+0

Questo è stato utile grazie. Sono un googler :) – BOSS

0

Nella mia esperienza non penso che il numero di tavoli colpirà la performance. Ma dovresti essere in grado di giustificare il motivo per cui hai così tante tabelle nel database. Questo perché avere così tante tabelle sul lato del database influenzerà anche il lavoro dello sviluppatore sul lato server.

IMO se si suddividono le tabelle in base alla funzionalità, non è possibile semplificare la vita dello sviluppatore, ma è anche possibile ottenere un aumento delle prestazioni dell'applicazione poiché sono state corrette le tabelle da cui si suppone di ottenere i dati richiesti.

Dire come se fosse necessario memorizzare le vendite, acquistare, ricevuta e dettagli di pagamento. Tutti loro hanno la stessa struttura di tabella, invece di memorizzarli in una singola tabella è possibile memorizzarli tutti separatamente in tabelle separate. con questi è possibile ottenere tutti i dettagli per le vendite in un'unica tabella, per l'acquisto nella sua unica tabella e allo stesso modo. quindi può aiutare a migliorare i tempi di risposta del livello di database dell'applicazione che è uno dei componenti più lenti in tutti i livelli Web ... !!! naturalmente, imponiamo le prestazioni del database tramite i quesiti SQL, ma una tale strutturazione può anche aiutare indirettamente a migliorare le prestazioni del database.

Problemi correlati