Office: (Office 2007) Beschleunigung einer Abfrage

Helfe beim Thema Beschleunigung einer Abfrage in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; ...was mir jetzt schnell mal aufgefallen ist... wozu ist die Gruppierung gut? Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Toffel13, 6. Juni 2015.

  1. Beschleunigung einer Abfrage


    ...was mir jetzt schnell mal aufgefallen ist...
    wozu ist die Gruppierung gut?
     
    Kyron9000, 11. Juni 2015
    #46
  2. Hm, das muss versehentlich wieder reingeraten sein. In der "Original"-Abfrage fehlt sie allerdings, obwohl ich sie anfangs eigentlich drin hatte. Kommt vermutlich von der ganzen Rumprobiererei. Ursprünglich diente die Gruppierung zur Vermeidung von Mehrfacheinträgen, was ich aber dann nach #31 mit SELECT DISTINCT ersetzt habe. Einen großen Zeitunterschied hat die Gruppierung allerdings auch nicht gemacht.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Toffel13, 11. Juni 2015
    #47
  3. na gut, was du mit den zusammengesetzten Felder vorhast, wird wohl nur dir bekannt sein.
    Die Abfrage schneller anzeigen wolltest haben und das ist jetzt auch so.

    Dann wünsche ich dir noch alles Gute und viel Erfolg mit deiner DB.
     
    Kyron9000, 11. Juni 2015
    #48
  4. Beschleunigung einer Abfrage

    Interessehalber würde mich interessieren, ob die folgende SQL-Anweisung bei etwas mehr Datensätzen besser läuft.

    Code:
    Wichtig beim Ausprobieren: nicht in die Entwurfsansicht wechseln, sonst "optimiert" Access wieder.

    Den Test bitte auch mit folgenden zusätzlichen 2-Felder Indizes ausprobieren:
    * tblEinzelteileArtikelnummern: 2er-Index über einzartnrEinzID und ausfID
    * tblEinkaufsteile-Materialien]: 2er-Index über einkmatEinkID und einkmatMatID (eventuell auch in umgekehrter Reihenfolge)


    Ausgabe von JetShowPlan:
    Code:
    Code:
    => Jet optimiert sich die Abluafreihenfolge selbst, egal, wie man die Join-Reihenfolge setzt.
    Zum Ausprobieren wäre jetzt eventuell noch, ob es hilft, wenn man Left Join einsetzt.

    mfg
    Josef
     
    Josef P., 11. Juni 2015
    #49
  5. Nächster Test:
    Auftragstabelle mit Subselect vorfiltern, um Jet dazu zu überreden mit dieser Tabelle zu starten:

    SQL:
    Code:
    Showplan:
    Code:
    Diese Variante läuft in der Test-db ca. doppelt so schnell wie die Original-Variante.
     
    Josef P., 11. Juni 2015
    #50
  6. Guten Morgen,

    mhm, das habe ich damit gemeint...
    Ich habe aber keine Ahnung, wie ich die Geschwindigkeit einer Abfrage testen kann.
    Mit freiem Auge ist das ja nicht feststellbar, dadurch habe ich es auch nicht mehr in Erwägung gezogen.
    Finde ich schon bemerkenswert!
     
    Kyron9000, 11. Juni 2015
    #51
  7. Der Geschwindigkeitsvergleich ist bei der kurzen Ausführungszeit natürlich mit Vorsicht zu sehen.
    Getestet habe ich das so:

    (Luftcode)
    Code:
    Wichtig bei der SQL-Anweisung ist übrigens die letzte Left-Join-Anweisung.
    Verwende ich dafür INNER JOIN kommt trotz Unterabfrage wieder ein ähnlicher Ablaufplan wie von der Original-SQL-Anweisung heraus.

    mfg
    Josef
     
    Josef P., 11. Juni 2015
    #52
  8. Beschleunigung einer Abfrage

    Hallo Josef,

    danke für deine Vorschläge.

    Ich habe gerade versucht, einen Index über zwei Felder zu erstellen. Dazu muss ich wohl für das eine Feld einen Namen für den Index vergeben und das andere direkt darunter und ohne Indexnamen angeben. Erkennt Access dann, dass beide Felder zum selben Index gehören?

    Steffen
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Toffel13, 11. Juni 2015
    #53
  9. Ja, das passt schon.
    Bei Mehrfelder-Indizes muss in der Maske nur der Index-Name leer bleiben.

    mfg
    Josef
     
    Josef P., 11. Juni 2015
    #54
  10. Dein Vorschlag aus #49 dauert mit beiden Indices ca. 6,5 sec. Seltsamerweise ging es direkt nach dem Erstellen der Indices unter 1 sec. Der andere Vorschlag aus #50 dauert gut 3 sec.

    Der Code aus #32 mit den entfernten Tabellen und allen Filtern unter Having sieht jetzt so aus und läuft wie erwähnt unter 1 sec.:

    Code:
    Grüße
    Steffen
     
    Toffel13, 11. Juni 2015
    #55
  11. Noch mal ein Test:
    Wenn ich die drei Tabellen (tblDichteangaben, tblEinkaufsteile und tblEinkaufsteile-Materialien) entferne, dauert #49 fast doppelt so lange wie mit den Tabellen, ca. 12,5 sec. #50 geht deutlich schneller, nach meinem Empfinden sogar schneller als #55.

    Steffen
     
    Toffel13, 11. Juni 2015
    #56
  12. Damit beeinflusst du die Datenmenge.

    Hauptbedingung zum Gestalten eine Abfrage ist das Wissen über das gewünschte Ziel und die Kenntnis über die Tabellenstruktur um das Ziel zu erreichen.

    Wenn du irgendwelche Tabellen weg lässt und andere Datenmengen als Ergebnis erhältst, sind diese Abfragen nicht mit den anderen Abfragen vergleichbar.
    Welche Tabellen du benötigst, musst du aber selbst wissen. *Smilie

    Ich wollte damit einen Ausführungsplan erreichen, der von Anfang an die Datenmenge auf den jeweiligen Auftrag reduziert, da ich davon ausging, das es viele Aufträge gibt, aber in einem Auftrag nicht tausende Bestellungen vorkommen werden usw.
    Allerdings muss man Jet "überreden", um das auch so durchzuführen.

    BTW:
    Dein Datenmodell ist nicht leicht durchschaubar. Ich lese daraus eine Varianten-Stückliste heraus. Die hätte ich vermutlich etwas anderes gestaltet bzw. bin es anders gewöhnt, daher ist es für mich etwas schwer zu erkennen, was du mit deiner Abfrage eigentlich vor hast und welche Tabellen wirklich benötigt werden.

    mfg
    Josef
     
    Josef P., 12. Juni 2015
    #57
  13. Beschleunigung einer Abfrage

    Hallo Alfred,

    vermutlich hatte ich das gemacht, um die Felder in Formularen und Berichten nicht jedes Mal neu zusammensetzen zu müssen.

    Dankeschön. *Smilie

    Steffen
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Toffel13, 12. Juni 2015
    #58
  14. Ich wollte die Abfragen mit der anderen optimierten Abfrage vergleichen. Der Zeitgewinn ist enorm, wenn man bedenkt, dass bei deinen Codes alle Tabellen enthalten sind.

    Es soll der Zeitbedarf zur Herstellung der Einzelteile ermittelt werden, der nötig ist, um die von einem Kunden bestellten Baugruppen zu fertigen. Daher muss man m. E. die Tabellen der Kunden, Aufträge, bestellten Baugruppen, der Baugruppen selbst, deren Ausführungen, Einzelteile, Materialien und Arbeitsleistungen mit einbeziehen. Also praktisch einmal quer durch die DB. Interessant wird es dann, wenn die Arbeitsleistung mal von der Masse der Einzelteile und mal vom Zeitaufwand abhängt und wenn die Ausführung eigentlich vom Grundmaterial der Einzelteile bestimmt wird, in einem Fall aber das Material der anderen Ausführung verwendet werden soll. Oder wenn es ein bestimmtes Einzelteil für beide Ausführungen nicht mit den gleichen Abmessungen gibt. Dann entsteht plötzlich eine neue Baugruppe mit anderen Einzelteilen, wobei sich auch die Abmessungen anderer Einzelteile ändern. *Smilie
    Aus diesen Gründen waren einige zusätzliche Verknüpfungen nötig, die die ganze Struktur etwas komplexer gemacht haben.

    Steffen
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Toffel13, 12. Juni 2015
    #59
