2

XMLデータに関しては、私は新人です。

現在、xmlデータがntext列に格納されているデータベースがあり、このデータベースはスペースを取りすぎているようです。DBの全体的なサイズを小さくするために、データの保存方法を改善しようとしています。

私の見方では、2つの選択肢があります。

  • nvarchar(max)
  • xml

これらの列にいくつかのデータをインポートして、上記の2つのオプションをテストする必要があります。

私が抱えている問題は、ntext列のXMLデータが現在utf-8として保存されていることです。XMLデータ型の列にインポートするには、データをUTF-16にキャスト/変換する必要がありますか?

これは正しいですか?

4

1 に答える 1

5

データをデータ型として保存することにXMLは、次の 2 つの大きな利点があります。

  1. ネイティブ XML として保存されるため、その上で XQuery などを実行できます。
  2. XML最適化された(トークン化された)方法で保存されているため、同等のnvarchar(max)列が使用するよりも少ないスペースしか占有しません。

NTEXT既存の列を変換するには: それに対して aCASTを実行するだけです。

これからどのような結果が得られますか:

SELECT 
   id, ntextColumn, CAST(ntextColumn AS XML)
FROM 
   dbo.YourTable

これが機能することはほぼ確実です-そのように。SQL Server は UTF-8 をサポートしていません。そのため、ntext列内のデータも実際には UTF-8 として保存されていない可能性が高いため (既に SQL Server の Unicode - UCS-2/UTF-16 に変換されています)、私はサポートしていません。これを datatypeXMLに変換する際の問題を実際に見てください。

于 2013-03-21T14:53:51.250 に答える