2011-01-11 5 views
19

Ich bin auf die Seite in SQL Server 2008 gestoßen, und ist etwas verwirrt darüber. Ich lese gerade MCTS Self-Paced Training Kit (Exam 70-433): Microsoft SQL Server 2008-Database Development, wo Autoren das Konzept diskutieren, aber in einer begrenzten Art und Weise.Was ist eine Seite in SQL Server und muss ich mich sorgen?

Von MSDN "Understanding Pages and Extents" bekomme ich eine Antwort, die nicht wirklich hilft. Die Webseite beschreibt die Größe (8 KB) einer Seite und wie Zeilen auf der Seite gespeichert werden und wie Spalten automatisch (von SQL Server) verschoben werden, wenn die Zeilen nicht in die Seite passen.

Aber immer noch, ich frage mich, ob die Seite-Ebene etwas ist, das ich darauf achten sollte, eine Datenbank mit ER-Diagrammen, Tabellen und Datentypen zu entwerfen? Oder sollte ich mich einfach darauf verlassen, dass SQL Server die Seiten automatisch und auf bestmögliche Weise handhabt?

alt text

Danke für Ihre Aufmerksamkeit!

+1

MS-Dokumente sind meist BS. Du bist nicht allein. –

Antwort

30

JA! Eine Seite ist das grundlegendste Element des Speichers in SQL Server.

Von den 8192 Bytes auf einer Seite, ca. 8060 stehen Ihnen als Benutzer zur Verfügung. Wenn Sie es schaffen, Ihre Datenzeilen auf die Seite anzupassen, benötigen sie viel weniger Speicherplatz.

Wenn Ihre Datenzeile z.B. ist 4100 Bytes lang, nur eine Zeile wird auf einer Seite gespeichert (und der Rest der Seite - 3960 Bytes - ist verschwendeter Speicherplatz). Der wichtige Punkt ist: Diese Seiten sind nicht nur relevant für die Festplatte, sondern auch im Hauptspeicher von SQL Server -> Sie wollen versuchen, große Bereiche des Speicherplatzes zu vermeiden, die keine nützlichen Informationen auf einer Seite enthalten können.

Wenn es Ihnen gelingt, Ihre Zeile auf 4000 Byte zu reduzieren, können Sie plötzlich zwei Zeilen auf einer Seite speichern und so den Overhead des verschwendeten Speicherplatzes erheblich reduzieren (bis zu 60 Byte pro Seite).

+1

Danke Marc! Genau das musste ich wissen.Je größer also die Datenzeilen sind, desto wichtiger ist es zu wissen, wie viele Bytes es enthält - um gut belegten Speicherplatz auf SQL Server zu gewährleisten. Gute Antwort! –

+0

+1 Marc, und wie kann er verschwendete Blobs vermeiden? –

+0

@marc_s Sie haben gesagt: _Sie möchten versuchen, große verschwendete Raumtropfen zu vermeiden._ Kann ich diese verschwendeten Blobs minimieren? (klingt wie Defrag ALIKE Befehl) –

7

Sie müssen sich keine Sorgen um die 8-KB-Seitenstruktur machen, bis Sie auf Leistungsprobleme stoßen. Aber wenn Sie Interna von 8 KB Seite wissen möchten, hier ist ein Video von youtube http://www.youtube.com/watch?v=He8MRttysmY, das zeigt, wie 8 KB Seiten aussieht.

enter image description here

1.Page Header speichert Informationen über die Seite wie Seitentyp, nächste und vorherige Seite, wenn es auf der Seite usw.

2.After der Seitenkopf-Daten eine Indexseite, den freien Speicherplatz ist Reihenabschnitt folgt. Hier werden Ihre Daten gespeichert.

3.Row Offset-Informationen werden am Ende der Seite gespeichert, d. H. Nach dem Datenzeilenbereich. Jede Datenzeile hat einen Zeilenoffset und die Größe des Zeilenoffsets beträgt 2 Bytes pro Zeile. Der Zeilenoffset speichert Informationen darüber, wie weit die Zeile vom Anfang der Seite entfernt ist.

Mit einfachen Worten die vollständige Seite Gleichung kommt wie folgt.

Seite (8 KB/8192 Byte) = Seitenkopfzeile (96 Byte) + Istdaten (unabhängig von Bytes) + Zeilenoffset (2 Bytes pro Zeile).

+0

Wann mache ich mir Sorgen wegen seitenbezogener Leistungsprobleme? Kannst du mir bitte ein paar Beispiele geben? –

+2

-1 b/c von "Sie brauchen sich keine Sorgen über 8 KB Seitenstruktur zu machen, bis Sie zu Leistungsproblemen kommen". Ich versuche derzeit, einen Produktions-SQL-Server mit einer Tabelle zu reparieren, die 173 Millionen Zeilen enthält. Die Leistung (und damit die Seitengröße) sollte zur Entwurfszeit berücksichtigt werden. – ray

+0

Obwohl diese Antwort informativ ist, glaube ich nicht, dass es klug ist, die Seitengröße einfach zu ignorieren, bis ein Problem auftritt. –

Verwandte Themen