JSON.NET を使用してオブジェクトをシリアライズおよびデシリアライズし、JSON 文字列を使用してデータベースに格納する予定です。
格納するのに最適な SQL Server 2008 のデータ型はどれですか?
- nvarchar(最大)?
- varchar(最大)?
JSON.NET を使用してオブジェクトをシリアライズおよびデシリアライズし、JSON 文字列を使用してデータベースに格納する予定です。
格納するのに最適な SQL Server 2008 のデータ型はどれですか?
あなたのjsonは多言語になりますか? はいの場合 - nvarchar を使用します。そうでない場合は、varchar を使用すると、使用するストレージ スペースが少なくなり、パフォーマンスの面でより効率的になります。
おそらくnvarchar(max)を使用する必要があります。
http://www.ietf.org/rfc/rfc4627.txt
JSONの推奨エンコーディングはUTF-8ですが、UTF-16およびUTF-32も可能であるため、ワイド文字を含むデータを取得する可能性があります。
一方、varbinary(max)を使用して、実際のUTF-8ストリームを格納し、スペースと処理を節約することもできます。これは、UTF-8ストリームを.NETで実際の文字列に変換する必要がないためです(つまり、 UTF-8からUnicode内部.NET文字列)。
ワイド文字が入ってくると、varcharに適切に格納されているUTF-8を変換していないクエリによって誤って解釈される可能性があるため、varchar(max)は使用しません(8ビットのvarcharを使用できると仮定します)。また、データベース設定に応じてマルチバイトをvarcharに格納します)。UTF-8をvarcharの特定のコードページに変換することを心配する必要はありません。繰り返しになりますが、nvarcharはUnicodeであるため、その混乱について心配する必要はありません。
SQL ServerのJSONで操作を行うのですか、それともストレージだけで行うのですか?
varcharを10回。より速く、より良い。