NCHAR(1)vsビット
-
27-09-2019 - |
解決
ビット分野御ロジックにより自動的に強制でこのような活動がどのように、暗黙のビジネスルール(すなわち、このカラムなどを含めないでください'Y'または'N')ば強制するルールプログラムに保存することができるの排除するオーバーヘッド。デビットカラム自体がほとんど価値が低い濃度、この一環として複合的な指数です。
参照:
他のヒント
私はお気軽にご登録をすると、掲載企業へ問い議論などに変更いた理由が変化します。すなわちきのバランスコストの変化にどのよう自らの行い/希望、vsのコストを実際に実施する利点を兼ね備えます。
いかどうかはチェックの利用nchar(1)は追加性、ま陥にトラップの早期の最適化?みつ1百万円を記録。
テーマはストレージ/IOのコストだという思いを大切にしてい負担の合計男時間の変更、再試験のシステム*スタート時のvsコストでの購入には高速ディスク。疑いのディスクにするかに安いなどの利益のあらゆるシステム。
共通の理由を探NCHAR(1)の代わりにビットはOracleにはまだ対応していませんでしたビットタイプです。また、OracleはOracle訓練を受けた者、またはデータベースにOracleは、あの参照ころがいっぱいあるんです!Sqlサーバー、くありません必要です。
しかし、私たものではなく、ほとんどの領域でしたいことが分かったビットの分野(NCHAR(1)のsqlん 本当に したものであって、datetimeを示すなどの価値のフラグが同時となります。これだけではない場合は、後で振り返って古いコードからいらっしゃるかと思いる4の5倍を使ってビット分野としては使用datetime.
のビットの分野で、計算カラムにemulatesのnchar(1)。
何を使用しないnchar:
Y
vsy
vs一unicode Y
- 架空のチェックY/N
- いないブラ"true"o"false"の場合(例な地図できます。純boolean)
Y
やN
は英語です。Ja/Nein,Oui体など
なんかころでしかなくて効率的な保存と利用します。ビットが
- 小
- datatype安全なものであるかどうか(例えば、チェックが必要)
- 地図をクライアントの意味を直接
- 独立した地域
うを使用していまsmalldatetime"WhenInactive"分野の代替として"IsActive"フィールドに表示されます。NULL=活躍しました。
ご利用の場合LINQ2SQLまたは団体の枠組みを BIT
列訳ではありま bool
, ものの、 NCHAR(1)
訳ではありま string
.
の分野で広く使用され問合せ Where fld = 'Y'
?
そう考えて見るという試みか否かを変更することで少し影響す。
変更することで、今だからこそこのビットの分野からだ格納すboolean型の値のテーブル1m+記録しない音のように良いアイデア私はいずれかとなったと思いることを目指してアンドリューの答えです。
使用ビット
論理的表現/表現力の意図-年boolean国んexpressableに一貫して
Yes or No
, る、というまのいずれかが必要不整合にモデリングビットは、直感的で、例えばTrue/False (T/F)
,On/Off (?O/F)
,Open/Closed(O/C)
など。参照整合性-非nullのビットを制限することが可能ですのみ
0 or 1
.ない限り、追加の制約、*char(1)
きY
,N
,X
または☺
.ビットをまとめることができます。, でもが小さくなっている。
Re:性能:デビット(または数少ない状態CHARカラムが通常の廃棄物がある場合を除き、高い選択性は0又は1のデータです。この場合、 指数フィルタ の選択に値する良い方法がありました。
(移行から 削除答えはこちら)
したが欲しかったビットの分野でもなんのために必要がありまれることはありませんの目に価値ることになり、そのような分野でしたがって構造で文字列として格納するフィールドは,もちろん、しかしこの非常に独特です。