Announcement

Collapse
No announcement yet.

Maximal 256 Änderungen in Datenbank-Struktur ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Maximal 256 Änderungen in Datenbank-Struktur ?

    Hallo<p>,
    existiert diese Grenze immer noch ? (ib 6.0.1.6).<br>
    Ibexpert zeigt mir an x changes left.
    Sind das Änderungen pro Transaktion oder pro Änderung selber
    <br>
    Wie kann ich diese Zahl auslesen ?
    <br>
    Heiko

  • #2
    Hallo Heiko,<br><br>
    ja, diese Grenze existiert noch immer, allerdings mit IB 6.5/7.x und FB 1.x stößt man an diese Grenze immer seltener, weil z.B. ein ALTER TRIGGER diesen Counter (der pro Tabelle existiert) nicht mehr erhöht, d.h. hier wurde einiges optimiert.<br><br>
    Die Zahl kannst Du für eine Tabelle über das Feld <b>RDB$FORMAT</b> in der Systemtabelle <b>RDB$RELATIONS</b> auslesen.<br><br>
    Thomas
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Frage von einem Newbie: Was bedeutet diese Grenze genau? Kann ich keine 256 tabellen anlegen (das wären ja 256 Änderungen) ? Was passiert, wenn man die angegebene grenze erreicht? Sollte man vorher einfach eine zweite Datenbank aufsetzen ?
      Mit besten Grüßen
      L.P.Erasmu

      Comment


      • #4
        Hallo Lutz-Peter,<br><br>
        keine Sorge, Du kannst mehr als 256 Tabellen anlegen. Diese Grenze sagt nur, dass Du für <b>eine</b> Tabelle soviele Metadatenänderungen durchführen kannst, bis ein Backup/Restore notwendig ist. Unter Metadatenänderung wird hier z.B. ein ALTER TABLE ... verstanden. In älteren InterBase-Versionen wurde dieser Zähler aber z.B. auch bei einem ALTER TRIGGER hinaufgezählt. D.h. gerade bei Datenbanken in der Entwicklung konnte man vielleicht diese Grenze schon mal erreichen. Erreicht man diese Grenze, dann wird aber nichts beschädigt, sondern man muß ein Backup/Restore machen (da wird dann der Zähler <b>pro</b> Tabelle zurückgesetzt), und dann läuft wieder alles wie gewohnt.<br><br>
        In neueren InterBase Versionen (ich glaub seit 6.5) und Firebird wurde das dahingehend optimiert, dass ein ALTER TRIGGER ... nicht mehr den Zähler erhöht, d.h. da zählen nun wirklich nur mehr "echte" ALTER TABLE ... Anweisungen.<br><br>
        Schöne Grüße,<br>
        Thoma
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment


        • #5
          Danke ! Da bin ich wirklich erleichtert. Nach der Lektüre von diversen Büchern über Interbase hatte ich eigentlich gedacht, dass es bei Interbase keine Pferdefüsse mehr geben dürfte, die ich nicht kenne, aber diese Einschränkung ist für mich irrelevant.
          L.P.Erasmu

          Comment


          • #6
            noch ein klein wenig Hintergrundwissen dazu:
            wenn eine Tabelle ein neues Feld bekommt, werden vorhandene Sätze nicht noch mal neu geschrieben oder auf andere Art geändert, aber wenn später ein Select kommt auf Basis der neuen Struktur, muss ja jedes Feld wieder korrekt zugeordnet werden. Insbesondere sollte das klar sein, wenn man ein Feld mitten aus der Tabelle löscht, dessen Daten ja noch in alten Sätzen enthalten sind. Nun wird daher bei jedem Datensatz die Kette der Daten (also das eigentliche Datenmeterial) gespeichert, aber auch die damals verwendete Recordstrukturversion, damit das wieder sauber auseinander genommen werden kann. daher hat man hier eine Maximale Anzahl von 255 Recordstrukturen pro Tabelle definiert, da ja alle alten Strukturen in der Datenbank reproduzierbar bleiben müssen. <P> Gruss Holger Klemt, www.ibexpert.co

            Comment

            Working...
            X