Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Gibt es eigentlich eine Möglichkeit, innerhalb eines DataDictionary so eine Art "Debug-Modus" zu aktivieren, der die Ausführungszeiten von SQL Statements protokolliert?
Im einfachsten Fall könnte eine Tabelle mit 2 Spalten gefüllt werden: 1) Das Statement als Memo-Feld, 2) die Ausführungszeit in Millisekunden
Könnte ich dies in ein DataDictionary integrieren?
Uli
Im einfachsten Fall könnte eine Tabelle mit 2 Spalten gefüllt werden: 1) Das Statement als Memo-Feld, 2) die Ausführungszeit in Millisekunden
Könnte ich dies in ein DataDictionary integrieren?
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Hallo Uli !
Eventuell muss man das nur aktivieren
Ist das beim ADS nicht schon "serienmäßig" dabei?Gibt es eigentlich eine Möglichkeit, innerhalb eines DataDictionary so eine Art "Debug-Modus" zu aktivieren, der die Ausführungszeiten von SQL Statements protokolliert?
Eventuell muss man das nur aktivieren
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Und? Wie geht das?HaPe hat geschrieben: ↑Mi, 21. Mär 2018 12:26 Hallo Uli !Ist das beim ADS nicht schon "serienmäßig" dabei?Gibt es eigentlich eine Möglichkeit, innerhalb eines DataDictionary so eine Art "Debug-Modus" zu aktivieren, der die Ausführungszeiten von SQL Statements protokolliert?
Eventuell muss man das nur aktivieren
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Hallo Uli !
Meine zwei verwendeten SQL-Server ($MS-SQL und PostGreSQL) können das und ich gehe davon aus dass das bei jedem SQL-Server möglich ist
Der erste Google-Treffer mit +ads +sql-log bringt mir das:
http://devzone.advantagedatabase.com/dz ... y=42&ID=45
Da ich kein ADS einsetze kann ich dir das nicht sagen wo man was einstellen mussUnd? Wie geht das?Ist das beim ADS nicht schon "serienmäßig" dabei?
Eventuell muss man das nur aktivieren
Meine zwei verwendeten SQL-Server ($MS-SQL und PostGreSQL) können das und ich gehe davon aus dass das bei jedem SQL-Server möglich ist
Der erste Google-Treffer mit +ads +sql-log bringt mir das:
http://devzone.advantagedatabase.com/dz ... y=42&ID=45
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Danke, aber warum rollst du andauernd mit den Augen?
Ich schaue mir das nachher an.
Uli
Ich schaue mir das nachher an.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- nightcrawler
- 1000 working lines a day
- Beiträge: 656
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 97 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
EXECUTE PROCEDURE sp_EnableQueryLogging(....)
kostet aber Performance und sollte nicht einfach so eingesetzt werden.
kostet aber Performance und sollte nicht einfach so eingesetzt werden.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
So, ich habe jetzt das Messen bei SQL Queries hinbekommen. Dazu muß man im DataDictionary eine Tabelle mit folgenden Spalten anlegen:
Anschließend kann man mit
das Logging aktivieren und z.B. sich das Ergebnis mit
anschauen.
Code: Alles auswählen
Create Table SqlLogging(
"ID" Autoinc /* unique key for the query */,
"Start Time" Timestamp /* Query start timestamp */,
"Optimized" Logical /* True if optimized */,
"Return Code" Integer /* Query result code */,
"Rows Affected" Integer /* Rows affected by the query */,
"End Time" Timestamp /* Query end timestamp */,
"Run Time" Double /* Query duration in milliseconds */,
"Database" Char(255) /* Database name */,
"User Name" Char(100) /* Connected user name */,
"Connection Name" Char(100) /* Connection name */,
"Application ID" Memo /* Application ID */,
"Query" Memo /* The SQL statements */
)
Code: Alles auswählen
execute procedure sp_EnableQueryLogging(
'SqlLogging'/*TableName*/,TRUE/*TruncateExistingData*/,
FALSE/*LogOnlyUnoptimizedQueries*/,0/*MinimumTimeBeforeLogging*/,
''/*EncryptionPassword,C20*/ )
Code: Alles auswählen
select SL."Start Time",SL."Run Time",Left(SL.Query,50) Query50,SL.Query,SL.Description
from SqlLogging SL
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Ach ja, und mit
kann man das Logging wieder ausschalten
Code: Alles auswählen
execute procedure sp_DisableQueryLogging();
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Kann man auch die Rechenzeit von Locate, skip, oder gotop Befehlen protokollieren?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- nightcrawler
- 1000 working lines a day
- Beiträge: 656
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 97 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
zwei Sachen: Die Log-Tabelle legt ADS selbst an, falls sie nicht vorhanden ist.
auf ISAM-Befehle gibt es nur ein Debugging, welches jeden API Befehl in eine Datei schreibt, aber keine richtige Auswertung (und ist extremmmmmm langsam).
auf ISAM-Befehle gibt es nur ein Debugging, welches jeden API Befehl in eine Datei schreibt, aber keine richtige Auswertung (und ist extremmmmmm langsam).
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Hallo Uli !
download/file.php?id=2900
So mache ich es auch in meinem Message-Manager (in VFP). Das Protokollieren kann ich in der INI-Datei aktivieren und deaktivieren.
Ich würde dafür auf Client-Seite den HRTimer (QueryPerformanceCounter/Frequency) einsetzen und damit protokollieren.Kann man auch die Rechenzeit von Locate, skip, oder gotop Befehlen protokollieren?
download/file.php?id=2900
So mache ich es auch in meinem Message-Manager (in VFP). Das Protokollieren kann ich in der INI-Datei aktivieren und deaktivieren.
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Zeitberechnung zur Ausführung von SQL Statements, Debug-Modus?
Hallo Hans-Peter,
mit HRTimer habe ich auch schon gearbeitet. Damit komme ich -falls Zeit vorhanden- wahrscheinlich auch weiter.
Ich habe mal auf meinem Rechner das SqlLogging eingeschaltet. Bei einem Statement kommt als Ergebnis 812ms (Run Time) heraus. Die Zeit wäre an sich ok. Aber es ist trotzdem viel langsamer. Aber bei Start Time kommt 13:03:52 und bei End Time kommt 13:04:03 heraus. Das ist eine Differenz von 11000ms, was eindeutig zu viel ist.
Interpretiere ich die Werte falsch?
Edit: ja, habe ich. Die Differenz ist nicht die Zeit, die zur Berechnung des SqlStatements nötig war, sondern die Zeit, bis das Statement wieder geschlossen wurde...
mit HRTimer habe ich auch schon gearbeitet. Damit komme ich -falls Zeit vorhanden- wahrscheinlich auch weiter.
Ich habe mal auf meinem Rechner das SqlLogging eingeschaltet. Bei einem Statement kommt als Ergebnis 812ms (Run Time) heraus. Die Zeit wäre an sich ok. Aber es ist trotzdem viel langsamer. Aber bei Start Time kommt 13:03:52 und bei End Time kommt 13:04:03 heraus. Das ist eine Differenz von 11000ms, was eindeutig zu viel ist.
Interpretiere ich die Werte falsch?
Edit: ja, habe ich. Die Differenz ist nicht die Zeit, die zur Berechnung des SqlStatements nötig war, sondern die Zeit, bis das Statement wieder geschlossen wurde...
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück