AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ClientDataSet - wie kann man Indizes verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

ClientDataSet - wie kann man Indizes verwenden?

Ein Thema von globetrotter77 · begonnen am 29. Jan 2009 · letzter Beitrag vom 4. Feb 2009
Antwort Antwort
Seite 9 von 10   « Erste     789 10      
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#81

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 02:26
sage ich doch!
mit dem Ergebnis beim Open bin ich durchaus zufrieden ...
was mir nicht passt, ist, dass die per SQL-Tool erstellten Indizes scheinbar nicht verwendbar sind, jedenfalls nicht mit nem ClientDataSet ... und das ist sehr ärgerlich! Wozu definiere ich sie denn dann?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#82

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 02:32
Das ist aber egal, Indiezes sind innerhalb der Datenbank vorhanden und werden nur von dieser benutzt. Die Indiezes sind erstmal völlig hupe, es müssen MB an Daten erstmal in deine Anwendung gepumpt werden, da ist der Index wurscht. Der Flaschenhals besteht nunmal zwischen Festplatte und Arbeitsspeicher. Und selbst wenn die Daten dann endlich vorliegen, ist ein Umsortieren in deiner Anwendung nicht sinnvoll, bei so vielen Daten. Deshalb auch mein Versuch mit dem eingeschränkten Fetch. Dann kann der Benutzer anfangen zuarbeiten, wieso muss er alle 500000 Datensätze sehen, reicht es nicht wenn er sie bearbeiten kann? Realisiere die Sortierung über einzelne, neue Abfragen und nicht über deine Anwendung. Das bringt bei dieser Datenmenge einfach keinen Vorteil, da bist du schneller im Swap als dir lieb ist und dann wird es richtig langsam.
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#83

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 02:56
Zitat von omata:
Das ist aber egal, Indiezes sind innerhalb der Datenbank vorhanden und werden nur von dieser benutzt.
Also mit Verlaub, das halte ich für nen ziemlichen Unfug! Natürlich gibt es Sinn, einen vorhandenen Index gezielt zu nutzen, wenn man der Einzige ist, der weiß, wozu dieser Index angelegt wurde.
Zitat:
Die Indiezes sind erstmal völlig hupe, es müssen MB an Daten erstmal in deine Anwendung gepumpt werden, da ist der Index wurscht. Der Flaschenhals besteht nunmal zwischen Festplatte und Arbeitsspeicher.
Um Himmels willen, wie oft soll ich das denn noch betonen, dass der Flaschenhals gar kein so schlimmer ist ... das Open macht keinerlei Probleme!
Zitat:
Und selbst wenn die Daten dann endlich vorliegen, ist ein Umsortieren in deiner Anwendung nicht sinnvoll, bei so vielen Daten.
Das zu beurteilen, ohne zu wissen, worum es geht, halte ich für sehr gewagt!
Zitat:
Deshalb auch mein Versuch mit dem eingeschränkten Fetch. Dann kann der Benutzer anfangen zuarbeiten, wieso muss er alle 500000 Datensätze sehen, reicht es nicht wenn er sie bearbeiten kann?
Wow! Message angekommen? Es geht nicht um Einzelsatzbearbeitung, sondern um intelligente Massenbearbeitung.
Die Bearbeitung besteht unter anderem darin, durch raffinierte Umsortierung und passende Filterung einen ganzen Schwall von Sätzen auf einmal bearbeiten zu können. Welches die passende Sortierung bzw. Filterung ist, wird aber kein Computer dieser Welt bestimmen können, sondern dafür braucht es ein bisschen Sachverstand und eben auch eine Sichtprüfung, sonst geht gar nichts!
Ganz abgesehen davon, habe ich auch schon mehrfach betont, dass 500000 eher die Ausnahme sind, auch wenn sie vorkommen können.
Zitat:
Realisiere die Sortierung über einzelne, neue Abfragen und nicht über deine Anwendung. Das bringt bei dieser Datenmenge einfach keinen Vorteil, da bist du schneller im Swap als dir lieb ist und dann wird es richtig langsam.
Auch das ist nicht richtig! Ich bin nicht im Swap und gerate auch nicht in den Swap, sondern die Anwendung wird sogar schneller ab der zweiten Verwendung einer jeden möglichen Sortierung. Sinnvoll wäre es, bereits bei der ersten Sortierung die ja bereits vorhandenen Indizes verwenden zu können ... es ist mehr als ärgerlich, dass die Anwendung immer zum Programmstart erst einmal langsam ist (wohlgemerkt, NACH dem Open) ... das ist einfach so!
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#84

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 08:19
Zitat von globetrotter77:
Zitat von omata:
Das ist aber egal, Indiezes sind innerhalb der Datenbank vorhanden und werden nur von dieser benutzt.
Also mit Verlaub, das halte ich für nen ziemlichen Unfug! Natürlich gibt es Sinn, einen vorhandenen Index gezielt zu nutzen, wenn man der Einzige ist, der weiß, wozu dieser Index angelegt wurde.
Mehrfache Wiederholung macht eine Aussage nicht richtig (ich rufe mal zurück, wie es reinschallt )
Der Index ist IN der Datenbank, er bleibt IN der Datenbank, er wird verwendet VON der Datenbank. Das einzige, was bei einem Index unter Deiner Kontrolle liegt ist die Definition des Index, das habe ich aber auch schon vor ein paar Tagen geschrieben. ein Index wird in keinem RDBMS der WElt direkt angesprochen, wie soll den das SQL dafür aussehen?
SQL-Code:
select UserID, Name, Vorname from Users
where UserID > 10
order by Name
using INDEX MybestSortIndex
Ne, so nicht.

Sherlock
Oliver
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#85

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 11:49
@Sherlock:

Selbstverständlich gibt es in anderen Welten Möglichkeiten, sich das auszusuchen, wenn auch mit einer anderen Syntax, vielleicht sogar bei Firebird, das habe ich aber noch nicht herausgefunden.
Aber auch das ist es ja nicht, was ich will.

Doch langsam, aber sicher, bin ich es leid, noch mal zu erklären, was ich meine, wenn ich mich hinterher wieder so blöd anreden lassen darf.
Ich werde es schon noch rausfinden.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#86

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 12:10
Um meinen Horizont zu erweitern, wäre ich dankbar für ein Beispiel. Ehrlich. Ich hab ja nur mit Oracle und Ingres zu tun gehabt bisher. Da gibt es sowas halt nicht.

Sherlock
Oliver
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#87

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 12:16
@Sherlock:

Wie bitte? Gerade bei Oracle gibt es doch z.B. die Möglichkeit, mit Hints zu arbeiten.
Kennst du die echt nicht? Ein echter Sherlock sollte doch ALLEN Hints nachgehen!
Um nicht falsch verstanden zu werden, ich bin nicht der Meinung, dass die immer nur toll sind, aber es geht sehr wohl.
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#88

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 12:19
ich habe den Artikel zwar nicht komplett gelesen, aber hier wirst du vielleicht fündig:
Hints für Oracle
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#89

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 12:22
und noch ein Link zum Thema bei Wiki:
Hints (SQL)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#90

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 4. Feb 2009, 12:33
OHA! Danke für die Erleuchtung!

Und damit klappt das in Firebird nicht?

Sherlock
Oliver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 10   « Erste     789 10      


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 00:34 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