Autor Beitrag
Zemke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83

WIN XP
Delphi 4 Professionell
BeitragVerfasst: Do 31.10.02 13:27 
Ich möchte einer Datenbank einen Sekundärindex hinzufügen ohne daß ein Primärindex vergeben ist. Geht das?

Mein Problem ist, daß Datensätze in einer QuickReport-Liste nach unterschiedlichen Kriterien sortieren werden sollen. Diese werden im Vorfeld über Radio-Buttons ausgewählt (je ein Kriterium).

Das Ergebnis ist eine Liste, in der offene Rechnungen dargestellt werden sollen, sie enthält u.a. die Spalten Auftrag, Name, und Betrag.

Hierbei stellt sich noch ein Problem (Problem wegen Index): Alle Daten, außer Auftrag können doppelt vorkommen.

Wer kann mir helfen?

Gruß
Rainer Zemke
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Do 31.10.02 13:33 
>Ich möchte einer Datenbank einen Sekundärindex hinzufügen ohne daß
>ein Primärindex vergeben ist. Geht das?
Nein, den Primären brauchst du, auch wenn dieser weiter keinen Sinn für die Darstellung deiner Daten hat.

_________________
Keine Signatur ...
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 01.11.02 07:40 
Hi
wenn du den Index nur für die Sortierfolge brauchst, würde ich an deiner Stelle auf den Index verzichten und die Daten stattdessen mit einer SQL Abfrage und der entsprechenden ORDER BY Klausel abrufen.
Jeder zusätzliche Index erzeugt Verwaltungsaufwand innerhalb der Tabelle, sie wird damit langsamer beim Einfügen und Aktualisieren und vor allem bei Paradox-Tabellen empfindlicher (Index-Fehler).

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Fr 01.11.02 08:33 
>wenn du den Index nur für die Sortierfolge brauchst, würde ich an
>deiner Stelle auf den Index verzichten und die Daten stattdessen mit
>einer SQL Abfrage und der entsprechenden ORDER BY Klausel abrufen.

Aber ist nicht gerade dabei eine gut indzierte DB der beste "Beschleuniger"?

_________________
Keine Signatur ...
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 01.11.02 15:08 
Hi
Steffer hat folgendes geschrieben:

Aber ist nicht gerade dabei eine gut indzierte DB der beste "Beschleuniger"?

Das schon, aber an der Stelle musst du wirklich abwägen, wo die Prioritäten liegen. Auf der einen Seite wird die Sortierung beschleunigt und auf der anderen Seite eben die Aktualisierungsvorgänge verlangsamt.
Wenn du eine bestimmte Sortierfolge immer wieder brauchst, ist es sinnvoll dafür einen Index einzurichten. Aber es ist eben nicht sinnvoll, für alle möglichen Spalten Indizes einzurichten nach denen eventuell mal sortiert werden könnte.
Wenn du dann noch Spalten mit relativ wenig unterschiedlichen Werten innerhalb der Tabelle indizierst, erreichst du unter Umständen genau das Gegenteil. :?

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...


Zuletzt bearbeitet von LCS am Sa 02.11.02 10:29, insgesamt 1-mal bearbeitet
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Fr 01.11.02 17:32 
Steffer hat folgendes geschrieben:
Nein, den Primären brauchst du, auch wenn dieser weiter keinen Sinn für die Darstellung deiner Daten hat.


Hi Steffer,

das stimmt so nicht ganz. Primärschlüssel brauchst du nur wenn andere Tabelle auf deine verweisen, also Fremdschlüssel darstellen. Aber du hast natürlich Recht dass prinzipiell immer ein Primärschlüssel vergeben werden soll.

Gruss,
tom