AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi selectable stored procedure
Thema durchsuchen
Ansicht
Themen-Optionen

selectable stored procedure

Ein Thema von SvB · begonnen am 25. Dez 2016 · letzter Beitrag vom 27. Dez 2016
Antwort Antwort
jobo

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

AW: selectable stored procedure

  Alt 25. Dez 2016, 15:14
Tja der Sinn, vielleicht denkt der TE, SP ist schneller?
Das wäre hier falsch gedacht.

Zum Vorschlag:
Im Prinzip ok, ich würde allerdings überlegen, wie die Prozedur aufgerufen werden kann/soll und wie entsprechend die Parameter abzusichern sind.
Idiotensicher mit vollständiger Prüfung innerhalb der SP> welche Parameter sind überhaupt befüllt?
>Welcher Aufruf des Select macht dann also Sinn?

Geschützter Aufruf> Anwendung überwacht die Befüllung der Parameter und setzt nur vorgeprüfte Parameterkombi ab.

Im Beispiel ist die Parameterprüfung mit anschließender Verzweigung recht grob und kann zu schlechten Ergebnissen führen.
Gruß, Jo
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: selectable stored procedure

  Alt 25. Dez 2016, 15:17
Danke.
Das hier waren nur Beispiele, ich wollte keine 50 Zeilen Code posten.
Ich probiere das so mal aus.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: selectable stored procedure

  Alt 25. Dez 2016, 16:21
Aufgrund eurer Infos habe ich generell bisschen mit "stored procedures" vs "View" herumgespielt.
Einmal habe ich meine Abfrage komplett auf SP und das andere mal komplett auf eine View aufgebaut.
Meine Datenbankverbindung läuft über ein VPN auf die DB in der Zentrale.
Die Rückgabe der Daten über SP benötigt durchweg ca. 300ms.
Bei der View sind es beim ersten Aufruf ca. 550ms, alle weiteren sind dann unter 200ms.
Ich glaube ich werde mal weiter in Richtung View gehen.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
544 Beiträge
 
Delphi 12 Athens
 
#4

AW: selectable stored procedure

  Alt 25. Dez 2016, 18:42
Sicher ist die Verzweigunsprüfung nur als Beispiel gedacht und sollte real etwas differenzierter sein.

Ob ein View, eine Sp oder eine direkte Abfrage schneller ist, kann man nicht pauschal sagen. Gerade Abfragen auf Views oder Sps mit Joins könne sehr lange dauern.

Manchmal ist es sogar besser, die View-Daten in eine Temporäre Tabelle zu Kopieren und dann darauf seine Selects loszulassen.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: selectable stored procedure

  Alt 25. Dez 2016, 23:19
Ich frage mich wofür diese Abfrage gut sein soll.
Wie wäre es mit
Code:
Select id from tab1 where kdnr=:kdnr;

select Daten from tab1.....where id=:id
and bed1=....;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

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

AW: selectable stored procedure

  Alt 26. Dez 2016, 23:35
Bei der View sind es beim ersten Aufruf ca. 550ms, alle weiteren sind dann unter 200ms.
Ich glaube ich werde mal weiter in Richtung View gehen.
Arbeitest Du mit Parametern oder machst Du Stringreplace / Format im Select Statement.
Vielleicht bekommst Du mit Parameter Verwendung die anfänglichen 550 ms noch gedrückt.

Und
Hab jetzt nicht mehr alles im Blick, aber wieso Views? Auch wenn ich immer die Verwendung von Views empfehle- grundsätzlich-, auch ein View bringt hier nichts gegenüber der SP. Ein simples Select sollte genau so schnell sein wie der View. Die Varianz liegt doch nur in dem wechselnden Feld in der Where Bedingung.

Ich frage deswegen, weil man auf die Idee kommen könnte, die beiden Abfrage-Varianten per Union zusammenzufassen, indem man die beiden abzufragenden Felder in einer künstlichen Spalte zusammenführt und dann eine einheitliche Abfrage auf das neue virtuelle Feld machen kann. Da ist man dann wieder beim Thema Resourcenverschwendung.
Je nachdem wie kleine Deine Tabelle ist, fällt sowas dann anfangs nicht durch schlechte Antwortzeiten auf.
Gruß, Jo
  Mit Zitat antworten Zitat
SvB

Registriert seit: 21. Okt 2004
Ort: Eckenroth
426 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: selectable stored procedure

  Alt 27. Dez 2016, 07:31
Moin,
ich arbeite mit Parametern. Die 550ms sind nicht das Problem. Wollte das nur als Info durchgeben, dass bei einer SP die Zeiten immer relativ gleich sind und bei einer View nach dem zweiten Aufruf geringer sind. (Jedenfalls bei meinen Tests).
Das kommt aber auch bestimmt darauf an, wie ansonsten im Programm weiter gearbeitet wird, dazu müsste ich aber ein umfangreiches Monitoring durchführen.

Für den Moment ist alles gut.
Sven

Alle sagen, das geht nicht. Da kam einer, der wusste das nicht und hat es gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:32 Uhr.
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