1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Firebird 2.5, global temporary tables

Dieses Thema im Forum "Firebird und Interbase" wurde erstellt von ny_unity, 27 April 2016.

  1. ny_unity

    ny_unity Datenbank-Guru

    Hallo zusammen,

    kennt jemand die Geschichte mit den global temporary tables (GTT) unter firebird?

    Ich habe dazu ein paar Fragen:

    -> haben die GTT Auswirkung auf die anderen Tabellen in der Datenbank?
    -> werden die GTT gelöscht? Wenn ja, wann und wie?
    -> kann man die GTT mittels eines SELECT von "festen" Tabellen füllen und später mit einem Select wieder abfragen?

    Danke,

    Erik
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Aus der Doku (Google nach firebird global temp table, erster Treffer, Suchdauer im Skat):

    The DECLARE GLOBAL TEMPORARY TABLE statement defines a temporary table for the current connection.

    These tables do not reside in the system catalogs and are not persistent. Temporary tables exist only during the connection that declared them and cannot be referenced outside of that connection. When the connection closes, the rows of the table are deleted, and the in-memory description of the temporary table is dropped.


    Beantwortet fast alle Fragen, außer die Letzte. Dazu meine Gegenfrage: warum sollte es nicht gehen? Bonusfrage: schon mal probiert?
     
  3. ny_unity

    ny_unity Datenbank-Guru

    Hey,

    die Doku habe ich gefunden und verstanden, allerdings habe ich auf meiner Testdatenbank eine globale Tabelle erstellt. Habe disconnected und neu Connected, aber die Tabelle war immer noch sichtbar. Ich dachte die Tabelle wird wenn sie nicht mehr gebraucht wird gelöscht?

    Probiert habe ich das mit dem Select natürlich :)

    Ich habe erst die Tabelle erstellt und dann einen Wert eingefügt, erst mit Update, dann mit insert into, aber immer war die Tabelle mit nachträglichen Select leer, daher frage ich so "blöd" :)

    Und die Frage, ob dadurch die lokalen festen Tabellen beeinträchtigt werden, wenn die Tabelle immer nach gebraucht verschwindet ist das ja kein Problem, aber wenn die immer da bleiben, macht vielleicht irgendwann der Softwarehersteller Probleme :-/

    Grüße

    Erik
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Dann scheint das entgegen der Doku nicht so wie da beschrieben zu funktionieren. Bitte mache einen Bugreport.

    Nun, wenn in einer Datenbank eine Tabelle Werte 'vergißt', dann scheint mir das ein Fehler -> Bugreport.

    (außer MySQL, da gibt es extra Blackhole-Engine, die das vergessen perfekt kann ...)


    Der Softwarehersteller?

    PS.: exzessiver Gebrauch von temp. Tabellen etc. sollte man vermeiden, oft gibt es da bessere Alternativen.
     
  5. ny_unity

    ny_unity Datenbank-Guru

    Wegen der Doku... Ich las, dass bei permanent Verbindungen dazu kommen kann, dass die Tabelle bestehen bleibt. Ich hatte es aber so verstanden, das wenn der User, der die Tabelle erstellt hat, nicht mehr benutzt, wird zu gelöscht.:rolleyes:

    Die Datenbank ist eine von unserem programm mit denen die Clienten arbeiten. Ich führe dort Auswertungen mittels Select aus, doch jetzt bin ich am Limit mit den 255 Verknüpfungen.

    An welche anderen Wege denkst du da? Ich bräuchte nur eine temporäre Tabelle im Moment.
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Oft kann man temp. Tabellen vermeiden, indem man das SQL geschickter erstellt. Was viel Wert ist: Common Table Expressions, das sind die Ausdrück, die mit WITH ... beginnen. Kann aber nicht jede DB.
     
  7. ny_unity

    ny_unity Datenbank-Guru

    Damit arbeite ich bereits ;-)
    Ich hatte meine Hoffnung nun in die GTT gesteckt... Scheint aber iwie nicht zu wollen. Das Statement ist schön sauber aufgebaut. Und nochmals überarbeiten :-( nee, erstmal weiter schauen. Hatte auch überlegt im MS Prozeduren anzulegen, aber dort hat man ja nur 8.000 Zeichen bei Linked Server im OPENQUERY und was die Performance betrifft Male ich mir lieber nicht aus ...

    Eventuell ist es eine Datenbankeinstellung, die verhindert das die temporären Tabellen wieder gelöscht werden ... :-/
     
  8. ny_unity

    ny_unity Datenbank-Guru

    ok, GTT läuft.... Allerdings kann ich diese noch nicht in meinem Webprogramm einbauen, dieser kennt die Funktionen anscheinen nicht :-(
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden