Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

array of record füllen

Mitglied: Gushiken

Gushiken (Level 1) - Jetzt verbinden

27.11.2008, aktualisiert 08.12.2008, 6109 Aufrufe, 1 Kommentar

Für eine aktuelle Anwendung von mir muss ich ein array of records mit Datensätzen aus einer SQL Datenbank befüllen. Funktionerit soweit ganz gut, ist nur SEHR langsam...

Wie schon erwähnt klappt das ganze eigentlich schon ganz gut. Allerdings geht die Performace ziemlich schnell in die Knie.
Sobald ich versuche ca. 100000 Datensätze einzulesen dauert das ganze, je nach Laune des Computers und laufenden Programmen, zwischen 4 und 8 Minuten!!!
Da das ganze beim Programmstart ausgeführt werden soll ist das untragbar, es sollte maximal 10-20 Sekunden dauern....
Hier einmal ein kleiner Beispielcode (Das Record ist eigentlich wesentlich umfangreicher):

01.
// Record und Array of Record 
02.
TPerson = packed record 
03.
  nachname:string[50]; 
04.
  end; 
05.
TPersonArray = array of TPerson; 
06.
 
07.
// Funktion 
08.
with query do 
09.
begin 
10.
  with sql do 
11.
  begin 
12.
    clear; 
13.
    add('<SELECT Anweisung>'); 
14.
  end; 
15.
  open; 
16.
  first; 
17.
  len:=RecordCount; 
18.
  setLength(personenArray,len); 
19.
  len:=0; 
20.
  while len<RecordCount do 
21.
  begin 
22.
    with personenArray[len] do 
23.
    begin 
24.
      nachname:=Fields.Fields[0].AsString; 
25.
    end; 
26.
    next; 
27.
    len:= len+1; 
28.
  end; 
29.
end;
Vielleicht habt ihr ja eine Idee wie man das ganze schneller machen kann.

Gruß, Gushiken
Mitglied: hermes
08.12.2008 um 07:25 Uhr
Hallo,

gibt es einen Grund warum die WHILE Schleife nicht mit einem "while not query.eof" gemacht wird ?

Man könnte zumindest len := len + 1 einsparen, und die recordcount Abfrage soll auch nicht die schnellste sein..

Falls parallel dazu noch die Daten in einem Grid o.ä. angezeigt werden, könnte man mit DisableControls vielleicht noch was an Geschwindigkeit rausholen.

vg
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

VBS: mehrere ClickBox Objekte automatsch füllen (ohne Array)

gelöst Frage von mobby83Batch & Shell5 Kommentare

Hallo Forum, ich bin "neu" hier, auch wenn ich hier schon oft anwesend war und hilfreiche Tipps fand. Heute ...

DNS

SPF records

gelöst Frage von itnobbyDNS3 Kommentare

Hallo zusammen, ich hab mal eine Frage zu SPF records. Ich besitze 2 Domänen www.domain1.de und www.domain2.de Auf dem ...

Batch & Shell

Leere Array-Werte aus einem Array entfernen

gelöst Frage von ToniHoBatch & Shell3 Kommentare

Hallo zusammen, ich bin dabei ein Powershell-Script zu schreiben, welches diverse Reports generieren kann. Für die Eingabe von SamAccountNames ...

Batch & Shell

(Inkrementell, Differentiell und Full) mit shell

gelöst Frage von 125671Batch & Shell7 Kommentare

Hallo Admins! Bitte entschuldigt die kurze Störung an einem Sonntag Abend Da ich noch ein Anfänger in Powershell bin, ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 12 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 12 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 16 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...