AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IN mit einem Parameter

Ein Thema von haentschman · begonnen am 20. Nov 2010 · letzter Beitrag vom 21. Nov 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#11

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 22:56
Du hast weniger Arbeit, aber dafür mit das QuotedStr ordentlich arbeiten (korrekt die Quotes setzen), wofür zusätzliche Stringoperationen nötig sind
und dann muß das DBMS diesen String auch wieder zerlegen, was bei den Parametern nicht so aufwändig ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#12

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:10
Danke an Sir Rufo und Himitsu für die Anregung, ich hatte zwar an dieser Ecke bisher nie Performanceprobleme werde mich aber doch mal etwas ausgiebiger damit beschäftigen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:11
Und auch nur gefühlt mehr Arbeit
QryStr := '... Where Feld In (' + ParStr( 5 ) + ')'; die Funktion ParStr( Count : integer ) liefert dir dann die entsprechenden Parameter-Felder in der gewünschten Anzahl.
Nun ist der Aufwand die Werte an die Parameter zu übergeben geringer als diese als String aufzubauen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#14

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:16
nur noch eine kleine Rückfrage, habt ihr Erfahrungen damit ob es bei einer hohen IN-Anzahl bei der Parametrisierten Form, die ja nur Sinn macht wenn man Prepared fährt z.B. bei MS-SQLserver ein Limit gibt.
Der SQL kann ja prinzipiell beliebig lang werden, die Frage wäre gibt es bei der Parameteranzahl möglicherweise eine Grenze?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:20
Ab einer bestimmten Parameter-Anzahl müsste man mal das Konzept überdenken.
Ansonsten bleibt immer noch die Möglichkeit die Werte in eine temp. Tabelle zu übertragen und dann wie folgt prüfen
Code:
Where Feld In ( Select tmpFeld From tmpTab )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#16

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:25
SQL mäßig fühle ich mich sehr sattelfest (wegen IN TMP ), aber vor ich diesen Ansatz in einer stark ausgelasteten Netzwerkumgebung wähle würde ich hier die althergebrachte IN (BastelString) Lösung weiter präferieren.

LG
Thomas
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:36
nur noch eine kleine Rückfrage, habt ihr Erfahrungen damit ob es bei einer hohen IN-Anzahl bei der Parametrisierten Form, die ja nur Sinn macht wenn man Prepared fährt z.B. bei MS-SQLserver ein Limit gibt.
Meiner Meinung macht das Prepared nur dann Sinn, wenn genau diese Abfrage mehrfach benutzt wird.
Die Anzahl der Parameter ist aber variabel und somit ist es nur Zufall, wenn die Abfragen gleich sind.
Somit bringt ein Prepared überhaupt nichts, wenn es sich nicht sogar negativ auswirkt, weil vorbereitet, dann abgefragt wird und dies bei jeder Abfrage.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: IN mit einem Parameter

  Alt 21. Nov 2010, 10:18
FireBird prepared zudem automatisch
Markus Kinzler
  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 00:48 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