AGB  ·  Datenschutz  ·  Impressum  







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

TIBSQL vs isql-fb Shell

Ein Thema von stalkingwolf · begonnen am 29. Apr 2019 · letzter Beitrag vom 3. Mai 2019
Antwort Antwort
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
695 Beiträge
 
FreePascal / Lazarus
 
#1

AW: TIBSQL vs isql-fb Shell

  Alt 3. Mai 2019, 08:16
IdR. ist eine Query Komponente nicht mal in der Lage, ein Script(mehr als einen Befehl hintereinander) auszuführen. Dafür gibt es separate Scriptkomponenten.
Einspruch, zumindest für Firebird >=2.x kannst du mehrere insert/update/delete Befehle semikolon getrennt zB in einer TSTringlist sammeln, dann schreibst du EXECUTE BLOCK AS BEGIN davor und ein END dahinter und schon kannst du mit nahezu jeder SQL Query Komponente mehrere Befehle auf ein mal senden (Bei manchen Komponenten musste du deren interne Prüflogik abschalten, wenn die zu blöd sind, execute blocks korrekt zu erkennen).

Das beschleunigt die Ausführung noch mal erheblich, hat aber ein paar Grenzen (maximal 255 Relationen pro block, also 255 inserts oder 127 updates oder 85 "update or insert", gerne aber auch gemischt, als Richtwert einfach maximal 80 Befehle pro Block, gesamter source kleiner als 32k,...)

Bei solchen Anforderungen bringt das erhebliche Geschwindigkeitsvorteile aus einer Delphi/Lazarus Anwendung, aber wie die anderen schon sagten, man sollte bei der Geschwindigkeitsmessung die Zeit nicht verplempern mit visualisierungen, es bringt dir nix an Erkenntnissen zur Optimierung deiner SQL Operationen, wenn die SQLs am ende für 1% der Laufzeit verantwortlich sind und 99% irgendwelche TMemos auf dem Screen vertrödeln

Außerdem nicht vergessen, wenn es um High Speed geht, hilft auch die Benutzung des lokalen Protokolls xnet oder noch schneller importe per external tables ...

Aber mal ganz ehrlich, dein Source ist aus meiner Sicht nicht annähernd hilfreich, um den SQL Speed neutral zu bewerten, dafür solltest du klarer trennen zwischen Zeitaufwand für das senden der SQL Befehle und irgendwas anzuzeigen. Nicht vergessen, 10000 mal 1ms sind 10 Sekunden
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
jobo

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

AW: TIBSQL vs isql-fb Shell

  Alt 3. Mai 2019, 09:46
Einspruch zum Einspruch.

Was Du beschreibst, ist eine Fähigkeit des Servers, nämlich einen Anonymous Block ausführen zu können, also im Prinzip eine Stored Procedure ohne Signatur / Header. Diese Fähigkeit hat nichts mit der Query Komponenten und ihre Bestimmung zu tun. Sie ist ein Servermerkmal, wie es ähnlich auch bei anderen Server vorzufinden ist, keine Fähigkeit der Query Komponente.

Das hat nichts mit einem Script zu tun, wie man dann den von Dir genannten Einschränkungen auch entnehmen kann und wie sie auch dem TE mit 10000 Inserts nicht helfen würden für seinen Test bzw. Vergleich.

Ich bleibe dabei, um das Verhalten einer Konsole nachzustellen oder vergleichbar zu machen, bräuchte man eine entsprechende Script Komponente.

ot (nur weil es mir wichtig scheint)
Was alles nichts daran ändert, dass ich ein großer Freund von anonymous blocks bin. Sie verleihen eine riesen Power, nicht nur hinsichtlich Roh-Performance auch beim impliziten Transaktions Handling und damit Ressourcen schonenden DML. Hab ich an anderen Stellen schon vielfach betont. Dieses Feature macht auch Firebird zu einem sehr sympathischen System.

Dennoch für den TE zum Verständnis vielleicht ein hilfreicher Vergleich. Die Funktionsweise eines anonymous block, bei der alle Statements ohne Interaktion mit dem Client stumpf auf dem Server ausgeführt werden, verdeutlicht ganz gut die Unterschiede und liefert eine Erklärung für die geringere Geschwindigkeit, bei schrittweiser Ausführung auf dem Client. Jegliches Feedback zum Client entfällt (außer am Ende, z.B. nach dem 255. Insert), keine Allocs, keine Latenzen (die besonders jenseits von MBit/ GBit LAN übel aufstoßen können.
/ot
Gruß, Jo
  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 17:37 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