Abfrageoptimierung

26/11/2008 - 08:54 von Anonymous | Report spam
Hallo NG!

Ich muss eine komplexe Abfrage erstellen, die im momentanen Stand
einfach viel zu lange (mehrere) Minuten dauert und suche daher nach
Möglichkeiten zur Optimierung.
Ich versuche mal die Rahmenbedingungen darzustellen, vielleicht habt
ihr ja ein paar Tips für mich.

Ausgangspunkt ist eine Tabelle "Stat" mit Statistik-Datensàtzen.
Aus dieser sollen prinzipiell Datensàtze eines bestimmten
Datumsbereiches selektiert werden.

Zudem gibt es eine zweite Tabelle "KZ", die ebenfalls Datensàtze
enthàlt, auf deren Basis die Selektion der Tabelle "Stat"
eingeschrànkt UND erweitert werden soll (Erlàuterung folgt gleich).

Beide Tabellen sind nicht "direkt" miteinander verknüpft, enthalten
aber gleichartige "Fremdschlüsselfelder" (Projekt, Adresse,
Belgnummer). Die Tabelle "KZ" enthàlt zudem je ein Feld für das Datum
und ein Kennzeichen.

1) Es sollen Datensàtze aus der Tabelle Stat ausgeschlossen werden,
die zwar im angegebenen Datumsbereich liegen, aber für die (über
Adresse/Projekt/Belegnummer) in der Tabelle "KZ" Datensàtze mit einem
speziellen Kennzeichen existieren, die außerhalb des Datumsbereich
liegen.

2) Es sollen Datensàtze aus der Tabelle Stat zusàtzlich eingeschlossen
werden, die außerhalb des angegebenen Datumsbereich liegen, aber für
die (über Adresse/Projekt/Belegnummer) in der Tabelle "KZ" Datensàtze
mit einem speziellen Kennzeichen existieren, die innerhalb des
Datumsbereich liegen.

Ich denke, der Teil 2 ist jener, der die Performance herunterreißt, da
dieser ja prinzipiell erstmal wieder alle Datensàtze aus der Tabelle
"Stat" relevant macht, egal in welchem Datumsbereich diese liegen.

Gibt es irgendwelche Ansàtze zur Optimierung?
Welcher Felder sollten indiziert werden? (die "Fremdschlüssel" sind
das bereits)
Lohnt sich der Einsatz von indizierten Sichten?
Wenn ja, wie sollten die prinzipiell aufgebaut sein und wie sollten
die Indizes vergeben werden?


Mit freundlichen Grüßen
Daniel Barisch
 

Lesen sie die antworten

#1 Henry Habermacher
26/11/2008 - 09:08 | Warnen spam
Hallo Daniel

Daniel Barisch wrote:
1) Es sollen Datensàtze aus der Tabelle Stat ausgeschlossen werden,
die zwar im angegebenen Datumsbereich liegen, aber für die (über
Adresse/Projekt/Belegnummer) in der Tabelle "KZ" Datensàtze mit einem
speziellen Kennzeichen existieren, die außerhalb des Datumsbereich
liegen.

2) Es sollen Datensàtze aus der Tabelle Stat zusàtzlich eingeschlossen
werden, die außerhalb des angegebenen Datumsbereich liegen, aber für
die (über Adresse/Projekt/Belegnummer) in der Tabelle "KZ" Datensàtze
mit einem speziellen Kennzeichen existieren, die innerhalb des
Datumsbereich liegen.

Ich denke, der Teil 2 ist jener, der die Performance herunterreißt, da
dieser ja prinzipiell erstmal wieder alle Datensàtze aus der Tabelle
"Stat" relevant macht, egal in welchem Datumsbereich diese liegen.



DAs hàngt davon ab, von welcher Seite begonnen wird. Wenn zuerst die
Datensàtze der Tabelle KZ ermittelt werden und dann mit den gefundenen
Adresse/Projekt/Belegnummer Feldern auf die Tabelle Stat zugegriffen wird,
dann sollte das nicht der FAll sein. Ist über die Felder
Adresse/Projekt/Belegnummer ein Index angelegt?

Wie sieht denn Deine bisherige Abfrage aus und was wie sieht der
Zugriffsplan aus?

Gruss
Henry

Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen