- 締切済み
text型とchar型をどちらを選ぶか?
SQLserver2000でのテーブル定義について質問です。 あるテーブルの中で、最長4000文字を格納するデータ項目があります。 現在、データ型はtextにしているのですが、一般論として、これはcharにした方が良いのでしょうか? また、SQLserverのデータ格納単位(1ページ)が8KBという点は、textかcharのどちらが望ましいかに影響するのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- khazad-lefty
- ベストアンサー率44% (296/668)
>1ページ8KBをほぼ占有 あ。そうだ。1レコードあたりの最大がそれだけでしたね。 …ということはvarcharだと厳しいかもしれませんね…。 textはその枠とは関係ないので、そのほうがいいのかも。 特に検索対象にしないのであればリスクもないわけですし…。
- khazad-lefty
- ベストアンサー率44% (296/668)
テキスト型だと、その列をWhere条件として指定することは出来ない記憶があるんですが…。 あと、nvarcharだと、全角半角に関係なく文字数がサイズになるので、 管理がしやすいのと、UNICODEなので、多言語対応が楽?というのが有利かも…。
お礼
ご回答ありがとうございます。なるほど。 気になるのは、4000文字のnvarcharとした場合、データがフルで格納されると1ページ8KBをほぼ占有となる点です。 これはあまり気にしなくて良いのでしょうか? ご存知の方ご返答お願い致します。
- temtecomai2
- ベストアンサー率61% (656/1071)
私なら varchar じゃなく nvarchar を使いますね。
お礼
ご回答有難うございます。 ntextではなくnvarcharを選択される理由をお教え頂けますでしょうか? 宜しくお願いします。
- kabilunlun
- ベストアンサー率34% (155/446)
Char型で長さ4000だと長さ100の値を入れたときに、値の後ろに3900個の空白が自動で入ってしまいませんか。 Char型は固定長だったと思いますが。Oracleではそうです。
お礼
回答ありがとうございます。 > Char型は固定長だったと思いますが。 総称的にcharと書いてしまいました。すいません。 正確にはtextかvarcharかの選択肢になろうかと思いますので、改めてどなかたご回答お願い致します。
お礼
ご回答ありがとうございます。 やはり1レコードサイズは気にすべきなんですかね。 このあたりの点にお詳しい方がいらっしゃいましたら、アドバイス・ご意見お願い致します。