4

Il est écrit partout que les données dans SQL Server sont écrites dans des pages de 8 Ko (8192 B), chacune avec 8060 octets pour les données et le reste est une surcharge (informations système). Cependant, l'article récent [1] donne un exemple de code illustrant, si j'ai bien compris, que 8078 octets de données rentrent dans une page.8078 octets dans le port de données 8060 B (SQL Server)?

Qu'est-ce que je ne comprends pas 8 060 B par page?

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


Mise à jour:

Est-ce que je vois une réponse parler de suivi à [1]? Je plains que je ne marque pas que utile (pour moi) et commenter tout de suite ... Je voulais juste d'enquêter plus avant de répondre moi-même ...


Update2:

I posté subquestion [2 ]

[1]
Comment la conception de table peut influer sur votre performance SQL Server?
http://sqlserver-training.com/how-table-design-can-impact-your-sql-server-performance/-

[2]
Comment venir aux limites de 8060 octets par ligne et 8000 par (varchar, nvarchar)?
How do you get to limits of 8060 bytes per row and 8000 per (varchar, nvarchar) value?

+0

la façon dont cette question est écrit et mis en forme le rend difficile à lire –

Répondre

4

Réponse courte courte, la limite est 8060 octets par ligne, mais 8096 octets par page. Les lignes de l'article que vous avez lié ont une taille de ligne de ~ 4000 octets, elles sont donc bien inférieures à la limite par ligne. Cependant, cela ne répond pas à la question de savoir combien de lignes de ce type tiennent sur une page.

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

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 ligne physique taille de 4048 octets, ce qui est exactement la moitié de la limite de 8096 pour une page.

+0

Merci, j'ai upvoted votre réponse. Plz voir ma question (Mise à jour 2 dans le message principal) –

2
  • La maximale ligne taille est 8060 octets
  • Dans ce cas, il y a deux lignes chacun 4039 octets
+0

Merci, j'ai upvoted votre réponse. Plz voir ma question (Mise à jour 2 dans le post mymain) –

+0

@ vgv8: J'ai répondu à votre autre question – gbn