sql >> データベース >  >> RDS >> Sqlserver

SQLServerでNull値が取るサイズ

    フィールドが固定幅の場合、NULLを格納すると、他の値と同じスペース(フィールドの幅)が必要になります。

    フィールドが可変幅の場合、NULL値はスペースを取りません。

    null値を格納するために必要なスペースに加えて、null許容列を持つためのオーバーヘッドもあります。各行について、null許容列ごとに1ビットを使用して、その列の値がnullかどうかをマークします。これは、列が固定長であろうと可変長であろうと当てはまります。

    他の情報源からの情報で観察された不一致の理由:

    • 最初の記事の冒頭は少し誤解を招くものです。この記事では、NULL値を格納するためのコストについてではなく、能力を持つためのコストについて説明しています。 NULLを格納します(つまり、列をNULL可能にするためのコスト)。列をNULL可能にするためにストレージスペースにいくらかコストがかかるのは事実ですが、一度それを行うと、値を格納するよりもNULLを格納するためのスペースが少なくて済みます(可変幅列の場合)。

    • 2番目のリンクは、MicrosoftAccessに関する質問のようです。 AccessがNULLを格納する方法の詳細はわかりませんが、SQLServerと異なっていても驚かないでしょう。



    1. SQL Serverクエリでテーブル構造を表示するにはどうすればよいですか?

    2. ウェビナー:PostgreSQL11の新機能[フォローアップ]

    3. SQLServerでのメモリ設定の重要性を理解する

    4. MySQLにビュークエリにINDEXを使用させるにはどうすればよいですか?