Thema:

Beschleunigung einer Abfrage

Die Seite wird geladen...
  1. Beschleunigung einer Abfrage - Similar Threads - Beschleunigung Abfrage

  2. Suchfunktion beschleunigen

    in Microsoft Word Hilfe
    Suchfunktion beschleunigen: Hallo, ich habe ein sehr großes Word-Dokument in dem ich sehr oft suche. Die Suche starte ich i.d.R. vom Anfang des Dokuments weil ich dann sehr häufig eine Fundstelle direkt im Inhaltsverzeichnis...
  3. Word beschleunigen bei großen Dokumenten

    in Microsoft Word Hilfe
    Word beschleunigen bei großen Dokumenten: Hallo, obwohl ich einen recht schnellen Rechner mit 16 GB RAM habe, kommt Word 2019 bei einem sehr großen Dokument (500 S.) an seine Grenzen. Beispielsweise erscheinen die Buchstaben beim tippen...
  4. Beschleunigung von Arrayformeln

    in Microsoft Excel Hilfe
    Beschleunigung von Arrayformeln: Hallo Community, ich habe eine Datei in Excel 2016 (dienstlich) erstellt, in der die Berechnungen vermutlich durch Nutzung von Arrayformeln sehr langsam durchgeführt werden. Privat nutze ich...
  5. Beschleunigen des ROI mit Business Intelligence

    in Microsoft Excel Tutorials
    Beschleunigen des ROI mit Business Intelligence: Beschleunigen des ROI mit Business Intelligence Excel 2019 Excel 2016 Mehr... Weniger Die Analyse von...
  6. Ladezeiten Webbrowsersteuerelement beschleunigen.

    in Microsoft Access Hilfe
    Ladezeiten Webbrowsersteuerelement beschleunigen.: Hallo , Und danke für die Aufnahme in dieses Forum. Nun zu meiner Frage. In einem Formular verwende ich ein Webbrowsersteuerelement um ein Pdf Dokument anzuzeigen. Der Pfad zu der Datei wird aus...
  7. Ativitätensuche in Kontakt beschleunigen

    in Microsoft Outlook Hilfe
    Ativitätensuche in Kontakt beschleunigen: Ich verwende Outlook 2010 auf einem älteren Notebook. Habe ca. 6.000 Kontakte drinnen. Ich öffne einen Kontakt. Klicke im Ribbon auf "Aktivitäten" Wähle bei Anzeigen "E-Mail" Im Fenster wird...
  8. Verweis Formel entschlacken und beschleunigen

    in Microsoft Excel Hilfe
    Verweis Formel entschlacken und beschleunigen: Hey Leute, da ich mal wieder mit Excel-Tabellen um mich schmeiße, bin ich leider wieder an ein Problem gestoßen wo die Hardware nicht so richtig hinterher kommt! Ich habe zwei Listen wobei ich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden