none
Datafile growth wie oft ?? RRS feed

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

    Freitag, 11. Mai 2012 08:18
  • 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-1

    Du 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

    Freitag, 11. Mai 2012 08:59
    Beantworter
  • 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

    Freitag, 11. Mai 2012 10:16
  • 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

    Freitag, 11. Mai 2012 11:17
    Beantworter
  • 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 

    Montag, 10. Juni 2013 12:16