2

我是 XML 数据的新手。

我目前有一个将 xml 数据存储在ntext列中的数据库,并且该数据库似乎占用了太多空间。我正在尝试改进数据的存储方式,以减少数据库的整体大小。

在我看来,我有两个选择:

  • nvarchar(max)
  • xml

我需要通过将一些数据导入这些列来测试上面的两个选项。

我遇到的问题是,ntext 列中的 XML 数据当前存储为 utf-8。为了让我将它导入 XML 数据类型列,我需要将数据转换/转换为 UTF-16?

这是正确的吗?

4

1 回答 1

5

将数据存储为数据类型XML两个主要好处

  1. 因为它是作为原生 XML 存储的,所以您可以在它之上执行 XQuery 之类的操作
  2. 因为它XML以优化(标记化)方式存储,所以占用的空间比等效nvarchar(max)列占用的空间少。

要转换您现有的NTEXT列:只需CAST对其进行操作。

你会得到什么结果:

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

我几乎可以肯定这会奏效——就像那样。SQL Server 不支持 UTF-8 - 所以即使在ntext列中的数据也很可能不会真正存储为 UTF-8(它已经转换为 SQL Server 的 Unicode - UCS-2/UTF-16)所以我不看到将其转换为 datatype 的任何问题XML,真的。

于 2013-03-21T14:53:51.250 回答