Ich versuche herauszufinden, wie groß eine bestimmte Datenbank wäre (sie wurde noch nicht erstellt). Ich weiß, wie viele Zeilen und was die Tabellen sein werden. Gibt es eine Funktion in Oracle, die mir die Größe einer solchen theoretischen Datenbank angibt? Gibt es eine bekannte mathematische Formel, die ich verwenden kann? Ich weiß, dass es ein Feature gibt, um die Größe einer existierenden Datenbank zu bestimmen, aber ich möchte wissen, wie groß es sein wird, bevor ich es erstelle.Wie groß wäre eine solche Datenbank?
Antwort
können Sie aus der Größe der Datentypen für die Spalten in einer Tabelle. Sie können dann eine grobe Schätzung der Größe einer Zeile in dieser Tabelle erhalten. dann für 1 bis n Tabellen, dann für 1 Zeile in 1 Tabelle für x Zeilen in x Tabellen = Schätzung der Datenbank für eine gegebene Zeilengröße.
Langhändig weiß ich, aber so mache ich das normalerweise.
Sie könnten versuchen, Ihr Design zu prototypieren - erstellen Sie eine erste Version der Datenbank und schreiben Sie einige Skripte (oder verwenden Sie ein Werkzeug), um die Tabellen mit einer angemessenen Menge an Daten zu füllen. Dann werden Sie sicher wissen, wie viel Platz X Zeilen einnehmen. Wenn es zu viel ist, können Sie mit Ihrem Design zurück zum Zeichenbrett gehen. Ich weiß, dass Sie eine Zahl haben wollen, bevor Sie die Datenbank erstellen, aber Sie werden nie in der Lage sein, alles zu erklären, was mit den physischen Datendateien unter der Haube passiert.
Um genau zu sein, kann dies sehr komplex werden. Zum Beispiel ist dies, wie Sie es auf MS SQL Server zu tun:
http://msdn.microsoft.com/en-us/library/aa933068(SQL.80).aspx
eine exakte Größe war nicht allzu wichtig zu haben, so ging ich mit littlegeek Methode. Ich habe herausgefunden, was meine Tabellen und Spalten wären, und looked up the sizes of the data types, dann habe ich ein paar gute Multiplikationen gemacht.
Sie müssen auch Indizes in Ihre Schätzungen aufnehmen. Ich habe Systeme gesehen, in denen die Indizes so groß wie die Daten waren. Die einzige Art, auf die ich der Antwort vertrauen würde, ist das Prototyping, wie Eric Z Beard es vorschlägt. Verschiedene Datenbanksysteme haben einen unterschiedlichen Overhead, aber sie haben es alle.