[解決済み] SQL Serverで "Null "値を使用する場合のサイズについて
質問
10個のカラムを持つ大きなテーブルがあります。それらのうちの4つは、ほとんどの場合、NULLのままです。私は、NULL値が任意のサイズまたはバイトのサイズなしを取るクエリを持っています。私はそれらのいくつかは言っているいくつかの記事を読んだ。
http://www.sql-server-citation.com/2009/12/common-mistakes-in-sql-server-part-4.html
<ブロッククオートテーブルの中に NULL 値があれば、ストレージ スペースを占有しないという誤解があります。実際には、NULL 値は 2 バイトのスペースを占有しています。
A
NULL
の値は、データベースにおけるシステム値で、1 バイトのストレージを占め、スペースやゼロなどのデフォルト値とは対照的に、値が存在しないことを示すものです。
ヌル値によって取得されるサイズについて教えてください。
どのように解決するのですか?
フィールドが固定幅の場合、NULLを格納すると、他の値と同じスペース(フィールドの幅)を取ります。
フィールドが可変幅の場合、NULLの値はスペースを取りません。
NULL 値を格納するために必要なスペースに加えて、NULL 可能な列を持つためのオーバーヘッドもあります。各行で、1 つのビットが null 可能な列ごとに使用され、その列の値が null か否かをマークします。これは、列が固定長であっても可変長であっても同じです。
他のソースからの情報で観察された不一致の理由。
-
最初の記事の冒頭は少し誤解を招く表現です。この記事は、NULL 値を保存するコストについて述べているのではなく、NULL 値を保存するために必要な 能力 のコスト(つまり、カラムをNULL化するコスト)について述べています。列を NULL 可能にするためにストレージ スペースがかかるのは事実ですが、いったんそれを行うと、NULL を格納するために必要なスペースは、(可変幅の列の場合)値を格納するために必要なスペースよりも小さくなります。
-
2つ目のリンクは、Microsoft Accessに関する質問のようです。AccessがNULLをどのように保存するのか詳細は知りませんが、SQL Serverとは異なっていても不思議ではありません。
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベースのトランザクションログが満杯です。ログの領域が再利用できない理由を調べるには、sys.databases の log_reuse_wait_desc カラムを参照してください。
-
[解決済み] sp_columnsが結果を返さないのはなぜですか?
-
[解決済み] Sqlサーバーに制約が存在するかどうかを確認する方法は?
-
[解決済み] sp_addrolememberとalter user with default schemaの違いは何ですか...?
-
[解決済み] 関数内から実行できるのは、関数と一部の拡張ストアドプロシージャのみです。
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] SQLでNaN値をNULLに、またはNaNを0に変換する
-
[解決済み] SQLのReplace関数内の正規表現?
-
[解決済み] 日付から年内の週番号を取得する
-
[解決済み] SQL Serverでdatetimeを切り捨てるにはどうすればよいですか?