Question

Il est écrit partout que les données dans SQL Server est écrit dans les pages de 8K (8192 B) chacun avec 8060 octets pour les données et le reste est en tête (informations système).

Bien que, l'article récent [1] donne illustrant exemple de code, comme je l'ai compris, que 8078 octets de données entrent dans une page.

Qu'est-ce que je manque à comprendre 8060 B par par page?

J'ai vérifié le code sur x86 SQL Server 2008 R2 ...


Mise à jour:

Est-ce que je vois un révélateur de réponse au sujet des suivis à [1]? Je plains que je ne marque pas que utile (pour moi) et commentaire immédiatement ... Je voulais juste d'enquêter plus avant de répondre moi-même ...


Update2:

J'affiché subquestion [2]

[1]
Comment la conception de table peut avoir un impact de votre performance SQL Server?
http: // SQLServer formation. com / how-table design, d'impact-votre-sql-server performance / -

[2]
Comment arriver aux limites de 8060 octets par ligne et 8000 par (varchar, nvarchar)?
Comment vous obtenez des limites de 8060 octets par ligne et 8000 par (varchar, nvarchar) valeur

Était-ce utile?

La solution

Long réponse courte, la limite est de 8060 octets par ligne, mais 8096 octets par page. Les lignes de l'article que vous lié ont une taille de rangée de ~ 4000 octets, ils sont donc bien inférieure à la limite par ligne. Toutefois, cela ne répond pas à la question de savoir combien ces lignes tiennent sur une page.

Voir « Estimation de la taille d'un tas » en ligne Livres:

http://msdn.microsoft.com/en-us/library /ms189124.aspx

Si vous faites le calcul pour les tableaux de l'article, vous verrez que la première table a une taille de ligne physique de 4048 octets, qui est exaclty moitié de la limite 8096 pour une page.

Autres conseils

  • Le maximum ligne est la taille 8060 octets
  • Dans ce cas, il y a deux lignes chacun de 4039 octets
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top