2016-04-23 8 views
1

Ich spare in Echtzeit auf einer zweiten Basis die Preise von N verschiedenen Aktien in eine Microsoft SQL Server 2012-Datenbank, wo alle Daten für einen bestimmten Tag in eine bestimmte Datentabelle gehen für diesen Tag.SQL Server: Beschränkung von 1000 Spalten pro Tabelle

Da ich so schnell wie möglich die Daten in Echtzeit abrufen möchte, ist die Tabellenstruktur so einfach wie möglich: mit den Zeilennamen, die den Zeitstempel und die Spaltennamen markieren die eindeutigen Namen der Bestände . Diese Einrichtung ist einfach, aber nützlich, da es wichtig ist, gleichzeitig eine synchrone Momentaufnahme der Daten zu erhalten, wenn die Daten analysiert werden.

Die Probleme treten auf, wenn die Anzahl der Bestände N 1000 überschreitet, da SQL Server es mir nicht erlaubt, Tabellen mit mehr als 1000 Spalten zu erstellen. Meine Frage ist, wie ich am besten eine Datenbank im Falle von N> 1000 so gestalten sollte, dass der Datenabruf die Geschwindigkeit so wenig wie möglich kompromittiert und auch so wenig Datenbanklogik wie möglich zum Benutzer verschiebt (wie explizit beibehalten) verfolgen, welcher Bestand zu welcher Tabelle im Falle einer Multi-Table-Lösung gehört). Alle Kommentare würden

+0

Gute question.i empfehlen Posting auf dba, se mit Beispiel Tabelle Struktur für weitere Hilfe und welche Probleme können Sie mit Beispiel-Szenarien erhalten Sie haben gedacht – TheGameiswar

+0

danke! Hat unter Tags nach "dba" gesucht, die Sie vorgeschlagen haben. Konnte nichts finden. Kannst du helfen? – user3072048

+0

Fragen Sie hier: http: //dba.stackexchange.com/ – TheGameiswar

Antwort

2

Ihre Datenbank-Design fehlerhaft ist, sollten Sie Ihren Tisch wie dieser Entwurf willkommen

:

RecordID 
StockID 
DateTime 
Value 

und haben eine Zeile pro aufgezeichnet Wert je Aktie und collate danach.

+1

Vielen Dank für Ihren Kommentar! Allerdings erwarte ich in diesem Fall etwa 20 Millionen Zeilen (anstelle von 20 000 Zeilen), und ich frage mich, ob dies den Datenabruf einer ausgewählten Gruppe von Aktien ernsthaft verlangsamen würde. Wäre es nicht? – user3072048

+0

Ehrlich gesagt, ich glaube nicht, solange Sie einen Datenbankserver mit geeigneter Hardware und Konfiguration betreiben. Sobald Sie diese Daten haben, werden Sie zweifellos Vergleiche und Berichte daraus erstellen wollen, die Sie viel einfacher und schneller finden, die Informationen so zu speichern. – Ashigore

+0

danke; Das sind gute Nachrichten, ich werde es versuchen! – user3072048

Verwandte Themen