Entwickler-Ecke

Datenbanken - Primärindex / Sekundärindizes


Zemke - Do 31.10.02 14:27
Titel: Primärindex / Sekundärindizes
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 - Do 31.10.02 14: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.


LCS - Fr 01.11.02 08: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


Steffer - Fr 01.11.02 09: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"?


LCS - Fr 01.11.02 16: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


Cashels - Fr 01.11.02 18: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