Sql server 在数据库中存储XML

Sql server 在数据库中存储XML,sql-server,xml,Sql Server,Xml,我们的系统由各种组件组成。系统中以XML形式的数据流。每个组件处理XML,并向其添加一些内容,然后将其传递给下一个组件 我想存储所有的XML版本。XML大小为250-300KB。此外,一个事务有相当多的20个XML版本,而且这些事务可能以百万计 我正在寻找这种XML数据存储的替代方案。如果我将XML存储在DB中会怎么样。这是一种有效的方法吗 另外,如果我将XML存储在DB中,是否有任何方法可以根据XML的内容搜索它。以及它的效率 任何想法都会有帮助。因为您的数据流将是250-300 KB的小块,

我们的系统由各种组件组成。系统中以XML形式的数据流。每个组件处理XML,并向其添加一些内容,然后将其传递给下一个组件

我想存储所有的XML版本。XML大小为250-300KB。此外,一个事务有相当多的20个XML版本,而且这些事务可能以百万计

我正在寻找这种XML数据存储的替代方案。如果我将XML存储在DB中会怎么样。这是一种有效的方法吗

另外,如果我将XML存储在DB中,是否有任何方法可以根据XML的内容搜索它。以及它的效率


任何想法都会有帮助。

因为您的数据流将是250-300 KB的小块,所以将它们保存在DB xml或nvarchar(max)字段中是有意义的,就像marc提到的那样,可以存储高达2GB的数据。xml数据类型将验证xml格式是否正确,因此您也具有这一优势。 如果您正在检索大型XML数据,还可以考虑索引XML列。 此外,还可以利用搜索xml内容。 就效率而言,如果您只是简单地存储xml文件,那么将其保存在文件系统文件夹中会很好,否则将其存储在数据库中。
希望这有助于相当大的数据量(250-300KB)
XML
datatype可以处理多达2GB的数据!300KB算不了什么。。。。。继续—存储该XML!是的,您可以使用原生XQuery从XML中获取零碎信息。我不知道300KB什么都不是。但是,如果有2000万个这样大小的XML,那么数据库存储就会增加。这些事务也会随着时间的推移而增加。否则,您会将数据保存到哪里?2000万x 300 KB约为6TB。我想这取决于您希望保留数据的时间范围。保存要在数据库中建立索引的当前XML文件。在文件系统上归档旧XML。可以压缩存档文件以节省磁盘空间。