什么时候应该在Microsoft SQL Server中使用XML数据类型?
什么时候应该在Microsoft SQL Server中使用XML数据类型?
Answers:
就个人而言,我以前从未在SQL Server中使用过XML字段类型,而且自从他们添加了此功能以来,我已经完成了很多数据库编程。在我看来,在本地使用XML内容总是存在程序和性能上的开销。老实说,我认为这是一个a头,因为在2000年代初期,每个人都在XML培训上。“哦,XML很热,所以让我们将其添加到SQL Server中,这样就不会显得过时了。”
我能看到的最好的业务案例可能是记录您收到的基于XML的数据消息,这些数据消息可能希望窥视它们的结构和数据,但出于业务或法律原因,希望保持原始消息的完整性。开销可能太大,无法将XML转换为表结构,但是在SQL Server中使用XML功能可能只会降低检查数据的成本,足以保证使用它。
可能还有许多其他原因使您想要使用它,但是坦率地说,除非您有非常具体的业务原因,否则在SQL Server中使用XML之前,您应该考虑其他通往幸福的途径。如果更有意义,请使用varchar(max)或文本字段。
当然只是我的意见 :)
我只遇到过一些会积极追求在SQL Server中使用XML数据类型的方案。从最低到最有趣的顺序,这是我的脑海:
所有这些,在99%的时间内,设计架构时,我绝对不需要XML字段。
我见过几次SQL Server中的XML数据类型,它基本上已经像数据库中的其他字段一样被用作查询过的字段,如果您有大量数据,可能会对性能产生非常不利的影响。有一个原因叫它SQL服务器而不是XML服务器。:-)违反XML的查询根本不如进行常规选择查询那样快。
我可以看到它用于存储查询得很少的XML,例如将完整的XML文档存储为XML数据类型,但是将可搜索字段(关键字)与XML文档分开存储。这样,您可以更快地查询信息,并在到达要查看完整文档的位置时提取XML文档。实际上,我不得不回过头来使用一些应用程序来执行此操作,在这些应用程序中,人们试图将XML数据类型用作查询量很大的字段,并且数据已经增长到查询变得太慢的地步。