Frage

Ich habe noch nie die globalen temporären Tabellen jedoch verwendet habe ich einige Fragen, wie sie in einer PHP-Umgebung arbeiten.

Wie werden die Daten geteilt: Unter der Annahme, persistente Verbindungen zu Oracle durch php oci8. Sind die Daten in einer Datenbank-ID gebunden? es basiert auf den Apache Dämonen getan? Oder ist jede einzelne Anfrage einzigartig?

Wenn die Daten für die Sitzung von der globalen temporären Tabelle gelöscht? Ich gehe davon aus (oder eher die Hoffnung), dass ihre getan, wenn der PHP-Skript beendet. Alternativ, wenn nicht ich gehe davon werde ich es entfernen müssen, bevor Skript zu beenden.

War es hilfreich?

Lösung

Die globale temporäre Tabelle ist einfach die logische Definition einer Tabellenstruktur (Name, Spaltennamen, Spaltendatentypen usw.). Wenn eine Sitzung Referenzen durch Einfügen von Daten wird ein Datensegment in einem temporären Tabelle erstellt nur, dass Sitzung Daten zu halten. Verschiedene Sitzungen können daher die gleiche logische Tabellendefinition verweisen, weil sie jeweils ihr eigenes dediziertes Datensegment haben, die leicht gereinigt werden können, auf begehen oder wenn die Sitzung getrennt, ohne andere Sitzungen zu beeinflussen.

Die Bereinigung der Daten in der GTT kann entweder auf begehen werden oder wenn die Sitzung beendet, je nach Option, mit der sie erstellt wurde. In jedem Fall müssen Sie nicht auf die Teilnahme selbst Spülen vor dem Trennen.

Eine nützliche Alternative zum GTT ist die Unterabfrage Factoring-Klausel ( „MIT“), in dem Sie mehrere Beziehungen erstellen können, die die angemeldeten zuvor in dieser SQL-Anweisung verweisen können. Diese können als ein Datensegment in einer temporären Tabelle entweder automatisch durch Oracle materialisiert werden, wenn sie eine bestimmte Speicherauslastung überschreiten, oder manuell durch den Optimierungshinweis MATERIALISE verwenden.

Andere Tipps

Wenn ich richtig erinnere, sind die Daten in globalen temporären Tabellen nur von einer aktiven Sitzung und nur für diese aktive Sitzung (ich meine session = Verbindung). So können Sie nur die Daten sehen, die vor dem in der aktiven Sitzung eingefügt wurde. Deshalb glaube ich, werden diese Daten nach dem Schließen Sitzung gelöscht. Egal, welche Sprache werden Sie verwenden.

Zumindest glaube ich so. : D

Wie es hier geschrieben: http://www.oracle-base.com/articles/8i/TemporaryTables. php

Die Daten in einer globalen temporären Tabelle sind privat, so dass von einer Sitzung eingefügte Daten können nur von dieser Sitzung zugegriffen werden.

Die Daten in temporären Tabellen am Ende der Datenbanksitzung automatisch gelöscht werden, auch wenn es abnormal beendet.

Sorry für mein schlechtes Englisch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top