Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中以标准结构存储XML是否是对XML数据类型的错误使用?_Sql Server_Xml_Database - Fatal编程技术网

Sql server 在SQL Server中以标准结构存储XML是否是对XML数据类型的错误使用?

Sql server 在SQL Server中以标准结构存储XML是否是对XML数据类型的错误使用?,sql-server,xml,database,Sql Server,Xml,Database,我们的数据库中有一个表,将XML存储在其中一列中。在通过web服务响应接收的一组3种不同的XML格式中,XML始终采用完全相同的格式。我们需要经常在这个表中(以及XML字段内部)查找信息。这是对XML数据类型的不当使用吗 我的建议是为每个不同的XML结构创建单独的表,因为我们只讨论3个,每年可能有一个新表的增长率。我想这最终是一个偏好问题,但以下是我不喜欢在XML字段中存储这样的数据的一些原因: 在TSQL中编写针对XML的查询很慢。对于少量的数据来说可能不是太糟糕,但您肯定会注意到它有相当数量

我们的数据库中有一个表,将XML存储在其中一列中。在通过web服务响应接收的一组3种不同的XML格式中,XML始终采用完全相同的格式。我们需要经常在这个表中(以及XML字段内部)查找信息。这是对XML数据类型的不当使用吗


我的建议是为每个不同的XML结构创建单独的表,因为我们只讨论3个,每年可能有一个新表的增长率。

我想这最终是一个偏好问题,但以下是我不喜欢在XML字段中存储这样的数据的一些原因:

  • 在TSQL中编写针对XML的查询很慢。对于少量的数据来说可能不是太糟糕,但您肯定会注意到它有相当数量的数据

  • 有时,处理XML blob需要特殊的逻辑。如果您将XML直接存储在SQL中,那么您会发现自己在复制整个逻辑。我以前在一份工作中见过这种情况,在这份工作中,为字段编写XML的人早已不在了,每个人都在思考如何准确地使用它。有时有元素,有时没有,等等

  • 与(2)类似,我认为它破坏了数据库的纯洁性。正如许多人建议不要在字段中存储HTML一样,我建议不要存储原始XML


  • 但尽管有这三点。。。它可以工作,TSQL肯定支持针对它的查询。

    您读字段比写字段多吗


    您希望在最不常用的步骤或不涉及用户的步骤上进行转换。

    我们只写入一次数据。因此,每次我们阅读数据时,我们都必须查看XML。您是否有任何文档链接支持在TSQL中查询XML的速度慢?这正是我想要支持我的论点的原因。谢谢你,瑞安!特别要注意XML是如何实现为CLR类型的。我也不确定这是否值得,但我个人的经验是,通过XML进行查询的速度很慢。