maximale Anzahl Datensätze bei DBF/NTX?
Moderator: Moderatoren
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
maximale Anzahl Datensätze bei DBF/NTX?
Hallo,
wo liegt die Beschränkung bei DBF/NTX
Habe hier bei einem Kunden eine Datei mit Memofeldern.
Aktuell 1.678.595 Datensätze
Belegter Platz
DBF: 372 MB (381.646 KB)
DBT: 2.0 GB (2.097.154 KB)
Denke ich stoße mit der DBT an eine Grenze.....
Gruß Stefan
wo liegt die Beschränkung bei DBF/NTX
Habe hier bei einem Kunden eine Datei mit Memofeldern.
Aktuell 1.678.595 Datensätze
Belegter Platz
DBF: 372 MB (381.646 KB)
DBT: 2.0 GB (2.097.154 KB)
Denke ich stoße mit der DBT an eine Grenze.....
Gruß Stefan
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: maximale Anzahl Datensätze bei DBF/NTX?
Hallo Stefan,
lt. Doku der 2.0 gibt es folgende Angaben bei der DBFDBE:
Größe dbf: max. 1 GB
Feldzahl: Not limited
Anzahl Sätze: (Offset for record locks - Header() - 1) / RecSize()
Größe Memo-Datei: Limited only by system resources
Bei der FOXDBE sieht das anders aus:
Größe dbf: max. 2 GB
Feldzahl: 2038 (bis 1.90 nur 255 Felder)
Anzahl Sätze: (2^31 - Header() - 1) / RecSize()
Größe Memo-Datei: Theoretical limit is 16 Terabyte or 2^31 blocks. Default block size of 64 bytes leads to a maximum memo file size of 128GB
Wobei ich im ADS inzwsichen eine DBF als FOXCDX habe, die größer als 2 GB ist. Nach diversen Aussagen kann die da bis zu 4 GB groß sein, oder bis 16 TB. Aber der ADS verwaltet die Dateien ja auch anders.
Jan
lt. Doku der 2.0 gibt es folgende Angaben bei der DBFDBE:
Größe dbf: max. 1 GB
Feldzahl: Not limited
Anzahl Sätze: (Offset for record locks - Header() - 1) / RecSize()
Größe Memo-Datei: Limited only by system resources
Bei der FOXDBE sieht das anders aus:
Größe dbf: max. 2 GB
Feldzahl: 2038 (bis 1.90 nur 255 Felder)
Anzahl Sätze: (2^31 - Header() - 1) / RecSize()
Größe Memo-Datei: Theoretical limit is 16 Terabyte or 2^31 blocks. Default block size of 64 bytes leads to a maximum memo file size of 128GB
Wobei ich im ADS inzwsichen eine DBF als FOXCDX habe, die größer als 2 GB ist. Nach diversen Aussagen kann die da bis zu 4 GB groß sein, oder bis 16 TB. Aber der ADS verwaltet die Dateien ja auch anders.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: maximale Anzahl Datensätze bei DBF/NTX?
Auch eine DBF kann etwas über 2 GB groß werden, man muss dann nur den LOCK-Offset erhöhen:
Früher war die auf 2 GB begrenzt, angeblich wurde das seit 1.90.355 aufgehoben.
Die Größe der DBT hängt von der Version ab und vom Dateisystem !Hilfe zu 1.90 SL1 hat geschrieben: DBFDBE_LOCKOFFSET
Mit dieser Konstante läßt sich der Offset für Satzsperren abfragen oder ändern. Der Offset bestimmt die maximale Größe der DBF-Tabelle. Der voreingestellte Wert für den Offset für Satzsperren ist 1.000.000.000 oder ca. 1GB. Dies entspricht der maximalen Größe einer Clipper-kompatiblen DBF-Tabelle.
Mit Hilfe der Konstante DBFDBE_LOCKOFFSET kann die maximale Größe einer DBF-Dateien vergrößert werden. Um den Maximalwert von derzeit ca. 2,4GB einzustellen, muß ein Wert von 0x80000000 für DBFDBE_LOCKOFFSET gewählt werden. Wird die Einstellung DBFDBE_LOCKOFFSET auf einen Wert größer als den von Clipper unterstützten Maximalwert geändert, können die DBF-Dateien nicht mehr im konkurrierenden Betrieb mit Clipper verwendet werden. Da sich die verwendeten Offset für Satzsperren unterscheiden, ist ein wechselseitiger Ausschluß in diesem Fall nicht mehr gewährleistet.
Früher war die auf 2 GB begrenzt, angeblich wurde das seit 1.90.355 aufgehoben.
DBFDBE (DATA-Komponente)
...
Spezifikation für DBF-Dateien
...
Element Spezifikation
...
Größe einer Memo-Datei: Limitiert auf Systemresourcen
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21224
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: maximale Anzahl Datensätze bei DBF/NTX?
also bei der DBT kann ich aus Erfahrung sagen, über 2 GB knallt es. 1.90 SL1
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: maximale Anzahl Datensätze bei DBF/NTX?
auf welchem Dateisystem denn ?
Ich persönlich meide DBTs seit da mal unter Clipper was schief ging, aber mit NTFS sollten größere kein Problem sein, solange die 10 Stellen für Zeiger ausreichen
Ich könnte es ja mal probieren ...
Ich persönlich meide DBTs seit da mal unter Clipper was schief ging, aber mit NTFS sollten größere kein Problem sein, solange die 10 Stellen für Zeiger ausreichen
Ich könnte es ja mal probieren ...
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: maximale Anzahl Datensätze bei DBF/NTX?
Ich muss Manfred zustimmen, bei meinem Versuch mit der aktuellen 2.00 und der DBFDBE gibt es einen Laufzeitfehler wenn die 2 GB Grenze erreicht wird (trotz exclusivem Zugriff)
Gruß
Hubert
Hubert
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: maximale Anzahl Datensätze bei DBF/NTX?
Mein Problem ist folgendes...
die DBT hat exakt 2.0GB, also Maximum denke ich.
ich versuche nun die Datei in eine neue zu kopieren ---> irgendwann Lesefehler
Die Sätze einzeln in eine neue Datenbank kopieren ---> bricht irgendwann ab Lesefehler
Gibt es eine Möglichkeit die Datei noch irgendwie zu lesen?
Gruß Stefan
die DBT hat exakt 2.0GB, also Maximum denke ich.
ich versuche nun die Datei in eine neue zu kopieren ---> irgendwann Lesefehler
Die Sätze einzeln in eine neue Datenbank kopieren ---> bricht irgendwann ab Lesefehler
Gibt es eine Möglichkeit die Datei noch irgendwie zu lesen?
Gruß Stefan
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: maximale Anzahl Datensätze bei DBF/NTX?
Hallo Stefan !
- hat deine DBF 1.000.000 Datensätze, dann in einer der Dateien mit DELETE NEXT 500.000 die erste Häfte löschen und dann mit PACK packen, gegebenenfalls auch mit PACK MEMO probieren.
- in der zweiten Datei dann mit GOTO 500.000 und DELETE REST die zweiten Hälfte löschen und dann mit PACK packen, gegebenenfalls auch mit PACK MEMO probieren.
Jetzt hast du zwei Tabellen mit deinen Daten ...
- Mehrfache Sicherung anlegenMein Problem ist folgendes...
die DBT hat exakt 2.0GB, also Maximum denke ich.
- hat deine DBF 1.000.000 Datensätze, dann in einer der Dateien mit DELETE NEXT 500.000 die erste Häfte löschen und dann mit PACK packen, gegebenenfalls auch mit PACK MEMO probieren.
- in der zweiten Datei dann mit GOTO 500.000 und DELETE REST die zweiten Hälfte löschen und dann mit PACK packen, gegebenenfalls auch mit PACK MEMO probieren.
Jetzt hast du zwei Tabellen mit deinen Daten ...
Zuletzt geändert von HaPe am Mi, 11. Jan 2017 16:09, insgesamt 1-mal geändert.
--
Hans-Peter
Hans-Peter
- nightcrawler
- 1000 working lines a day
- Beiträge: 655
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: maximale Anzahl Datensätze bei DBF/NTX?
Versuchs mal im Advantage Data Architect. Dann kannst Du auch Teile per SQL in eine andere Tabelle verschieben.mini990 hat geschrieben:Gibt es eine Möglichkeit die Datei noch irgendwie zu lesen?
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: maximale Anzahl Datensätze bei DBF/NTX?
Hallo Stefan !
In VFP kann man damit explizit die Memo-Datei packen (vermutlich) durch löschen nicht mehr vorhanderer Einträge im MEMO-Feld.
Wie es aussieht unterstützt das die Xbase-Engine (gar) nicht weil diese Option ignoriert oder automatisch mit einem PACK der Tabelle ausgeführt wird.
Ich bin erst mit Xbase 2.0 zur Gemeinde hinzugestoßen und hatte kurz in der Hilfe geschaut (ist dort aufgelistet)PACK MEMO ?
In VFP kann man damit explizit die Memo-Datei packen (vermutlich) durch löschen nicht mehr vorhanderer Einträge im MEMO-Feld.
Wie es aussieht unterstützt das die Xbase-Engine (gar) nicht weil diese Option ignoriert oder automatisch mit einem PACK der Tabelle ausgeführt wird.
--
Hans-Peter
Hans-Peter
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: maximale Anzahl Datensätze bei DBF/NTX?
ich würde mal behaupten das deine DBT "Kaputt" ist ...mini990 hat geschrieben:Mein Problem ist folgendes...
die DBT hat exakt 2.0GB, also Maximum denke ich.
ich versuche nun die Datei in eine neue zu kopieren ---> irgendwann Lesefehler
Die Sätze einzeln in eine neue Datenbank kopieren ---> bricht irgendwann ab Lesefehler
Gibt es eine Möglichkeit die Datei noch irgendwie zu lesen?
Frage : was/wie viel ist den in der neue DBF ?
versuche es mal so
Code: Alles auswählen
// Dummy Code um eine DBT zu retten
LOCAL nRec := 1
LOCAL aLeer := {}
...
SELECT 1
USE AAA EXCLUSIVE // ohne Index
SELECT 2
USE BBB1 EXCLUSIVE // leer
SELECT 1
DO WHILE !EOF()
aLeer() // leeres Array anlegen
BEGIN SEQUENCE
GOTO (nRec)
Scatter() // in ein Array übertragen
RECOVER
END SEQUENCE
SELECT 2
APPEND BLANK
Gather() // aus dem Array
nRec++
IF nRec > 500000
// splitten und neue BBBx verwenden
EXIT
ENDIF
SELECT 1
ENDDO
SELECT 2
CLOSE BBB1
USE BBB2 EXCLUSIVE // leer
SELECT 1
DO WHILE !EOF()
aLeer() // leeres Array anlegen
BEGIN SEQUENCE
GOTO (nRec)
Scatter() // in ein Array übertragen
RECOVER
END SEQUENCE
SELECT 2
APPEND BLANK
Gather() // aus dem Array
nRec++
SELECT 1
ENDDO
gruss by OHR
Jimmy
Jimmy