AGB  ·  Datenschutz  ·  Impressum  







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

MySQL sau lahm

Ein Thema von cheatzs · begonnen am 29. Sep 2004 · letzter Beitrag vom 29. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
Robert_G
(Gast)

n/a Beiträge
 
#11

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:52
Zitat von cheatzs:
Delphi-Quellcode:
...
 if SQLConnection.Connected then
  begin
    DateSeparator := '-';
    ShortDateFormat := 'yyyy-mm-dd hh:mm:ss';
    SQLConnection.Query('INSERT INTO '+Table+' (sName, sPath, cLength, wPriority, wState, dtDate, sHash, cLastTimeSend, cDownloaded, wLevel) VALUES ('''+AFile.sName+''', '''+EscapeStr(AFile.sPath)+''', '+inttostr(AFile.cLength)+', '+inttostr(AFile.wPriority)+', '+inttostr(AFile.wState)+', '''+datetostr(AFile.dtDate)+''', '''+AFile.sHash+''', '+inttostr(AFile.cLastTimeSend)+', '+inttostr(AFile.cDownloaded)+ ', '+inttostr(AFile.wLevel)+')',FALSE,fExecuting);
    if Table = conWorkUnitdb then
      SQLConnection.Query('INSERT INTO wr_relation (sWorkUnitHash) VALUES ('''+AFile.sHash+''');',FALSE,fExecuting);
  end;
...
*hüstel*
Dir ist schon klar, dass du der armen DB mit jeder Zeile ein vollkommen neues Statement um die Ohren knallst ?!
Gibt es bei der Klasse TMysqlClient keine Möglichkeit Parameter zu verwenden?
Dadurch würde die DB nur einmal: das Stattment parsen,die Berechtigungen prüfen, und einen Ablaufplan erstellen müssen.
Vor jedem Ausführen übergibst du den Parametern ihre Werte und das war's auch schon.
Was Parameter sind dürfte eine Suche nach [dp:bbf211068b=Parameter AND SQL]Parametern und SQL[/dp:bbf211068b] zeigen.

BTW: Das ist schon ein verdammt hässlicher Code block.
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#12

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:57
Nein, kapier ich nicht wirklich.

Mir ist schon klar, dass man Parameter angeben kann (bin mir aber da bei der Komponente MySql-Direct nicht sicher)

Laut meinem Verständnis wird der ganze zugegeben unübersichtliche Code in einen String umgewandelt und dann mit einmal an die Prozedur übergeben.

Also ob Parameter oder nicht, die Daten müssen nun mal eingegeben werden...
Ob man nun den String auseinandernimmt, oder in dem String nach Schlüsselwörtern sucht und diese mit den Parametern erstetzt ist meiner Meinung nach eigentlich egal.
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#13

Re: MySQL sau lahm

  Alt 29. Sep 2004, 20:19
Zitat von cheatzs:
Nein, kapier ich nicht wirklich.
Einfach suchen, hier in Der DP wisrt du schon ein paar Erklärungen finden.

Zitat von cheatzs:
Also ob Parameter oder nicht, die Daten müssen nun mal eingegeben werden...
Ob man nun den String auseinandernimmt, oder in dem String nach Schlüsselwörtern sucht und diese mit den Parametern erstetzt ist meiner Meinung nach eigentlich egal.
Eben nicht!
Wenn du Parameter nutzt, erkennt die DB, dass sie das gleiche Statement schon ein paar Augenblicke vorher bekommen hat (Der Text ist ja absolut identisch), die Parameter werden nicht in den Text reingefriemelt sondern getrennt übertragen.

Zitat von cheatzs:
Laut meinem Verständnis wird der ganze zugegeben unübersichtliche Code in einen String umgewandelt und dann mit einmal an die Prozedur übergeben.
Genau dieser unübersichtliche und übergroße String soll ja damit verhindert werden. Denk' es dir mal so: Deine arme kleine DB muss den String wieder auseinanderpflücken, Werte & Bezeichner erkennen, prüfen ob der User Insert-Rechte auf die Tabelle hat, einen Ablaufplan erstellen,... (Und das bei _JEDEM_ Aufruf!)
Ich will jetzt keine Predigt halten (wobei es wahrscheinlich schon wieder eine geworden ist ), aber es sollte IMHO ein Grundsatz sein, der DB soviel unnütze Arbeit wie nur möglich abzunehmen.
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#14

Re: MySQL sau lahm

  Alt 29. Sep 2004, 20:26
Jetzt hab ichs geschnallt, danke ...
werd mich mal drum kümmern...
klingt auf jeden Fall gut!
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  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 21:27 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