2011-12-09 7 views
0

datetimeまたはntext型の列を追加することで解決できる状況があります。sql server:datetimeとlong textを格納する

パフォーマンスの面では、これらのうちどれを使用する方が良いでしょうか。レコードの数は60000を超えています。インデックスを作成することができてからdatetimeを考えていましたが、ntextを使用できるかどうかはわかりません...メモリや速度の改善など、 ?

更新:私が追加する列は独立しています.1つは日付時刻で、他はテキストです。誰でも持つことで問題を解決できます。注:ここではntextとしてdatetimeを格納しようとしていません。

+4

あなたは本当に「DATETIMEなどの日時を保存する必要がありますか」と尋ねましたか? – MatBailie

+0

私はストリングとして店舗の日時を要求していません、彼らは2つの異なるfeildsです – remo

+0

あなたの状況と、なぜこれらの2つの列の中から選択する必要があるの詳細について説明してください? –

答えて

2

60000レコードはSQL Serverでは何もありません。
したがって、大きな違いはありません。本当に大きなテーブル(何億ものレコード数以上)であっても、あなたのデータ量では違いがあるかもしれません。

しかし、他の人がすでに言ったように、あなたはdatetimeまたはntextのどちらかの音を私には非常に奇妙なものとして使うことができます。実際に日付と時刻の値がある場合はntextではなくdatetimeを使用してください。


EDIT:
は、私はあなたがdatetime列を使用することを示唆している:あなたはテキスト列に日付値を保存したくないことを明確にすることを今

。それはパフォーマンスが賢明ntextより良いです。

注:テキスト列を使用する場合は、ntextの代わりにnvarchar(max)を使用する必要があります。 ntextは遅くなり、推奨されなくなりました。

+0

顕著な違いがあります。それは、奇妙な 'ntext'プロポーザルを使って保存した場合、デフォルトでは行外に保存されます。 –

+2

'ntext'を使うのは悪い考えです(私の答えの残りを読んでください)、' ntext'を使うのが遅いことが分かりますが、60000レコードだけで人間の目に見える違いがあることは間違いありません。 –

2

データがDATETIMEの場合は、DATETIMEを使用してください。

日付と時刻の操作が必要なときに、テキストフィールドを照会する際に問題が発生します。

パフォーマンスワイズ - DATETIMEは8バイトであり、日付を格納するためにはNVARCHARが長くなります。日付/時刻の作業が必要な操作では、NVARCHARフィールドでの変換が必要です。これは単にDATETIMEカラムを使用するよりも高価になります。

1

これは2つの全く異なるフィールドです。日付を格納する必要がある場合は、datetimeを使用します。テキストを格納する必要がある場合は、varcharまたはlongテキストを使用します。日付をテキストとして保存しないでください!

関連する問題