Benutzer mit den meisten Antworten
Größe des Traffics einer Datenbank anzeigen

Frage
-
Hallo zusammen,
ich habe da mal eine Frage.Ist es möglich das ich sehe welche Traffic eine einzelne Datenbank erzeugt ??? (Also wie viel KB insgesamt in Zeitraum X)
Ich möchte hier nicht den Traffic des ganzen SQL Servers sehen, so das WireShark mit Port 1433 Filter an dieser Stelle flach fällt.
Im SQL Profiler habe ich auch keinen Punkt gefunden der mir die Größe eines einzelnen Befehls oder die Gesamtgröße aller Befehle anzeigt.
Wie es z.B.:
SELECT * INTO dbo.temptable FROM [Tabelle] ORDER BY [Name] ASC exec sp_spaceused temptable DROP TABLE temptable
für eine Abfrage macht.
Geht das wie ich es gerne hätte ???
Wenn ja wie ???
Wenn nein eine andere Idee wie ich zum ziel komme oder womit ???Ich habe schon mal gegoogelt aber irgendwie nichts passendes gefunden, alles was ich gefunden habe bezieht sich immer auf den kompletten Server und nicht auf eine einzelne Datenbank.
Ich bedanke mich schon einmal im voraus.
Gruß
Stephan
Antworten
-
Hallo Stephan,
welchen Traffic meinst Du? Den Netzwerkverkehr von und zu einer bestimmten Datenbank?
Falls ja, wage ich zu bezweifeln, dass das irgendwie geht.
Du könntest höchstens einen weiteren TCP Port für die Instanz angeben und dann die Zugriffe auf diese Datenbank nur über diesen Port machen. Hierfür müsstest Du die ConnectionStrings aller Anwendungen, die auf diese DB zugreifen, entsprechend von <Hostname> auf <Hostname>,<Portnummer> anpassen. Den Traffic könntest Du dann wieder mit Wireshark und Co. messen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Andreas.WolterMicrosoft employee Freitag, 3. Juni 2016 16:54
- Als Antwort markiert Stephan Mensing Mittwoch, 8. Juni 2016 09:03
-
Hallo,
der "Traffic" für einzelne Befehle ist nicht gerade das interessanteste, aber machbar ist es über DMVs, hier vor allem Execution Related Dynamic Management Views and Functions (Transact-SQL).
Einstiegspunkt wäre dabei die sys.dm_exec_connections, die die Werte pro Verbindung aufzeichnet.
Allerdings ist ein aussagefähiges Ergebnis nicht in 5 Minuten zusammengeschustert... ;)
Gruß Elmar
- Als Antwort markiert Stephan Mensing Mittwoch, 8. Juni 2016 09:03
Alle Antworten
-
Hallo Stephan,
welchen Traffic meinst Du? Den Netzwerkverkehr von und zu einer bestimmten Datenbank?
Falls ja, wage ich zu bezweifeln, dass das irgendwie geht.
Du könntest höchstens einen weiteren TCP Port für die Instanz angeben und dann die Zugriffe auf diese Datenbank nur über diesen Port machen. Hierfür müsstest Du die ConnectionStrings aller Anwendungen, die auf diese DB zugreifen, entsprechend von <Hostname> auf <Hostname>,<Portnummer> anpassen. Den Traffic könntest Du dann wieder mit Wireshark und Co. messen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Andreas.WolterMicrosoft employee Freitag, 3. Juni 2016 16:54
- Als Antwort markiert Stephan Mensing Mittwoch, 8. Juni 2016 09:03
-
-
Hallo,
der "Traffic" für einzelne Befehle ist nicht gerade das interessanteste, aber machbar ist es über DMVs, hier vor allem Execution Related Dynamic Management Views and Functions (Transact-SQL).
Einstiegspunkt wäre dabei die sys.dm_exec_connections, die die Werte pro Verbindung aufzeichnet.
Allerdings ist ein aussagefähiges Ergebnis nicht in 5 Minuten zusammengeschustert... ;)
Gruß Elmar
- Als Antwort markiert Stephan Mensing Mittwoch, 8. Juni 2016 09:03
-
...
Du könntest höchstens einen weiteren TCP Port für die Instanz angeben und dann die Zugriffe auf diese Datenbank nur über diesen Port machen. Hierfür müsstest Du die ConnectionStrings aller Anwendungen, die auf diese DB zugreifen, entsprechend von <Hostname> auf <Hostname>,<Portnummer> anpassen. Den Traffic könntest Du dann wieder mit Wireshark und Co. messen.
Stefan's Vorschlag ist schon ziemlich genau ins Schwarze. Connection-Affinitizing ist die Technik, die man dafür nutzen könnte. Für diesen speziellen Zweck habe ich es noch nie gesehen, aber es wäre denkbar. Letztlich funktioniert die Azure SQL Database ähnlich.
WireShark zum Messen von Netzwerk-Auslastung ist etwas der Overkill.
Je nach Systemlandschaft gibt es da eine kleine Auswahl an Tools, mit denen man Traffic genau monitoren kann. Hier würde ich also nicht unbedingt auf dem SQL Server selber nachsehen, sondern das eben mal mit meinem Nezwerk-Admin besprechen, was er da eh schon hat.
Andreas Wolter (Blog | Twitter)
MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
MCM SQL Server 2008
MVP Data Platform
www.SarpedonQualityLab.com | www.andreas-wolter.com -
Hallo,
erst einmal ein Danke für die Antworten.@Stefan: Ich denke mal darauf wird es wohl hinauslaufen. Das muss ich aber mit unserem Entwickler einmal durchsprechen ob er mir hier etwas angepasstes bauen kann.
@Olaf: Die Idee ist gut liefert aber leider nicht das was ich brauche =( wäre ja auch zu schön gewesen.
@Elmar: Das werde ich mir einmal ansehen und schauen ob ich daraus etwas machen kann.
@Andreas: WireShark wird deshalb genommen da die IT das bereits im Einsatz hat. Die haben da wohl noch ein anderes Tool das kenne ich aber nicht.
Danke noch einmal an alle.
Gruß
Stephan