AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Dataset.Next | sehr langsam
Thema durchsuchen
Ansicht
Themen-Optionen

Dataset.Next | sehr langsam

Ein Thema von Dekras12 · begonnen am 22. Jan 2019 · letzter Beitrag vom 23. Jan 2019
Antwort Antwort
jobo

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

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:31
Wenn ich die daten.pos.next verwende. Dann zieht man bei der Tabelle das er zu jede einzelne Zeile durchgeht und das dauert bei 50 Datensätze. Das ist so ob, er jeden Datensatz auswählt.
Wer woll denn wissen was daten.pos.netxt macht und welche Ereignisse dabei noch behandelt werden? Ohne konkreten Code, Eventroutinen etc. ist keine Unterstützung zu leisten. Alles nur Kaffeesatz Leserei.

Ein 50 Rekords großes Ergebnis einer Query müsste eigentlich schnell navigierbar sein. Außnahmen gäbe es diverse, je nach Ereignisbehandlungsroutinen, die am Scrollen dran hängen.
Gruß, Jo
  Mit Zitat antworten Zitat
Dekras12

Registriert seit: 22. Jan 2019
11 Beiträge
 
#2

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:33
daten.pos ist ein FDQuery und sein SQL Text ist:

Code:
SELECT * From TABLE WHERE AUFNR = :QS1 Order by Ordnung
Die FDQuery ist verbunden mit der Tabelle. Die Tabelle wird dan per Ordnung sortiert. Wenn man auf "Zeile einfügen" drückt, dann erstellt er zuerst die neue Zeile mit den default Eingaben.
Dann wird mit die erste Zeile von daten.pos aufgerufen und von da aus erstellt für jede Zeile einen neue Ordnungsnummer. Falls er mit der neue Zeile kommt, dann soll er die Ordnung nochmal +1 machen.

Ich versuche den Code verstänldich zu gestalten
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:38
Existiert ein adäquater Index über AufNr und Ordnung?
Markus Kinzler
  Mit Zitat antworten Zitat
jobo

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

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:39
Ok, wenn das alles mit den visuellen Komponenten geschieht, auch das next und dann das Update x 50 datensäte, dann ist es offensichtlich langsam. Wahrscheinlich würde schon ein deaktiviren der GUI etwas helfen.

Ich denke, ein pures Insert, gefolgt von dem Update für die "Ordnung" kann das sicher auf <1Sekunde beschleunigen.
Gruß, Jo
  Mit Zitat antworten Zitat
Dekras12

Registriert seit: 22. Jan 2019
11 Beiträge
 
#5

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:45
Ich habe es mir auch gedacht, aber das hat nicht geholfen.
Ich habe es mit rxdbgrid2.DataSource.DataSet.DisableControls deaktiviert. War etwas besser, aber nicht gut genug.
Früher hat es auch geklapt, aber das Programm wurde auf das neue Delphi konvertiert, wie ich es verstanden habe
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:45
Ich würde auch per SQL die Ordnung aller betroffenen Datensätze (die größer (gleich) der Insert-Stelle) sind erhöhen. Dann den neuen Satz einfügen und dann ein refresh der Query.
Ralph
  Mit Zitat antworten Zitat
Dekras12

Registriert seit: 22. Jan 2019
11 Beiträge
 
#7

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:50
@Jumpy Ich probiere es mal aus
@mkinzler Was ist ein adäquater Index?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#8

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:55
Gibt es einen Index auf die Spalte AufNr oder zumindest einen, der diese Spalte an erster Stelle enthält?

Ansonsten muss die Datenbank beim Scrollen per Fulltablescan jeweils den nächsten Satz, der die Bedingung erfüllt, suchen und das kann dauern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:57
Zitat:
@mkinzler Was ist ein adäquater Index?
Am Besten einen über diese beide Spalten.
Markus Kinzler
  Mit Zitat antworten Zitat
Dekras12

Registriert seit: 22. Jan 2019
11 Beiträge
 
#10

AW: Dataset.Next | sehr langsam

  Alt 22. Jan 2019, 12:40
*Doppelter Eintrag*

Geändert von Dekras12 (22. Jan 2019 um 12:47 Uhr)
  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 05:18 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