AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Auslesen einer Datenbank in Delphi dauert ewig trotz Indices
Thema durchsuchen
Ansicht
Themen-Optionen

Auslesen einer Datenbank in Delphi dauert ewig trotz Indices

Ein Thema von endyexcellent · begonnen am 24. Sep 2003 · letzter Beitrag vom 26. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
endyexcellent

Registriert seit: 24. Sep 2003
Ort: Ulm
37 Beiträge
 
#1

Auslesen einer Datenbank in Delphi dauert ewig trotz Indices

  Alt 24. Sep 2003, 13:44
Habe eine große Datenbank mit ca 10000-50000 Datensätzen. Habe einen Index gesetzt und der funktioniert auch wunderbar.
Wenn ich allerdings die Datenbank mit Delphi abrufe braucht er ewig um alle Datensätze komlett anzuzeigen. Er ignoriert also meinen in der Datenbank vorhandenen Index. Gibt es irgendeinen SQL befehl mit dem man einen bestimmten Schlüssel auf eine bestimmte Tabelle anwenden kann?

Ideen wären super. Danke.

Mfg
nadine
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 24. Sep 2003, 18:35
Zitat von endyexcellent:
Habe eine große Datenbank mit ca 10000-50000 Datensätzen.
Puh, das nennst du groß?Welche Datenbank?
Zitat von endyexcellent:
Wenn ich allerdings die Datenbank mit Delphi abrufe braucht er ewig um alle Datensätze komlett anzuzeigen.
Wie rufst du ab und wo zeigst du an?
Zitat von endyexcellent:
Er ignoriert also meinen in der Datenbank vorhandenen Index.
Was verleitet dich zu dem Schluß?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 24. Sep 2003, 20:46
Hallo endyexcellent,

bei Interbase gibt es das Schlüsselwort Plan, mit dem sowas möglich wäre. Welche Datenbank nutzt du denn?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
endyexcellent

Registriert seit: 24. Sep 2003
Ort: Ulm
37 Beiträge
 
#4

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 08:43
Hihi. Danke für Eure Hinweise. Ich muss gestehen ich habe gerade erst angefangen mit Datenbanken und Delphi. Deshalb kenne ich mich so gut wie nicht aus.

Ich arbeite mit Firebird, sprich interbase.
Ich zeige meine Datenbank in Delphi mit DBGrid an.
Rufe sie ab mit Database, Dataset und habe noch eine Transaction.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 11:00
Arbeitest du zufällig mit XP.
Dann hätte ich folgenden Vorschlag:
Zitat:
Läuft Interbase unter Windows XP sehr langsam liegt dies an einer unglücklichen Einstellung einer neuen Funktion
von Windows XP - dem "Windows XP System Restore". Die Einstellung veranlasst das System bei bestimmten
Dateien ( z.B. *.doc , *.txt usw. ) vor jeder Änderung dieser eine Kopie zu erstellen.

Leider sind in die Liste der entsprechenden Dateien auch die Interbase-Datenbank-Dateien mit der Endung "*.gdb"
aufgenommen worden. Diese Einstellung verlangsamt Interbase - Programme beträchtlich.

Lösung 1 : Entfernen der Endung "*gdb" aus der Liste der "gewarteten" Dateien.
Im Verzeichnis C:\Windows\System32\Restore befindet sich die Datei Filelist.xml. Diese kann man mit einem
Texteditor öffnen und die Zeile <REC>gdb</REC> entfernen.

Lösung 2 : Ausschalten des System-Restores insgesamt oder für ein bestimmtes Laufwerk.
Gehen Sie auf Arbeitsplatz und betätigen Sie die linke Maustaste. - Wählen Sie den Eintrag Einstellungen. Ändern Sie die Recovery-Einstellung im Ordner Systemwiederherstellung.

Von diesem Problem ist nicht nur Interbase sondern auch so manch andere Anwendungen betroffen. Für diese können die dargestellten Lösungen ebenfalls angewendet werden.
Sonst wüsste ich ohne das Programm und die Struktur der DB zu sehen auch nicht weiter.
  Mit Zitat antworten Zitat
endyexcellent

Registriert seit: 24. Sep 2003
Ort: Ulm
37 Beiträge
 
#6

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 11:11
Hmmm. Ich glaube nicht, dass das am OS liegt.
Ist doch wurscht welche Datenbank gemeint ist, dauern sicher alle mit einigen tausenden oder millionen Datensätzen vollgestopften DB, menge Zeit bis sie vollständig angezeigt werden. Setzt man allerdings einen Index geht sollte das Ruck Zuck funktionieren, da er ja nur ein wenigstel der Datensätze durchsuchen muss.

Ich blick nicht mehr durch.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 13:34
Zitat von endyexcellent:
Hmmm. Ich glaube nicht, dass das am OS liegt.
Aha, du glaubst. Wissen tust du es nicht. Aber wenn du meinst, wird es wohl so sein.

Zitat von endyexcellent:
Ist doch wurscht welche Datenbank gemeint ist, dauern sicher alle mit einigen tausenden oder millionen Datensätzen vollgestopften DB, menge Zeit bis sie vollständig angezeigt werden.
Na warum fragst du dann überhaupt. Und seid wann ist es wurscht welche DB gemeint ist. Du weist nicht wovon du redest.

Zitat von endyexcellent:
Setzt man allerdings einen Index geht sollte das Ruck Zuck funktionieren, da er ja nur ein wenigstel der Datensätze durchsuchen muss.
Ebend hast du noch gesagt, das es eine Meng Zeit verbraucht. Wie kommst du nur darauf, das ein Index ein Allheilmittel ist und woher soll der Index in der Ergebnismenge kommen?

Zitat von endyexcellent:
Ich blick nicht mehr durch.
Ich auch nicht.

Ich hab mir eben mal eine Tabelle mit knapp über 50000 Einträgen erstellt. Lasse sie zum Programmstart im DBGrid anzeigen. Was soll ich sagen, ich kann so schnell nicht hinterher schauen.

Arbeitest du mit Join's oder wird deine Ergebnismenge sortiert?
  Mit Zitat antworten Zitat
endyexcellent

Registriert seit: 24. Sep 2003
Ort: Ulm
37 Beiträge
 
#8

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 13:42
Aaaalso. Ich will hier niemanden angreifen. Du weißt sicher wovon du redest@Memo.

Ich habe eine Datenbank, sagen wir mal eine Rechnungsdatenbank.
Nun gebe ich diese aus in meinem Delphi Programm. Möchte ich jetzt alleRechnungen rausfiltern die einen höheren Betrag als z.Bsp.: 2000€ betragen. Nun habe ich ca 500000 Rechnungen oder meinetwegen 1Million.
Jetzt sucht meine Datenbank von oben nach unten alle ab und zeigt sie dann an. Setze ich aber einen Index auf den Betrag, dann durchläuft meine Datenbank doch ganz wenige Schritte bis sie ihre Datensätze gefunden hat.

Ich habe also diesen Index gesetzt. Er funktioniert auch innerhalb meines IB Expert, da kann ich auch kaum nachschaun so schnell listet die DB meine Sätze auf. Aber das funktioniert nicht, wenn ich meine DB über mein Delphi Prog im DBGrid aufrufe. Wieso nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 14:19
Kannst du deinen Select-Befehl mal hier einstellen.
Falls diese DB nicht unter Staatsgeheimnis fällt, kannst du sie ja mal gezippt anhängen.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Auslesen einer Datenbank in Delphi dauert ewig trotz Ind

  Alt 25. Sep 2003, 18:39
Hallo endyexcellent,

du solltest die IBX Komponenten nutzen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:10 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