4

SQL Serverのデータは8K(8192 B)のページで書き込まれ、それぞれがデータ用に8060バイトで、残りはオーバーヘッド(システム情報)であることがどこにでも書き込まれます。

ただし、最近の記事[1]には、私が理解したように、8078バイトのデータが1ページに収まることが示されているコード例が示されています。

1ページあたり8,060Bを理解する上で何が欠けていますか?

x86 SQL Server2008R2でコードを確認しました...


アップデート:

[1]のフォローアップについての回答を見ましたか?私はそれを(私にとって)役に立ったとマークせず、すぐにコメントしたことを残念に思います...私は応答する前にもっと自分自身を調査したかっただけです...


Update2:

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

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

[2]
行あたり8060バイト、(varchar、nvarchar)あたり8000バイトの制限にするにはどうすればよいですか?
行あたり8060バイト、(varchar、nvarchar)値あたり8000バイトの制限にどのように到達しますか?

4

2 に答える 2

4

簡単に言うと、制限は1行あたり8060バイトですが、1ページあたり8096バイトです。リンクした記事の行の行サイズは約4000バイトであるため、行あたりの制限を大幅に下回っています。ただし、それでは、そのような行が1ページにいくつ収まるかという質問には答えられません。

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

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

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

于 2010-09-23T13:46:25.367 に答える
2
  • 最大サイズは8060バイトです
  • この場合、それぞれ4039バイトの2つの行があります
于 2010-09-23T13:48:59.557 に答える