AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MSSQL/ADO ... speed is everything !!!
Thema durchsuchen
Ansicht
Themen-Optionen

MSSQL/ADO ... speed is everything !!!

Ein Thema von bernhard_LA · begonnen am 17. Jun 2014 · letzter Beitrag vom 18. Jun 2014
Antwort Antwort
mkinzler
(Moderator)

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

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 09:50
Was wird denn inhaltlich in

proc (query, ......);

gemacht?

Vielleicht ist ja da schon Optimierungspotential, indem man das (teilweise) die Datenbank machen läßt?
Auf diese Idee ist noch niemand gekommen
Markus Kinzler
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 09:58
Zitat:
Was wird denn inhaltlich in

proc (query, ......);

gemacht?

Vielleicht ist ja da schon Optimierungspotential, indem man das (teilweise) die Datenbank machen läßt?



über eine Ganze Anzahl von mydataset.fieldbyname('...').as.... hole ich mit den Inhalt der einzelnen Spalten am aktiven Datensatz und erzeuge dann eine Klasse mit der geht's dann in die weitere Verarbeitung.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:02
Warum nimmst du nicht ein fertiges ORM?
Markus Kinzler
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#4

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:09
über eine Ganze Anzahl von mydataset.fieldbyname('...').as....
Hier liegt allein schon ein großes Verbesserungspotential:

Wenn Du einmalig den Satz von TFields über fieldbyname('...') ermittelst und über diesen in jedem Record auf die Werte zugreifst, kannst Du das Tempo vervielfachen (ich habe bei so etwas schon das 5-fache Tempo erreicht).
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:26
@ Mikkey

Zitat:
Wenn Du einmalig den Satz von TFields über fieldbyname('...') ermittelst und über diesen in jedem Record auf die Werte zugreifst
Pro record machen wir den Zugriff auch nur 1 x über Fieldbyname ....
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:32
@ Mikkey

Zitat:
Wenn Du einmalig den Satz von TFields über fieldbyname('...') ermittelst und über diesen in jedem Record auf die Werte zugreifst
Pro record machen wir den Zugriff auch nur 1 x über Fieldbyname ....
Ja aber für jeden Datensatz.
Markus Kinzler
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:36
OK, und wie geht es denn einfacher ? Kann ich Code-Beispiel sehen ?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:39
OK, und wie geht es denn einfacher ? Kann ich Code-Beispiel sehen ?
Erzeuge persistente Felder (Doppelklick auf DataSet)

Die Frage nach dem ORM hast Du gesehen?
Markus Kinzler
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#9

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 10:56
OK, und wie geht es denn einfacher ? Kann ich Code-Beispiel sehen ?

Delphi-Quellcode:
var
  fld1, fld2: TField;
begin
  ...
  query.Open();
  fld1 := query.FieldByName('...');
  fld2 := query.FieldByName('...');
  while not query.EOF do begin
    ProcessRecord(fld1, fld2);
    query.Next();
  end;
end;
  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
 
#10

AW: MSSQL/ADO ... speed is everything !!!

  Alt 18. Jun 2014, 13:32
Zitat:
Was wird denn inhaltlich in

proc (query, ......);

gemacht?

Vielleicht ist ja da schon Optimierungspotential, indem man das (teilweise) die Datenbank machen läßt?
über eine Ganze Anzahl von mydataset.fieldbyname('...').as.... hole ich mit den Inhalt der einzelnen Spalten am aktiven Datensatz und erzeuge dann eine Klasse mit der geht's dann in die weitere Verarbeitung.
Genau das Erzeugen von Daten-Objekten gehört noch in den Teil der die Daten ausliest (und natürlich ohne das ständige FieldByName)
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
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 21:15 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