Announcement

Collapse
No announcement yet.

TEMPORARY TABLES: Paralleles Anlegen möglich (und wann werden sie gedroppt) ?

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

  • TEMPORARY TABLES: Paralleles Anlegen möglich (und wann werden sie gedroppt) ?

    Hallo,

    langsam komme ich ins Zweifeln. Ich arbeite erst seit kurzem mit Oracle, vorher immer nur SQLServer. Dort konnte man ja relativ einfach temporary tables anlegen.

    Doch jetzt mein Fall:
    Ich habe eine Stored Procedure geschrieben, in der am Anfang eine GLOBAL TEMPORARY TABLE angelegt wird, während der Verarbeitung (Dauer ca. 20 Sekunden) werden Daten in die Temporary Table geschrieben, dort dann später wieder selektiert und am Ende die Daten in eine echte Tabelle schreibt.

    Jetzt kann es passieren, dass mehrere User gleichzeitig auf dem Datenbankserver diese Stored Procedure aufrufen. Werden diese Aufrufe nacheinander abgearbeitet oder parallel? Denn dann dürfte es richtig krachen, da die TEMPORARY TABLES bei oracle ja global sind, d.h. für jeden User existent?

    Wenn das so ist, müsste ich das umgehen, in dem ich die TEMPORARY TABLES am Anfang anlege und dann sind sie für immer da. Die Stored Procedures können sich dann darauf verlassen, dass die TEMPORARY TABLES existieren. Soweit ich gelesen habe werden zwar die Daten in den TEMPORARY TABLES am Ende der Session gelöscht, aber die TAbelle selbst bleibt bis zum Sankt Nimmerleinstag bestehen, oder wird diese etwa auch gelöscht?


    Hat irgendwer nen Tipp oder Hinweis für mich?
    Viele Grüße,


    Tim

  • #2
    warum nicht einfach normale Tabellen anlegen und diese dann immer benutzen? Und den Datensatz über eine Id eindeutige für einen User machen.

    Comment


    • #3
      normale Tabellen sollen langsamer sein dachte ich immer!?

      Comment


      • #4
        Originally posted by timb83 View Post
        Hallo,

        langsam komme ich ins Zweifeln. Ich arbeite erst seit kurzem mit Oracle, vorher immer nur SQLServer. Dort konnte man ja relativ einfach temporary tables anlegen.

        Doch jetzt mein Fall:
        Ich habe eine Stored Procedure geschrieben, in der am Anfang eine GLOBAL TEMPORARY TABLE angelegt wird, während der Verarbeitung (Dauer ca. 20 Sekunden) werden Daten in die Temporary Table geschrieben, dort dann später wieder selektiert und am Ende die Daten in eine echte Tabelle schreibt.

        Jetzt kann es passieren, dass mehrere User gleichzeitig auf dem Datenbankserver diese Stored Procedure aufrufen. Werden diese Aufrufe nacheinander abgearbeitet oder parallel? Denn dann dürfte es richtig krachen, da die TEMPORARY TABLES bei oracle ja global sind, d.h. für jeden User existent?

        Wenn das so ist, müsste ich das umgehen, in dem ich die TEMPORARY TABLES am Anfang anlege und dann sind sie für immer da. Die Stored Procedures können sich dann darauf verlassen, dass die TEMPORARY TABLES existieren. Soweit ich gelesen habe werden zwar die Daten in den TEMPORARY TABLES am Ende der Session gelöscht, aber die TAbelle selbst bleibt bis zum Sankt Nimmerleinstag bestehen, oder wird diese etwa auch gelöscht?


        Hat irgendwer nen Tipp oder Hinweis für mich?
        Viele Grüße,


        Tim
        Hallo,

        Der beste Hinweis ist in der Regel immer die Doku :


        http://download.oracle.com/docs/cd/B....htm#CNCPT1138

        - GTT können Session -Dependent sein, so dass jede Session nur "seine" GTT sieht, also soweit kein Problem mit "parallel"


        Gruss

        Comment

        Working...
        X