Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Database in grado di gestire>500 milioni di righe

MSSQL può gestire bene così tante righe. Il tempo della query dipende completamente da molti più fattori rispetto al semplice conteggio delle righe.

Ad esempio, dipenderà da:

  1. quanti join fanno quelle query
  2. quanto bene sono impostati i tuoi indici
  3. quanta ram c'è nella macchina
  4. velocità e numero di processori
  5. tipo e velocità del mandrino dei dischi rigidi
  6. dimensione della riga/quantità di dati restituiti nella query
  7. Velocità/latenza dell'interfaccia di rete

È molto facile avere una tabella piccola (meno di 10.000 righe) che richiederebbe un paio di minuti per eseguire una query. Ad esempio, utilizzando molti join, funzioni nella clausola where e zero indici su un processore Atom con 512 MB di RAM totale.;)

Ci vuole un po' più di lavoro per assicurarsi che tutti gli indici e le relazioni di chiavi esterne siano corrette, che le query siano ottimizzate per eliminare le chiamate di funzioni inutili e restituire solo i dati effettivamente necessari. Inoltre, avrai bisogno di hardware veloce.

Tutto si riduce a quanti soldi vuoi spendere, alla qualità del team di sviluppo e alla dimensione delle righe di dati con cui hai a che fare.

AGGIORNAMENTO Aggiornamento dovuto a modifiche nella domanda.

La quantità di informazioni qui non è ancora sufficiente per dare una risposta nel mondo reale. Dovrai solo testarlo e modificare il design del database e l'hardware secondo necessità.

Ad esempio, potrei facilmente avere 1 miliardo di righe in una tabella su una macchina con quelle specifiche ed eseguire una query "select top(1) id from tableA (nolock)" e ottenere una risposta in millisecondi. Allo stesso modo, puoi eseguire una query "seleziona * da tablea" e ci vuole del tempo perché, sebbene la query venga eseguita rapidamente, il trasferimento di tutti quei dati attraverso il cavo richiede un po' di tempo.

Il punto è che devi testare. Ciò significa configurare il server, creare alcune delle tue tabelle e popolarle. Quindi devi eseguire l'ottimizzazione delle prestazioni per ottenere query e indici corretti. Come parte dell'ottimizzazione delle prestazioni, scoprirai non solo come le query devono essere ristrutturate, ma anche esattamente quali parti della macchina potrebbero dover essere sostituite (es:disco, più ram, cpu, ecc.) in base al blocco e tipi di attesa.

Ti consiglio vivamente di assumere (o contrarre) uno o due DBA per farlo per te.