AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Parameter & Prepared
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter & Prepared

Ein Thema von Mavarik · begonnen am 20. Dez 2014 · letzter Beitrag vom 25. Dez 2014
Antwort Antwort
Seite 2 von 2     12   
Dejan Vu
(Gast)

n/a Beiträge
 
#11

AW: Parameter & Prepared

  Alt 20. Dez 2014, 16:08
War ja nur ne Idee. Mal sehen, woran es liegt.
  Mit Zitat antworten Zitat
EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: Parameter & Prepared

  Alt 25. Dez 2014, 22:15
Hmmm

Meine Frage wäre, ob FD tatsächlich die MySQL-Prepared-stmt API nutzt oder nicht:
http://dev.mysql.com/doc/refman/5.0/...-problems.html
Die API ist buggy seit v4.1!

Des weiteren bietet MySql keine API die Parameter und deren Eigenschaften "sicher" zu hinterfragen:
http://dev.mysql.com/doc/refman/5.0/...-metadata.html
Die Funktion existiert auch schon ewig und tut nix, rein gar gar nix!

Wir bei Zeos haben den Support drin, meine Benchmarks mit dem "real"-prepared Sch.. sind ehrlich gesagt ernüchternd ausgefallen, da bei Parameter-Typ oder Größen-Änderungen immer wieder neue bind+ReAllocMem(wenn der parameter mehr Speicher braucht) notwendig sind. Tatsächlich ist MySQL so 'ne kleine Ausnahme und wirklich Höllen schnell, was das Parsen der Strings und "escapen" angeht.

Der Weg rückwärts als fetch fällt da genauso schlimm aus. Die C-API bietet ResultSets ebenfalls an. Der Performance-Drop ist wirklich übel auch das Speicher handling für Lob's.
Hat jemand eine Ahnung in welcher Art MySQL seine Daten ablegt? String oder Binär (e.g. Ordinals, Floats etc.)?
Und weil wir schon dabei sind: PG bietet seit v8.0 auch ein binär Protokol, doch wie legt PG seine Daten ab? Könnte da was zu holen sein? Fürchte 'ne menge Zeit für die gleiche Pusteblume zu investieren...

Ist eigentlich 'ne dumme Frage, aber Zahlen Lügen halt nicht! Ich kanns mir nicht anders erklären.. Bei PG würde es mich nicht mal wundern, wenn die unendliches String-Parsing innerhalb der Tabellen betreiben.

By default nutzt Zeos die Emulierung der Parameter und bis heute ist diese schneller (wenn man alles drauf trimmt, mal vom Delphi-Unicode-Gedöhns abstand hält und ein paar schneller RTL-Replacements einbaut), und wie voran geführt: sicherer.

Michael

Ahh noch etwas, bevor ich korregiert werde (worauf Bernhard verweist) diese "Prepare xxxx" etc. Syntax hatte ich auch schon durch gespielt. Vielleicht habe ich mich da zu dumm angestellt, doch meine Messungen, aufgrund der vielen call's, fiehlen noch negativer aus...

Somit würde ich mich im Fall MySQL Mavarik anschließen und einfach mal alles in Frage stellen (wenn FD auch emuliert, natürlich und keine "strings" escaped werden müssen)!

Geändert von EgonHugeist (25. Dez 2014 um 22:58 Uhr) Grund: typo and add's
  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 19:14 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