我是 XML 数据的新手。
我目前有一个将 xml 数据存储在ntext
列中的数据库,并且该数据库似乎占用了太多空间。我正在尝试改进数据的存储方式,以减少数据库的整体大小。
在我看来,我有两个选择:
nvarchar(max)
xml
我需要通过将一些数据导入这些列来测试上面的两个选项。
我遇到的问题是,ntext 列中的 XML 数据当前存储为 utf-8。为了让我将它导入 XML 数据类型列,我需要将数据转换/转换为 UTF-16?
这是正确的吗?
我是 XML 数据的新手。
我目前有一个将 xml 数据存储在ntext
列中的数据库,并且该数据库似乎占用了太多空间。我正在尝试改进数据的存储方式,以减少数据库的整体大小。
在我看来,我有两个选择:
nvarchar(max)
xml
我需要通过将一些数据导入这些列来测试上面的两个选项。
我遇到的问题是,ntext 列中的 XML 数据当前存储为 utf-8。为了让我将它导入 XML 数据类型列,我需要将数据转换/转换为 UTF-16?
这是正确的吗?
将数据存储为数据类型XML
有两个主要好处:
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
,真的。