Announcement

Collapse
No announcement yet.

Sequence

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

  • Sequence

    Ich erstelle eine Sequence:
    CREATE SEQUENCE seq_test
    START WITH 1
    INCREMENT BY 1
    CACHE 20;
    Die Sequenz liefert mir auch die Werte: 1,2,3 usw. zurück.
    Nun tritt folgendes Phänomen auf. Wird die Sequenz am nächsten Tag aufgerufen, so liefert sie zunächst einen um 20 (CACHE 20) erhöhten Sequenzwert. Danach werden wieder um 1 incrementierte Werte geliefert. Tests ergaben, wird CACHE auf 5 gesetzt, so wird am nächsten Tag zunächst ein um 5 erhöhter Sequenzwert geliefert. Innerhalb eines Tages arbeitet die Sequenz korrekt.
    Wie ist dieses Phänomen zu erklären? Ich arbeite unter Oracle 8.1.7.

    kuemmelchen

  • #2
    Hallo Kuemmelchen,

    der Parameter CACHE x bewirkt, das der Server beim Abruf der Sequence x Werte in der SGA vorhält um die Werte beim Abruf schnell liefern zu können. (Sinvoll bei Masseninserts) Der Nachteil ist aber, das die gecachten Werte beim herunterfahren des Servers "verloren" gehen. Ich nehme mal an, das euer Server über Nacht zu Wartungszwecken oder für ein Backup kurz heruntergefahren wird.

    Wenn du nicht auf eine absolute Performance beim Abfruf der Sequence angewiesen bist, dann setz einfach den Parameter NOCACHE statt CACHE x.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,
      nein, bei sauberem Runterfahren werden die gecachten, aber noch nicht benutzten Werte zurückgeschrieben (bzw. vermerkt), so daß im Normalfall diese "Sprünge" nicht auftreten. Irgendetwas deutet darauf hin, daß die Instanz unsauber hertuntergefahren wird (oder abgeschoßen wird, was oft passiert, wenn man z.B. den Windows mit remote shutdown neu startet

      Comment


      • #4
        hallo,

        <<die Instanz unsauber hertuntergefahren wird >> sehe ich auch so, von daher einmal in die alertSID.log schauen, hier sollte/müsste diesbezüglich etwas stehen.

        :-) thoma

        Comment


        • #5
          OK, ihr habt recht! Die gecachten Werte gehen nur verloren "if there is a system failure".
          Da hatte ich etwas falsch in "Erinnerung"

          Gruß Fal
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X