![]() |
Re: ClientDataSet - wie kann man Indizes verwenden?
sage ich doch!
mit dem Ergebnis beim Open bin ich durchaus zufrieden ... :-D 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? |
Re: ClientDataSet - wie kann man Indizes verwenden?
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.
|
Re: ClientDataSet - wie kann man Indizes verwenden?
Zitat:
Zitat:
Zitat:
Zitat:
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:
|
Re: ClientDataSet - wie kann man Indizes verwenden?
Zitat:
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:
Ne, so nicht.
select UserID, Name, Vorname from Users
where UserID > 10 order by Name using INDEX MybestSortIndex Sherlock |
Re: ClientDataSet - wie kann man Indizes verwenden?
@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. |
Re: ClientDataSet - wie kann man Indizes verwenden?
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 |
Re: ClientDataSet - wie kann man Indizes verwenden?
@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! :-D Um nicht falsch verstanden zu werden, ich bin nicht der Meinung, dass die immer nur toll sind, aber es geht sehr wohl. |
Re: ClientDataSet - wie kann man Indizes verwenden?
ich habe den Artikel zwar nicht komplett gelesen, aber hier wirst du vielleicht fündig:
![]() |
Re: ClientDataSet - wie kann man Indizes verwenden?
|
Re: ClientDataSet - wie kann man Indizes verwenden?
OHA! Danke für die Erleuchtung!
:shock: Und damit klappt das in Firebird nicht? :wall: Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 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