Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi max. Anzahl Felder erreicht - was nun? (https://www.delphipraxis.net/131909-max-anzahl-felder-erreicht-nun.html)

Cogito 2. Apr 2009 10:52

Datenbank: Access • Version: 2000 • Zugriff über: ADO

max. Anzahl Felder erreicht - was nun?
 
Hallo zusammen,

ich habe nun die max. Anzahl an Feldern (255) erreicht, benötige aber eigentlich noch mehr. Hatte hier schon mal jemand das gleiche Problem? Was könnte man tun?

Bernhard Geyer 2. Apr 2009 10:55

Re: max. Anzahl Felder erreicht - was nun?
 
1, Aufteilen in meherer Tabellen welche die gleichen Primärschlüssel haben.
2, Checken ob ein Wechsel auf eine neuere Access-Version dieses Limit immer noch hat
3, Wechsel auf eine vernünftige DB :mrgreen:

shmia 2. Apr 2009 11:03

Re: max. Anzahl Felder erreicht - was nun?
 
4, dein Datenbankdesign ist höchstwahrscheinlich fehlerhaft (nicht vollständig normalisiert)
Ich kenne keine Anwendung für Datenbanken, die das Limit von 255 Feldern wirklich überschreiten würde.

hoika 2. Apr 2009 12:26

Re: max. Anzahl Felder erreicht - was nun?
 
Hallo,

Access 2007

Punkt 2 kannst du also streichen.
Sinnvoll ist ein geändertes DB-Design (Normalisierung).

Eine Frage, wie viele Felder sind im Durchschnitt pro Record belegt ?

Da fällt mir ein:
Unter Paradox hatte ich das Problem damals auch mal.
Lösung war damals 1. (zusätzliche Tabelle).


Was steht denn in der Tabelle drin ?



PS:
Unter Firebird kann man 65535 Felder anlegen.
Trotzdem ist ein select * auf so eine Tabelle
auch in Firebird performancemässig lahm,
wenn viele Felder eh NULL sind.


Heiko

Cogito 2. Apr 2009 12:43

Re: max. Anzahl Felder erreicht - was nun?
 
Zitat:

Zitat von Bernhard Geyer
1, Aufteilen in meherer Tabellen welche die gleichen Primärschlüssel haben.
2, Checken ob ein Wechsel auf eine neuere Access-Version dieses Limit immer noch hat
3, Wechsel auf eine vernünftige DB :mrgreen:

Hätte denn ein MS SQL Server nicht diese Felderbegrenzung? Wie ist die denn da?

hoika 2. Apr 2009 12:50

Re: max. Anzahl Felder erreicht - was nun?
 
Hallo,

dann googlen wir mal

SQL 2000
Columns per base table 1,024

SQL 2005
Columns per base table 1,024

SQL 2008
Columns per nonwide table 1,024
Columns per wide table 30,000

Was auch immer eine "wide table" ist.


Heiko

Bernhard Geyer 2. Apr 2009 12:54

Re: max. Anzahl Felder erreicht - was nun?
 
Zitat:

Zitat von Cogito
Hätte denn ein MS SQL Server nicht diese Felderbegrenzung? Wie ist die denn da?

+ 8060 Byte (!) Grenze pro Datensatz. z.B. 2 * nvarchar zu 100 Zeichen gefüllt ergeben 404 Byte von dieser 8060er Grenze schon verbraucht.

Jedes DMBS hat so seine Grenzen.

Phoenix 2. Apr 2009 12:55

Re: max. Anzahl Felder erreicht - was nun?
 
Zitat:

Zitat von Cogito
Hätte denn ein MS SQL Server nicht diese Felderbegrenzung? Wie ist die denn da?

Das ist die falsche Frage.

Ich habe schon ungeheuer komplexe Anwendungen mit Datenbanken hinten dran gesehen. Im allerschlimmsten Fall hatte da eine Tabelle 40 spalten. Und das sind schon zu viele gewesen. Im Normalfall kommt man mit maximal 20 Spalten gut aus.

Das heisst: Die Datenstrukturen in Deinem konkreten Fall sind aller Wahrscheinlichkeit nach suboptimal.

Wenn Du die Struktur Deiner Daten in Ordnung bringst, dann tut a) auch Dein Access weiterhin und b) dürfte die ganze Angelegenheit mit an Sicherheit grenzender Wahrscheinlichkeit um längen schneller sein. Und in aller Regel ist das dann zusätzlich auch noch einfacher zu erweitern.

Was speicherst Du denn da drin, dann können wir Dir vielleicht ein paar Tipps geben, wie Du Deine Daten besser organisieren kannst.

hoika 2. Apr 2009 12:59

Re: max. Anzahl Felder erreicht - was nun?
 
Hallo Bernhard,

Ich habe nicht pro Datensatz, sondern pro row gelesen.
Ein Record kann sich auch über mehrere Rows hinziehen.
Ist aber begrenzt (siehe Link)

Row Overflow


So genau weiss ich es aber nicht.
Mal den SQL-Express rauskramen und prüfen ...
Aber, ne, ich hab ja Firebird ;)

Aber noch mal zum Fragesteller,
was ist das für eine Tabelle, warum soviele Felder.

Ich rate mal:
Tabelle Personal
Telefon1, Telefon2, Telefon3, Telefon4 ...


Heiko

Tyrael Y. 2. Apr 2009 13:00

Re: max. Anzahl Felder erreicht - was nun?
 
Wie hier schon einige gesagt haben, solltest du die Datenbank "normalisieren"
Schau mal bei Google unter dem Stichwort "3. Normalform"

Ich arbeite oft mit Datenbanken und die Tabelle, die bisher sehr viele Felder hatte,
hatte 12 Felder und das war schon richtig viel.

Mach dir die Welt einfacher in Zukunft und berücksichtige den Vorschlag der "Normalisierung" in Zukunft.
Das wäre die einzig vernünftige Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz