/ / Strategia di progettazione di tabelle SQL per grandi quantità di dati sulla posizione con molti inserti - sql, sql-server, sql-server-2008, progettazione di database, sql-server-2012

Strategia di progettazione di tabelle SQL per grandi quantità di dati sulla posizione con molti inserti: sql, sql-server, sql-server-2008, progettazione di database, sql-server-2012

Sto progettando un ASP.Applicazione web NET MVC che verrà utilizzata per trovare dove si trovano le persone e mappare dove provengono da diverse app. Il sistema ha la possibilità di avere una grande quantità di dati sulla posizione per ogni utente, circa 3 mesi prima per ciascun utente. Sto cercando ora di decidere come progettare un database MS SQL 2008/2012 per questo.

Ingenuamente, ci sarebbe una tabella di aggiornamenti di posizione con le seguenti colonne:

Id (int)

UserId (int)

Latitudine (doppia)

Longitudine (doppia)

Velocità (int)

DateSent (datetime)

Dalla mia lettura, sembra dividere il tavoloè il modo migliore per farlo. Se ciò è vero, io "sono un po 'confuso su come diventi automatico dire di dividere i dati in partizioni come" oggi "," questa settimana "," la scorsa settimana "," il mese precedente ", ecc. Fino in fondo avere un grande archivio di tutto ciò che è appena usato per il backup.

Se posso fornire ulteriori requisiti tecnici che potrebbero essere utili, è necessario escogitare una strategia fammi sapere. Apprezzo le opinioni di alcuni esperti di database disponibili.

risposte:

0 per risposta № 1

nota: non so se lo sai, ma le partizioni delle tabelle sono una funzionalità aziendale che è costosa. dovresti assicurarti che la quantità di dati giustifichi l'aggiornamento.

a) si vorrebbe partizionare la tabella in base aun raggruppamento logico per l'interrogazione. "Oggi" "questa settimana", "la scorsa settimana", "il mese precedente" non ha senso se le tue query non sono di quelle granularità, molto probabilmente verrebbero a tenere traccia delle abitudini e dei cambiamenti nelle abitudini. mese, 3 mesi fa, quindi alla fine del 4 ° mese, avresti disattivato la partizione con dati di 3 mesi (che ora sono dati di 4 mesi)

b) le partizioni delle tabelle trattano fondamentalmente ilpartizioni come parte di un intero. una volta che hai impostato la funzione e lo schema della partizione, non dovrai preoccuparti di spostarlo e così, ad esempio se lo hai diviso mese per mese mantenendo 3 mesi di dati, avresti impostato 5 filegroup, 1 per il prossimo mese, 3 per il " attuali "mesi, 1 per il" vecchio "mese.

c) Ti consiglio caldamente di non mantenere una cronologiagrande archivio di "tutto" a meno che non ne abbiate bisogno. supponendo che queste 3 app stiano inviando dati gps ogni 10 minuti? questo è di 144 inserti per persona al giorno o 4320 al mese. o 51840 all'anno. Ho detto che era per persona vero?

Penso che tu debba tornare indietro e pensare alrequisiti per un po 'prima: per quante persone stai progettando questo. quali sono i dati che stai cercando di uscire dalla memorizzazione di questi dati ... quindi progettare il database di conseguenza, POI vedere se il tuo design e requisiti giustificano l'edizione aziendale.