2008-11-10 19 views
7

Jetzt weiß ich, dass bigint 2^64 ist; das heißt, mehr Atome als im bekannten Universum. Ich sollte mir keine Sorgen machen, da mein bloßes menschliches Gehirn einfach nicht um die Ungeheuerlichkeit dieser Zahl herumkommen kann.Ist bigint groß genug für eine Ereignisprotokolltabelle?

Lassen Sie uns jedoch sagen, dass ich jede Änderung in jeder Kategorie, Produkt und Bestellung in meinem System vom Start bis zum Ende der Zeit aufzeichnen. Sollte ich über die Leistung von Tabellenschreibvorgängen besorgt sein, bevor ich mir Sorgen darüber mache, dass die Primärschlüsselwerte nicht mehr ausreichen? Sollte ich Ereignisse unterschiedlicher Prioritäten in verschiedenen Ereignistabellen aufzeichnen? Werden mir auf einer Festplatte die Atome ausgehen, bevor mir die Bigints ausgehen? Wie groß sollte ich eine Event-Log-Tabelle bekommen lassen, bevor ich mit dem Archivieren/Löschen beginne?

+2

Übrigens variieren Schätzungen für Atome im bekannten Universum zwischen 10^50 und 10^70, also ist 2^64 (um 10^20) sehr viel kleiner - sogar ein Mensch hat mehr (um 10^27) Atome;) – schnaader

Antwort

13

Selbst wenn jeder Ihrer Einträge nur 1 Byte hätte, würden 2^64 Einträge rund 18000000 TB auf Ihrer Festplatte belegen, also sollten Sie sich keine Sorgen machen.

0

Die Art und Weise, wie wir damit umgehen, besteht in der Bereitstellung einer Protokollarchivierungsfunktion, die die Protokolltabelle nach Jahren in separate Datenbanken aufteilt, sodass wir die Identität in unserer LogEvent-Tabelle zurücksetzen können.

Wir haben auch verschiedene Protokolltabellen, obwohl nur zwei Haupttabellen.

0

Es ist sehr unwahrscheinlich, dass Ihnen jemals Primärschlüsselwerte ausgehen. Möglicherweise müssen Sie jedoch berücksichtigen, wie Sie auf die Protokolltabelle zugreifen möchten, um Daten abzurufen. Verwenden Sie dies, um zu informieren, wann Sie die Daten archivieren oder bereinigen sollten. Wenn die Protokolldaten häufig gelesen werden, denken Sie darüber nach, Indizes hinzuzufügen, um die Leseleistung zu verbessern. Bedenken Sie jedoch, dass Indizes für jeden hinzugefügten Datensatz gepflegt werden müssen.

2

"Wie groß sollte ich eine Ereignisprotokolltabelle erhalten, bevor ich mit der Archivierung/Löschung beginne?"

Löschen Sie nie die Ereignisprotokolle - die Informationen haben einen signifikanten Wert.

Wenn jedoch ein Manager darauf besteht, dass ein Archiv erforderlich ist, können Sie die Speicherkosten im Vergleich zu den Kosten Ihrer Zeit angeben, um (a) darüber nachzudenken, (b) eine zweite und dritte Meinung zu erhalten und (c) schreibe eine Prozedur zum Archivieren von Protokollsätzen.

Die Lagerkosten sinken. Ihre Zeit ist besser auf etwas anderes als das Löschen von Protokolldatensätzen.

Fazit: Sie haben die Erlaubnis zu stoppen Hände wringen. Es ist alles gut. Du machst keinen grundlegenden Fehler.

5

Wenn Ihre Anwendung einmal pro Millionstel Sekunde einen Datensatz zu der Tabelle hinzugefügt hat, würde sie für mehr als fünfhunderttausend Jahre laufen, bevor ihr keine Schlüssel mehr zur Verfügung standen.

Verwandte Themen