Suche in ODBC Tabelle

Hallo,

ich habe eine Tabelle in einer PostgreSQL-DB im Netz liegen und greife auf diese über ein Access Frontend (über ODBC) zu. Wenn ich in dieser Tabelle (ca. 13.000 Datensätze) über die die normale “Access-Suche” eine Suche absetze dauert das ewig lange.
Kann ich da noch etwas an den Einstellungen von ODBC in Access ändern, damit ich mehr Performanz bei der Suche bekomme? Gibt es noch andere Wege, eine höhere Performanz zu erreichen?

Vielen Dank für Tipps,
ebmsushi

Ich vermute mal, Access holt sich zuerst alle Datensätze aus der Datenbank und sucht dann in den Daten lokal?

Du könntest also ein vernünftiges Frontend verwenden … oder die Konfiguration der Datenbank verbessern.

Also eher sehr wenige Datensätze.

über die die normale “Access-Suche” eine Suche absetze dauert das ewig lange.

Keine Ahnung, was eine normale Access-Suche ist und auch keine Ahnung, was Du unter ‘ewig’ verstehst. Eine Suche in solch einer Minitabelle dauert selbst bei einem Seq-Scan nur Millisekunden. Oder weniger.

Demo:

Eine Tabelle mit ca. 318.000 Datensätzen, Seq-Scan:

test=*# explain select * from words where w = 'Datenbank';
                       QUERY PLAN
---------------------------------------------------------
 Seq Scan on words  (cost=0.00..5657.55 rows=1 width=13)
   Filter: (w = 'Datenbank'::text)
(2 Zeilen)

Zeit: 0,303 ms
test=*# select count(1) from words;
 count
--------
 318924
(1 Zeile)

Vermutlich ist also Dein “Access” kaputt.

Was erzeugt es denn auf PG-Seite für eine Abfrage?

Andreas

Also unter normaler Access-Suche verstehe ich folgendes:
Ich öffne eine durch ODBC verknüpfte Tabelle, dann betätige ich den Button der so aussieht wie ein Fernglas - es öffnet sich ein Fenster mit der Überschrift “Suchen und Ersetzen”. Hier gibt es zwei Reiter (nämlich “Suchen” und “Ersetzen”).
Suche ich nach Einträgen, die gerade im sichtbaren Ausschnitt der Tabelle zu sehen sind dauert es nur Millisekunden bis der Eintrag gefunden wird.
Suche ich nach Einträgen die ganz am anderen Ende der Tabelle außerhalb des aktuell sichtbaren Bereichs sind, dauert die Suche mehrere Minuten.

Woran liegt das? Kann man das optimieren?

Nichts davon habe ich je in PostgreSQL gesehen.

Andreas

Habe ich bereits weiter oben beschrieben.
Access ist der Meinung, die Arbeit selbst machen zu müssen anstatt das der Datenbank zu überlassen.

Kann man das optimieren?

Ja, ein anderes Programm verwenden.