AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken temporäre tabelle erstellen in stored procedure?
Thema durchsuchen
Ansicht
Themen-Optionen

temporäre tabelle erstellen in stored procedure?

Ein Thema von Serienchiller · begonnen am 10. Mai 2012 · letzter Beitrag vom 12. Mai 2012
Antwort Antwort
Seite 2 von 2     12   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

AW: temporäre tabelle erstellen in stored procedure?

  Alt 12. Mai 2012, 09:06
Cool, Firebird hat auch ein TClientDataSet ... das wusste ich noch nicht.
Du weisst vieles nicht. 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 ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: temporäre tabelle erstellen in stored procedure?

  Alt 12. Mai 2012, 09:43
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.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: temporäre tabelle erstellen in stored procedure?

  Alt 12. Mai 2012, 11:11
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz