Maximale Anzahl von Zeilen in einer MS Access-Datenbank-engine-Tabelle?
Wissen wir, die MS Access-Datenbank-engine ist "gedrosselt", um eine maximale Datei Größe von 2 GB (oder vielleicht intern so verdrahtet werden, begrenzt auf weniger als einige macht der 2 von 4 Kb Daten-Seiten). Aber was bedeutet das in der Praxis?
Mir zu helfen, Messen Sie dies, können Sie mir sagen, die maximale Anzahl der Zeilen, die eingefügt werden können in eine MS Access-Datenbank-engine-Tabelle?
Erfüllen die definition einer Tabelle müssen alle Zeilen eindeutig sein, also eine unique-Einschränkung (z.B. PRIMARY KEY
UNIQUE
CHECK
-, Daten-Makro, usw.) ist eine Voraussetzung.
EDIT: ich merke es gibt eine theoretische Grenze, aber was mich interessiert ist die praktische (und nicht unbedingt praktikabel), real life limit.
InformationsquelleAutor der Frage onedaywhen | 2009-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Kommentare:
Jet/ACE-Dateien organisiert sind, in Daten-Seiten, was bedeutet, es gibt eine bestimmte Menge von slack space, wenn Ihr Datensatz Grenzen sind nicht abgestimmt mit Ihren Daten Seiten.
Row-level locking, wird erheblich reduziert die Anzahl der möglichen Datensätze, da zwingt es einen Datensatz pro Seite Daten.
In Jet 4, die Daten die Größe der Seite wurde erhöht, um 4KBs (aus 2KBs in Jet-3.x). Als Jet 4 war der erste Jet-version, die Unicode unterstützen, das heißt, Sie konnten Speicher 1 GB double-byte-Daten (D. H., 1,000,000,000 double-byte-Zeichen), und mit Unicode-Kompression eingeschaltet, 2GBs der Daten. Also, die Anzahl der Datensätze wird dadurch beeinflusst, ob oder nicht Sie haben, die Unicode-Kompression auf.
Da wir nicht wissen, wie viel Platz in einem Jet/ACE-Datei durch Header und andere Metadaten, noch genau, wie viel Platz index storage nimmt, die der theoretischen Berechnung werden immer wieder unter, was praktisch ist.
Um den möglichst effizienten Speicherung, würden Sie wollen, um code verwenden, um erstellen Sie Ihre Datenbank anstatt der Access-Benutzeroberfläche, da der Zugang schafft bestimmte Eigenschaften, pure Jet nicht braucht. Dies ist nicht zu sagen, es gibt eine Menge von diesen, wie Eigenschaften festgelegt werden, um den Zugriff auf Voreinstellungen sind in der Regel gar nicht gesetzt (die Eigenschaft wird nur erstellt, wenn Sie den Standardnamen ändern, Wert-dies kann gesehen werden, durch das Radfahren durch ein Feld properties-Auflistung, D. H., viele der aufgeführten Eigenschaften für ein Feld in der Access-Tabelle-designer gibt es nicht in der properties-Auflistung, da Sie nicht festgelegt wurde), vielleicht möchten Sie aber beschränken Sie sich auf Jet-spezifische Daten-Typen (hyperlink-Felder sind in Access-nur zum Beispiel).
Ich gerade verschwendet eine Stunde mucking um mit diesem mit Rnd() zu füllen 4 Felder definiert als Typ byte, mit composite-PK auf die vier Felder, und es dauerte ewig Anhängen genügend Datensätze, um bis zu einen nennenswerten Teil der 2GBs. Bei über 2 Millionen Datensätze, die Datei war unter 80MBs. Ich gab schließlich nach erreichen nur
700K7 MILLIONEN Datensätze und die Datei komprimiert zu 184MBs. Die Zeit, die es dauern würde, um in der Nähe 2GBs ist einfach nur mehr als ich bereit bin zu investieren!InformationsquelleAutor der Antwort David-W-Fenton
Hier ist mein Versuch:
Erstellte ich ein single-Spalte (
INTEGER
) Tabelle ohne Schlüssel:Eingefügt Ganzzahlen in der Reihenfolge, beginnend mit 1.
Hielt ich es (willkürlich nach vielen Stunden), wenn es eingefügt hatte 65,632,875 Zeilen.
Die Größe der Datei war 1,029,772 KB.
Ich komprimiert die Datei, wodurch es sehr leicht zu 1,029,704 KB.
Ich habe eine PK:
die erhöht die Größe der Datei zu 1,467,708 KB.
Dieser schlägt vor, das maximum liegt irgendwo um die 80-Millionen-Marke.
InformationsquelleAutor der Antwort onedaywhen
Wie andere gesagt haben, es ist die Kombination aus Ihrem schema und die Anzahl der Indizes.
Hatte ein Freund über 100,000,000 historische Aktienkurse, täglich schließende Anführungszeichen, in einer MDB die an die 2 Gb-Grenze.
Er zog Sie unten mit einigen code, der sich in einem Microsoft Knowledge base-Artikel. Ich war ziemlich überrascht, dass, was auch immer server, dass er die nicht ihm abgeschnitten, nachdem die ersten 100K Datensätze.
Er könnte anzeigen jedem Datensatz in unter einer Sekunde.
InformationsquelleAutor der Antwort Tony Toews
Es ist schon einige Jahre her, seit ich zuletzt gearbeitet haben Zugriff, sondern größere Datenbank-Dateien immer mehr Probleme und werden anfälliger für Korruption als kleinere Dateien.
Es sei denn, die Datenbank-Datei wird nur zugegriffen, die von einer person oder gespeichert auf einem robusten Netzwerk, das Sie können finden, dies ist ein problem, vor dem 2 GB database size limit erreicht ist.
InformationsquelleAutor der Antwort Richard Lucas
Wir sind nicht unbedingt reden theoretischen Grenzen hier, wir reden hier über die Reale Welt Grenzen der 2GB max Datei Größe UND Datenbank-schema.
mehrere?
Das schema ist auch auf Augenhöhe mit der Zeilenanzahl bestimmt, wie viele Zeilen, die Sie haben können.
Haben wir Zugriff auf MDB-Dateien zu speichern, die Exporte von MS-SQL-Daten für die statistische Analyse von einigen unserer Anwender im Unternehmen. In diesen Fällen haben wir exportierten unsere Kern die Struktur einer Tabelle, in der Regel vier Tische mit 20 bis 150 Spalten variierend von ein hundert bytes pro Zeile nach oben von 8000 bytes pro Zeile. In diesen Fällen würden wir bump up gegen ein paar hundert tausend Zeilen von Daten waren zulässig, PRO MDB, dass wir zu versenden.
So, ich glaube einfach nicht, dass diese Frage eine Antwort in der Abwesenheit von Ihrem schema.
InformationsquelleAutor der Antwort David Walker
Kommt es an. Theoretisch mit einer einzigen Spalte mit 4 byte-Datentyp ist. Sie speichern könnte 300 000 Zeilen. Aber es gibt wahrscheinlich eine Menge von overhead in der Datenbank, noch bevor Sie etwas tun. Ich Las einige, wo Sie konnten, haben 1.000.000 Zeilen, aber wieder, es hängt alles..
Können Sie auch link-Datenbanken zusammen. Selbst die Beschränkung auf nur Speicherplatz.
InformationsquelleAutor der Antwort Tommy
Praktische = 'in der Praxis' - also das beste, du gehst zu bekommen, ist anekdotisch. Alles andere ist nur eine prototyping-und Test-Ergebnisse.
Ich Stimme mit anderen - die Bestimmung 'eine max Menge der Datensätze, die' ist völlig abhängig von schema - # Tabellen, # Felder, # Indizes.
Anderen Anekdote für Euch: ich habe vor kurzem Treffer 1,6 GB Dateigröße mit 2 primären datenspeicher (Tabellen), 36 und 85 Felder, die jeweils mit einigen Teilmenge Kopien in 3 zusätzlichen Tabellen.
Who cares, wenn Daten eindeutig ist oder nicht - nur dann wesentlich, wenn der Kontext sagt, es ist. Daten sind Daten, es sei denn, die Vervielfältigung, beeinflusst das handling durch den indexer.
Die gesamte Zeile zählt machen, dass 1,6 GB ist 1.72 M.
InformationsquelleAutor der Antwort Eric
Beim arbeiten mit 4 großen Db2-Tabellen habe ich nicht nur die Grenze, aber es ließ mich wirklich schlecht Aussehen, um einen Chef, der dachte, ich könnte anfügen, alle vier Tabellen (mit jeweils über 900.000 Zeilen) auf einem großen Tisch. das wirkliche Leben Folge war, dass unabhängig davon, wie viele Male ich habe versucht, die Tabelle (die hatte genau 34 Spalten - 30 text und 3 integer) würde ausspucken einige kryptische Meldung "Datenbank kann Nicht geöffnet werden unbekanntes format oder die Datei ist möglicherweise beschädigt". Unterm Strich Weniger über 1.500.000 Datensätze und nur ein bisschen mehr als 1,252,000 mit 34 Zeilen.
InformationsquelleAutor der Antwort Craig K