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?
ü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?
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.