Zum Inhalt wechseln


Foto

SQL2008R2: Speicherbelegung bei Filegroup asynchron

MS SQL

  • Bitte melde dich an um zu Antworten
9 Antworten in diesem Thema

#1 Knorkator

Knorkator

    Newbie

  • 395 Beiträge

 

Geschrieben 26. Oktober 2016 - 11:59

Hallo,

 

wir haben hier einen 2008er SQL Server auf dem unser altes ERP (MS Navision 2009) System liegt.

Die Datenbank wird nur noch ab und zu für Lesezwecke genutzt.

 

Konfiguriert wurde das System mit einer Filegroup aus 4 Dateien die auf 4 Raid-1 Verbünden liegen.

Warum auch immer, die Verteilung auf die einzelnen Dateien ist nicht optimal:

DBFile1-85% - Festplatte bis auf 10MB voll...

DBFile2-5%

DBFile3-5%

DBFile4-5%

 

Kann mir jemand einen Tipp geben, wie ich:

a) Den Inhalt der Datenbank gleichmäßig auf die 4 Dateien verteilen kann?

b) Alternativ dazu: Den Inhalt ggf. auf 2 Dateien aufteilen kann?

 

Vielen Dank

 

 

 


Bearbeitet von Knorkator, 26. Oktober 2016 - 13:31.


#2 Knorkator

Knorkator

    Newbie

  • 395 Beiträge

 

Geschrieben 07. November 2016 - 14:52

Keiner?

Ist die Frage so doof oder ungewöhnlich?

:/



#3 wilgin

wilgin

    Member

  • 224 Beiträge

 

Geschrieben 08. November 2016 - 09:03

Hallo,

Filegroups nehmen mal grundsätzlich den kompletten Inhalt des jeweiligen Objektes auf. Du kannst das grafisch im Management Studio in den Eigenschaften einer (zb) Tabelle sehen.

Ein gleichmäßiges Aufteilen kenn ich jetzt mal nicht. Du kannst es jedoch partitionieren. Wenn beispielsweise in einer Tabelle Umsatzdaten von vier Jahren drinnen sind kann man mit 
einer Partitionsregel diese so aufteilen, das jedes Jahr in einer seperaten Filegroup liegen.

siehe https://technet.micr...v=sql.105).aspx

 

vg


Bearbeitet von wilgin, 08. November 2016 - 09:03.

  • Knorkator gefällt das
Wilfried

#4 Knorkator

Knorkator

    Newbie

  • 395 Beiträge

 

Geschrieben 08. November 2016 - 13:50

Hallo wilgin,

 

Ich habe mir mal die Belegung der Tabellen angesehen und festgestellt, dass wir einen Testmandanten mit 68GB Speicherbelegung in der Datenbank hatten.

Da die DB nur noch zu Lesezwecken benötigt wird, wurde der Testmandant nun gelöscht und die DB um knapp 60 verkleinert werden.

 

Filegroups nehmen mal grundsätzlich den kompletten Inhalt des jeweiligen Objektes auf.

Das ist ja erstmal so Ok, aber warum wurden die Daten nicht gleichmäßig auf die beteiligten Dateien verteilt?

Kann mir das mal jemand erklären?

 

 

 

Vielen Dank!



#5 NilsK

NilsK

    Expert Member

  • 11.513 Beiträge

 

Geschrieben 08. November 2016 - 14:41   Lösung

Moin,

 

SQL Server füllt die Dateien, die zur selben Filegroup gehören, proportional zu dem freien Platz innerhalb der Datei. Möglicherweise führt das zu einer "Verzerrung" gegenüber deiner Erwartung, dass die Daten gleich verteilt seien. Zusätzlich kann das Autogrow hier zu einer nicht erwarteten Verteilung führen - Autogrow ist ohnehin in vielen Umgebungen problematisch, weil falsch oder ungünstig konfiguriert. Wenn man eine bestimmte Verteilung erreichen möchte, muss man die Parameter Größe und Autogrow also gemeinsam planen.

 

https://technet.micr...v=sql.105).aspx

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#6 Knorkator

Knorkator

    Newbie

  • 395 Beiträge

 

Geschrieben 09. November 2016 - 10:28

Hallo Nils,

 

danke für den Link!

 

Lt. File and Filegroup Fill Strategy sollten die Dateien ja zumindest alle gleichzeitig voll werden und danach Datei für Datei erweitert werden.

Aber na ja.. das hat ja nicht geklappt.

Da das System schon vor meiner Zeit aufgesetzt wurde und ich nicht für SQL Server zuständig bin, kann ich nicht sagen ob ggf. die Autogrow Einstellungen ungünstig konfiguriert werden.

Habe die Einstellungen an den anderen SQL Servern überprüft und ggf. korrigiert - 30% Vergrößerung bei einer 40GB Datenbank muss ja nicht sein denke ich.

 

Das neue NAV läuft auf einem SQL 2014, da werde ich die Dateibelegung zukünftig überwachen...

 

Vielen Dank



#7 NilsK

NilsK

    Expert Member

  • 11.513 Beiträge

 

Geschrieben 09. November 2016 - 10:43

Moin,

 

generell ist prozentuale Vergrößerung bei Autogrow schwierig. Wenn die Datei z.B. schon 500 GB erreicht hat, müssen bei 10 Prozent mal eben 50 GB alloziert werden. Bei kleineren Dateien hingegen führt das zu ständigen kleinen Häppchen und sorgt so für Fragmentierung. Als Faustregel empfehle ich daher immer große, feste Inkremente und ein Monitoring. Das ist aber Sache des Detaildesigns, genau wie die Nutzung von Filegroups.

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#8 Knorkator

Knorkator

    Newbie

  • 395 Beiträge

 

Geschrieben 09. November 2016 - 10:47

Beim Design sollte man wissen (hoffentlich), wie groß die DB wird und gleich entsprechend planen.

Leider hat der ein oder andere kein Gefühl dafür...



#9 NilsK

NilsK

    Expert Member

  • 11.513 Beiträge

 

Geschrieben 09. November 2016 - 10:48

Moin,

 

naja, das kommt schon mal vor. Bei vielen Projekten weiß man ja nicht, wie die sich entwickeln. Aber wenn es dann eben auch um Performancefragen geht, dann braucht man in solchen Phasen eine gute Überwachung und sinnvolle Grundeinstellungen.

 

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#10 Knorkator

Knorkator

    Newbie

  • 395 Beiträge

 

Geschrieben 09. November 2016 - 11:04

Da stimmt.. bzgl. der Überwachung / Auswertung kommt gleich noch nen Thread.

:)