Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   temporäre tabelle erstellen in stored procedure? (https://www.delphipraxis.net/168237-temporaere-tabelle-erstellen-stored-procedure.html)

Hansa 12. Mai 2012 09:06

AW: temporäre tabelle erstellen in stored procedure?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1166192)
Cool, Firebird hat auch ein TClientDataSet ... das wusste ich noch nicht.

Du weisst vieles nicht. :mrgreen: Was ein ClientDataset macht oder wozu man das nutzen kann, ist dazu noch immer weitgehend unbekannt. Dir offensichtlich auch.

In der Frage steht das Wort "temporär" und dann noch "stored". Das widerspricht sich etwas. Ich speichere also etwas, was nur zu kurzzeitigem Gebrauch genutzt wird. Da stellt sich die Frage, warum ich das überhaupt anlege und wieder lösche. Und dazu die SP permanent in der DB haben ? Gehts vielleicht auch anders ?

Neumann 12. Mai 2012 09:43

AW: temporäre tabelle erstellen in stored procedure?
 
Temporäre Tabellen machen schon Sinn. Wenn ich eine Tabelle mit vielen Datensätzen oder einen View mit Joins habe, können Berechnungen trotz Where-Klausel teilweise lange dauern.

Wenn man den interessanten Bereich erst insgesamt in eine Temporäre Tabelle Kopiert und dann seine Berechnungen auf diese anwendet kann man den ganzen Vorgang erheblich schneller machen. Ich konnte so den Faktor 10 und mehr erreichen.

jobo 12. Mai 2012 11:11

AW: temporäre tabelle erstellen in stored procedure?
 
Wie wärs damit:
Code:
create global temporary table MyConnGTT (
  id int not null primary key,
  txt varchar(32),
  ts timestamp default current_timestamp
)
on commit preserve rows;
(siehe dazu http://www.firebirdsql.org/refdocs/l...ddl-table.html)

Wenn Du eh mit einer Stored Procedure arbeiten willst, tut's doch vielleicht auch ein
Code:
FOR select_statement DO
compound_statement
In dem die benötigten Daten zusammen geraffelt und bearbeitet werden?
Eine temporäre Tabelle macht m.E. eher selten Sinn.
Und ein TClientDataset zur Datenverarbeitung macht nur Sinn, wenn es der Server nicht kann, wenn mir Bandbreite und Laufzeit egal ist oder wenn ich meinen Verarbeitungs-Code verstecken muss/möchte.

P.S.: Wichtig bei der Tabellendefinition ist der On Commit Teil. Lebensdauer Transaktion oder ganze Connection..? An der Stelle bist Du vielleicht gestolpert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz