我计划使用SQL Server为我的应用程序存储XML BLOB.我正在努力做出设计决策,并寻找有关此主题的人员的任何指导或建议.
需要存储为XML的数据包含大约100个简单数据点.它们可以很容易地分成每组20个数据点的组.在未来的应用程序版本中,我们计划通过添加新的数据点来增加数据的范围,其中一些数据点将是分层的(列表,字典等).
我们预计不需要对XML数据执行查询.它们最多只是非常简单的查询,如果需要,我们可以将任何数据点提升到关系列.
我不确定是否应该创建一个巨大的XML BLOB来保存所有这些数据,或者是否应该将其分解为多个XML列.在SQL Server 2008 R2中处理XML数据类型是否有任何可以帮助我做出最佳决策的最佳实践或指南?它甚至重要吗?
编辑:我已经开始使用XML作为数据类型,我试图决定是否应该使用一个大型BLOB或将其分解为多个XML列.
是的,这很重要!当您将大型XML blob作为XML数据类型存储在SQL Server中时,它不会被存储为文本blob - 它被"解析"和"标记化"并以比您仅varchar(max)用于存储文本表示的方式更有效的方式存储.
如果它真的看起来像XML,闻起来像XML和叫声也像XML -那么肯定使用的XML数据类型!
更新:如果您只打算存储和检索整个XML - 我认为将其分解为块没有任何好处.XMLSQL Server中的数据类型最多可容纳2 GB的数据(就像varchar(max)),并且您不会看到存储(和检索)多个较小的XML片段会带来任何性能提升.