Wer knechtet eine Tabelle?
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Wer knechtet eine Tabelle?
Moin,
eine Frage, die ich mir immer mal wieder stelle: Wie bekomme ich heraus, wer gerade wie ein Wilder eine Tabelle knechtet?
Wir haben beim meinem Kunden einen ADS laufen, Tabellen darin als FOXCDX, propritärer Zugriff. Und manchmal legen Mitarbeiter den komplett lahm, weil die meinen mitten im allgemeinen Getümmel eines Arbeitstages eine Mega-Auswertung fahren zu müssen. Wenn ich jetzt wüsste wer das ist könnte ich dem mal einen netten Tipp geben (irgend was zwischen Blaues Auge beim ersten Mal und Hand ab im Wiederholungsfall). Nur - wie bekomme ich das raus?
- Der ARC sagt mir zwar, wer alles auf welcher Tabelle rumturnt. Aber nicht wie intensiv.
- Der Ressourcen-Monitor des Servers, auf dem der ADS läuft, sagt mir zwar die Höhe der Lese- und Schreibzugriffe auf einer Tabelle, aber nur gesamt, ohne den User zu unterscheiden.
Was für Möglichkeiten gäbe es sonst noch?
Jan
eine Frage, die ich mir immer mal wieder stelle: Wie bekomme ich heraus, wer gerade wie ein Wilder eine Tabelle knechtet?
Wir haben beim meinem Kunden einen ADS laufen, Tabellen darin als FOXCDX, propritärer Zugriff. Und manchmal legen Mitarbeiter den komplett lahm, weil die meinen mitten im allgemeinen Getümmel eines Arbeitstages eine Mega-Auswertung fahren zu müssen. Wenn ich jetzt wüsste wer das ist könnte ich dem mal einen netten Tipp geben (irgend was zwischen Blaues Auge beim ersten Mal und Hand ab im Wiederholungsfall). Nur - wie bekomme ich das raus?
- Der ARC sagt mir zwar, wer alles auf welcher Tabelle rumturnt. Aber nicht wie intensiv.
- Der Ressourcen-Monitor des Servers, auf dem der ADS läuft, sagt mir zwar die Höhe der Lese- und Schreibzugriffe auf einer Tabelle, aber nur gesamt, ohne den User zu unterscheiden.
Was für Möglichkeiten gäbe es sonst noch?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Marcus Herz
- 1000 working lines a day
- Beiträge: 859
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Wenn die Abfragen als SQL laufen, gibt's ein Register im ARC, wo die einzelnen SQL Befehle mit % Laufzeit angezeigt werden. Schau dir das mal an.
Dazu reichts es ja schon, statt eine Tabele mit USE zu öffnen, diese mit select * from <table> anzuprechen.
PS: Ganz so einfach doch nicht, der SQL Monitor zeigt ja das an, solange das SQL ausgeführt wird. Ist dann die Tabelle mit select .. geöffnet, erscheint dort auch nichts mehr.
Dazu reichts es ja schon, statt eine Tabele mit USE zu öffnen, diese mit select * from <table> anzuprechen.
PS: Ganz so einfach doch nicht, der SQL Monitor zeigt ja das an, solange das SQL ausgeführt wird. Ist dann die Tabelle mit select .. geöffnet, erscheint dort auch nichts mehr.
Gruß Marcus
Den Kopf in den Sand zu stecken verbessert die Welt auch nicht.
Den Kopf in den Sand zu stecken verbessert die Welt auch nicht.
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Hallo Marcus,
leider nein. Alles per Db...()-Funktionen.
Jan
leider nein. Alles per Db...()-Funktionen.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Schreib dir eine LOG File ... wenn das Programm von dir ist
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Moin Hubert,
was soll ich denn da loggen? Es gibt dutzende Programme mit hunderten von Funktionen, die auf mehr als 250 Tabellen zugreifen. Und ich brauch ja nicht DAS da einer drauf zugreift, sondern wie heftig. Würde ich jeden Zugriff loggen wäre die Festplatte sehr schnell sehr voll.
Jan
was soll ich denn da loggen? Es gibt dutzende Programme mit hunderten von Funktionen, die auf mehr als 250 Tabellen zugreifen. Und ich brauch ja nicht DAS da einer drauf zugreift, sondern wie heftig. Würde ich jeden Zugriff loggen wäre die Festplatte sehr schnell sehr voll.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Bertram Hansen
- Foren-Moderator
- Beiträge: 1017
- Registriert: Di, 27. Sep 2005 8:55
- Wohnort: 51379 Leverkusen
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 20 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Hallo Jan,
ich habe mir eine kleine Anzeige über dieses Funktion gebaut. Damit sehe ich welcher User gerade welche Tabelle geöffnet hat. Und ich muss dafür nicht immer den Architekten starten.
EXECUTE PROCEDURE sp_mgGetConnectedUsers()
EXECUTE PROCEDURE sp_mgGetUserTables('AKTUELLER-USER')
Da gibt es noch weitere ADS Funktionen. Vielleicht ist da etwas für dich dabei.
EXECUTE PROCEDURE sp_mgGetConfigMemory()
EXECUTE PROCEDURE sp_mgGetAllTables()
EXECUTE PROCEDURE sp_mgGetActivityInfo()
EXECUTE PROCEDURE sp_mgGetWorkerThreadActivity()
EXECUTE procedure sp_mgGetInstallInfo()
EXECUTE PROCEDURE sp_mgGetTableUsers('AKTUELLER-USER')
ich habe mir eine kleine Anzeige über dieses Funktion gebaut. Damit sehe ich welcher User gerade welche Tabelle geöffnet hat. Und ich muss dafür nicht immer den Architekten starten.
EXECUTE PROCEDURE sp_mgGetConnectedUsers()
EXECUTE PROCEDURE sp_mgGetUserTables('AKTUELLER-USER')
Da gibt es noch weitere ADS Funktionen. Vielleicht ist da etwas für dich dabei.
EXECUTE PROCEDURE sp_mgGetConfigMemory()
EXECUTE PROCEDURE sp_mgGetAllTables()
EXECUTE PROCEDURE sp_mgGetActivityInfo()
EXECUTE PROCEDURE sp_mgGetWorkerThreadActivity()
EXECUTE procedure sp_mgGetInstallInfo()
EXECUTE PROCEDURE sp_mgGetTableUsers('AKTUELLER-USER')
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.
Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Hallo Bertram,
ja, sowas ähnliches habe ich auch gemacht. Allerdings mehr um zu schauen, wer gerade welchen Satz in welcher Tabelle gerade lockt.
Aber die Anzeige, wer auf welcher Tabelle ist, ich hier ja nicht. Ich brauche halt eher eine Mischung aus ARC (der nur liefert "wer ist da gerade drauf?") und Ressourcen-Monitor (der nur liefert "wie heftig wird da gerade von allen gemeinsam drauf rumgerödelt?"). Also ein "Wer rödelt gerade wie stark auf dem ADS allgemein rum"? Bis auf Tabellenebene müsste das (jedenfalls für diesen Zweck) vermutlich gar nicht sein.
Jan
ja, sowas ähnliches habe ich auch gemacht. Allerdings mehr um zu schauen, wer gerade welchen Satz in welcher Tabelle gerade lockt.
Aber die Anzeige, wer auf welcher Tabelle ist, ich hier ja nicht. Ich brauche halt eher eine Mischung aus ARC (der nur liefert "wer ist da gerade drauf?") und Ressourcen-Monitor (der nur liefert "wie heftig wird da gerade von allen gemeinsam drauf rumgerödelt?"). Also ein "Wer rödelt gerade wie stark auf dem ADS allgemein rum"? Bis auf Tabellenebene müsste das (jedenfalls für diesen Zweck) vermutlich gar nicht sein.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- nightcrawler
- 1000 working lines a day
- Beiträge: 653
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: Wer knechtet eine Tabelle?
Hallo Jan,
eingebaut gibt es da nichts. Ähnlich wie Bertram behelfe ich mir beim Suchen nach einem Performance-Leck der SP. Ich speichere dazu alle Ergebnisse bei guter Performance und dann bei schlechter und schaue, wo die Unterschiede im allgemeinen liegen.
eingebaut gibt es da nichts. Ähnlich wie Bertram behelfe ich mir beim Suchen nach einem Performance-Leck der SP. Ich speichere dazu alle Ergebnisse bei guter Performance und dann bei schlechter und schaue, wo die Unterschiede im allgemeinen liegen.