Fragensteller
Datafile growth wie oft ??

Allgemeine Diskussion
-
Hallo,
gibt es eine Möglichkeit evtl. abzufragen wie oft ein Datafile erweitert wurde.
Danke
Markus
- Typ geändert Raul TalmaciuMicrosoft contingent staff Donnerstag, 17. Mai 2012 10:25 Warten auf Feeback
Alle Antworten
-
Hallo Markus,
für "Log Growth" gibt es einen Performance Counter, den Du zum Überwachen dafür verwenden kannst; kannst Du sogar per T-SQL abfragen und auswerten, siehe http://gallery.technet.microsoft.com/scriptcenter/Log-Growth-Rate-3549096e
Nur für Daten-Dateien ist mir da nichts bekannt.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing -
Hallo Markus,
die Berichte im SSMS greifen auf die vorhandenen Trace-Files zu.
Siehe hierzu auch:
http://www.insidesql.org/blogs/cmu/sql_server/woher-kommt-sql-trace-1Du könntest aus den aktuellen Trace-Files für die aktuelle Datenbank das Wachstum wie folgt ermitteln:
declare @curr_tracefilename varchar(500) declare @base_tracefilename varchar(500) declare @indx int select @curr_tracefilename = path from sys.traces where is_default = 1 set @curr_tracefilename = reverse(@curr_tracefilename) select @indx = PATINDEX('%\%', @curr_tracefilename) set @curr_tracefilename = reverse(@curr_tracefilename) set @base_tracefilename = LEFT( @curr_tracefilename,len(@curr_tracefilename) - @indx) + '\log.trc'; select (dense_rank() over (order by StartTime desc))%2 as l1 , convert(int, EventClass) as EventClass , DatabaseName , Filename , (Duration/1000) as Duration , StartTime , EndTime , (IntegerData*8.0/1024) as ChangeInSize from ::fn_trace_gettable( @base_tracefilename, default ) where EventClass >= 92 and EventClass <= 95 and ServerName = @@servername and DatabaseName = db_name() order by StartTime desc ;
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP
www.insidesql.org/blogs/cmu -
Hi,
vielen Dank für eure Antworten.
@Olaf. Das Script ist nicht so 100% Hilfreich da hier, wenn ich das richtig verstehe, nur der Logfilegrowth angezeigt wird.
@Christoph. Vielen Dank für das Script. Leider zeigt es nichts an. Muss ich noch etwas individuelles einfügen wie DB_Name ?
Es handelt sich hier um einen SQL2005 und einen SQL2008R2.
In deinem Blog schreibst du, das eine StoredProcedure eingerichtet sein muss.
Ist dies nur bei SQL2000 der Fall oder auch bei SQL2005 und SQL2008R2 ?Danke
Markus -
Hi Markus,
die Prozedur brauchst Du nur, wenn Du auswerten willst, wie der Trace definiert ist. Das ist hier nicht notwendig. Das Skript filtert auf den aktuellen Server- und Datenbanknamen:and ServerName = @@servername and DatabaseName = db_name()
Du kannst zur Not die beiden Einschränkungen weglassen und erst mal den ganzen Server untersuchen.
Falls Du im SSMS bei den Berichten (Datenträgerverwendung) etwas für eine Datenbank (automatische Vergrößerung/Verkleinerung) angezeigt bekommst, sollte es auch hier auftauchen.
Es gibt aber nur 5 Trace-Files, die standardmäßig verarbeitet werden können. Bei jedem Serverneustart fällt ein altes File weg und wird ein neues angelegt.Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP
www.insidesql.org/blogs/cmu -
Hallo Markus,
ist die Thematik noch aktuell?
Gruss,
RaulRaul Talmaciu, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Hallo,
zunächst mal vielen Dank für die Scripts. Diese sind sehr gut und helfen mir weiter.
Beide Scripts.
Unterschied, wenn ich es richtig verstanden habe: Script von Olaf zeigt die Menge an Growth der LOGFILES - Script von Christoph zeigt sowohl die LOGFILES als auch die DB Files an.
Perfekt wäre nun noch das Script von Olaf um die DB File Growth zu erweitern, dann würde man sehen wie oft das DB File und wie oft das Logfile vergrössert werden musste.
Gruß und vielen Dank
Markus