Announcement

Collapse
No announcement yet.

Gruppierten Index berechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gruppierten Index berechnen

    Hallo,
    ich habe Probleme bei der berechnung eines gruppierten Indexes anahnd der Formeln in der angebenen msdn Seite unter Schritt 1.

    http://msdn2.microsoft.com/de-de/library/ms178085.aspx

    Folegende Werte liegen als Basis bereit:
    num_Rows = 2685791
    num_Key_Cols = 6
    fixed_Key_Size = 24
    num_Variable_Key_Cols = 0
    max_Var_Key_Size = 0
    Gruppierter Index, Eindeutiger Index, keine Spalten NULL zulässigkeit.
    Füllfaktor = Serverstandard

    Werden diese Werte nun in die Formeln eingesetzt ergibt sich am Ende eine rechnerische Größe für leaf_space_used von ca 78,5 MB.
    Schritt 2. entspricht den erwarteten Werten.

    Als Grundlage dient eine Tabelle im MS SQL Server 2005.
    Die Eigenschaftsinformationen dieser Tabelle zeigen aber nur einen Indexspeicherverbrauch von 0,625 MB an.

    Wie kann dies sein? bzw. Was ist mit der Formel auf den MSDN Seiten icht in Ordnung?
    Kann mir hier jemand weiterhelfen ?
    Zuletzt editiert von Matthias Lachetta; 24.06.2011, 11:20.

  • #2
    Hallo,

    die Formel führt nur in der Kombination aller 3 Schritte zum Ergebnis. Im Schritt 3 werden auch die Sonderfälle aufgeführt, die nicht von der Berechnung abgedeckt werden.

    Comment


    • #3
      Ja, das hat aber nichts dasmit zu tun dass bereits in Schritt 1 ein astronomisch großer Wert herauskommt.

      Aber soweit ich mich mittlerweile selbst informieren konnte, speichert der SQL Server nur die Indexinformationsseiten.
      Das erklärt dann warum nur so wenige Speicherverbrauch angezeigt wird.

      Als weiteren Test habe ich mir die Tabelle in eine leere DB kopiert und den besagsten Index erstellt.
      Die größe der DB hat sich verdoppelt aber allerdings mit einigem an freiem Speicher.

      Daraus schließe ich dass bei einem gruppierten Index die Tabelle komplett umsortiert wird und die Werte temporär zwischengespeichert werden.

      Anders kann ich es mir nicht erklären dass ich nach dem erstellen des Indexes auf einmal freien Speicherplatz in der DB hab.

      Comment


      • #4
        dann hätte ich noch eine Frage.
        Dokument dazu ist hier http://msdn2.microsoft.com/de-de/library/ms190620.aspx

        Folgender Satz:
        Wenn sich der nicht gruppierte Index über einem Heap befindet...

        Kann mir jemand erklären wasn genau damit gemeint ist und wie man das interpretieren kann ?

        Comment

        Working...
        X