4


0

8060 Bデータページで8078バイト(SQL Server)?

SQL Serverのデータは8K(8192 B)のページに書き込まれ、各データは8060バイトで書き込まれ、残りはオーバーヘッド(システム情報)です。

しかし、最近の記事[1]では、8078バイトのデータが1ページに収まることを理解できるコード例を示しています。

1ページあたり8,060 Bを理解するのに何が恋しいですか?

x86 SQL Server 2008 R2でコードを検証しました…​

'' '' '

更新:

[1]へのフォローアップについての回答が表示されましたか? 私はそれを有用だとマークしなかったのが残念です(私にとって)、すぐにコメントします…​ 私はただ応答する前にもっと自分自身を調査したかった…​

'' '' '

アップデート2:

サブ質問[2]を投稿しました

[1]
テーブル設計はSQL Serverのパフォーマンスにどのように影響しますか? + http://sqlserver-training.com/how-table-design-can-impact-your-sql-server-performance/-

[2] +行ごとに8060バイト、(varchar、nvarchar)ごとに8000の制限に達する方法 + https://stackoverflow.com/questions/3793022/how-to-come-to-limits-of-8060-bytes-per-row-and-8000-per-varchar-nvarchar [どのように制限に達しますか行ごとに8060バイト、値(varchar、nvarchar)ごとに8000バイト?]

2 Answer


4


長い答えは短く、制限は行あたり8060バイトですが、ページあたり8096バイトです。 リンクした記事の行の行サイズは〜4000バイトなので、行あたりの制限を十分に下回っています。 ただし、そのような行がページに収まるかどうかの質問には答えません。

Books Onlineの「ヒープサイズの見積もり」を参照してください。

この記事のテーブルの計算を行うと、最初のテーブルの物理行サイズは4048バイトであり、ページの8096の制限の半分であることがわかります。


2


  • 最大_row_サイズは8060バイトです

  • この場合、それぞれ4039バイトの_two_行があります