collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 64
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 7
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13804
  • stats Beiträge insgesamt: 63512
  • stats Themen insgesamt: 8606
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Ablaufverfolgung?  (Gelesen 99 mal)

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 674
Ablaufverfolgung?
« am: November 27, 2017, 11:47:49 »
Hallo,

gibt es bei Access die Möglichkeit einer Ablaufverfolgung? Manche Fenster öffnen bei mir sehr langsam. Klicke ich auf ein Feld wo eine Ereignisprozedur bei Klick einen Datensatz in einem Fenster anzeigen soll, bekomme ich für 3-5 Sekunden das Mausrad angezeigt. Ich habe keine Ahnung, was Access in dieser Zeit macht.

Kann ich mir das irgendwie anzeigen lassen? Mit Haltepunkt und F8 komme ich nicht weiter, weil dadurch sowieso alles verzögert wird und man dadurch die Quelle nicht feststellen kann.

LG
datekk
 

Online DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23091
Re: Ablaufverfolgung?
« Antwort #1 am: November 27, 2017, 12:11:26 »
Hallo,

zeige mal die aufrufende Ereignisprozedur und den SQL-String (der Abfrage)  aus der Datenherkunft des Forms.

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Ablaufverfolgung?
« Antwort #2 am: November 27, 2017, 12:12:43 »
Hallo,
wahrscheinlich liegt es an der zu Grunde liegenden Datenquelle.
Zeige mal die Abfrage und wenn der VBA Code nicht geheim ist, könnte der auch hilfreich sein.  8)
Gruß
Klaus
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 819
Re: Ablaufverfolgung?
« Antwort #3 am: November 27, 2017, 12:21:22 »
Zitat
Ich habe keine Ahnung, was Access in dieser Zeit macht.

Wäre es schlimm, wenn es das tut, was Du programmiert hast?

Lange Laufzeiten resultieren daraus, dass viel Aufwand (für die Maschine) getrieben werden muss. Was erzeugt viel Aufwand:
- Bedingte Formatierung
- sehr viele Steuerelemente
- laufende Hintergrundverarbeitungen (Objektnamenautokorrektur eíngestellt, Unterdatenblätter eingestellt u.a.)
- das Ausführen von Berechnungen in Codes und für Einzelsteuerelemente
- VOR ALLEM aber Abfragen, die Datenherkünfte für Formular und Steuerelemente (Listenfeld, Kombinationsfeld, Unterformular) liefern. Dazu zählen dann auch die Unzahlen an verwendeten Domänenaggregatfunktionen, die für sich jeweils eine ganze Abfrage ausführen und daraus nur einen Einzelwert liefern.

Nun hat man vielleicht schon gemerkt: Abfrage ist nicht gleich Abfrage. Das bemerkt man bezüglich Laufzeit dann sehr schnell, wenn größere Datenmengen bewegt werden.
Also käme es darauf an, seine gesamten Abfragen nicht irgendwie zusammenzuklopfen und zu -klicken, sondern jede einzelne in Richtung Optimum zu bewegen. Das ist u.a. das Urgeschäft eines Datenbankentwicklers und Dir sicher wohlvertraut.

Bezüglich Ablaufverfolgung: Diese müsste man selber programmieren (Logeinträge mit Zeitstempel zu jedem Arbeitsschritt schreiben), allerdings wird man da ein umständliches DomWert in einem Textfeldinhalt nicht erfassen wie auch anderes nicht.

Also schau Dir alles an, was Daten liefert und anzeigt.
Wenn Du das ausgereizt hast, kannst Du Dich mit Formularperformance beschäftigen, z.B. Daten erst dann zu holen, wenn sie benötigt/angezeigt werden statt alles gleich bei Formularstart zu laden. Es gibt dazu ein Script von Josef Pötzl im AEK-Downloadbereich.
Mit freundlichem Glück Auf!

Eberhard
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1600
Re: Ablaufverfolgung?
« Antwort #4 am: November 27, 2017, 12:55:09 »
Hallo datekk,
Zitat
Mit Haltepunkt und F8 komme ich nicht weiter, weil dadurch sowieso alles verzögert wird und man dadurch die Quelle nicht feststellen kann.
Also wenn man genau aufpasst kann man damit schon auch was erkennen.
Bei Zeilen mit Datenoperationen (Abfragen) merkt man es schon, wenn
diese sehr langsam sind. Auch die Laufzeit von Schleifen lässt sich abschätzen.
Dazu setzt du, wenn die erste Zeile (For.../Do...) markiert ist, den Cursor in
die erste Zeile hinter der Schleife und verwendest Strg-F8.
Da solltest du schon die grössten Übeltäter finden.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6940
Re: Ablaufverfolgung?
« Antwort #5 am: November 27, 2017, 13:42:17 »
Hallo,
wenn man die hinterlegte Prozedur und/oder Abfrage nicht kennt, ist das nur Raten.
Gruß
Klaus
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 674
Re: Ablaufverfolgung?
« Antwort #6 am: November 27, 2017, 14:37:11 »
Wow, so viele Antworten. Besten Dank erstmal. Dennoch muss man meine eigentliche Frage dann wohl mit Nein beantworten - eine Ablaufverfolgung scheint es nicht zu geben. Wer meine Posts kennt weiß, dass meine Datenquellen auf einem SQL Server liegen. Die Daten liefert eine programmierte Prozedur, welche immer nur den Datensatz liefert, der auch angefordert worden ist. Meine Formulare scheinen nicht sonderlich kompliziert, ich schau mir aber nochmal die verbundenen UFOs an. Ich dachte, es gibt irgendwas wie den SQL Profiler, wo man genau schauen kann, was passiert.
 

Online PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 248
    • Tipps zu Access, VBA, SQL und Co.
Re: Ablaufverfolgung?
« Antwort #7 am: November 27, 2017, 15:05:19 »
Zitat
Ich dachte, es gibt irgendwas wie den SQL Profiler, wo man genau schauen kann, was passiert.
Den SQL-Profiler wollte ich gerade anführen. - Die allermeisten, bzw. gravierendsten Performanceprobleme resultieren, wie hier bereits mehrfach angemerkt, aus ineffizienten bzw. unnötig häufigen Abfragen auf die Daten. Genau diese kannst du mit den Profiler wunderbar nachvollziehen.