1

我试图了解XML在 SQL Server 2005 中使用 DataType 的基本优势。我在这里接受了这篇文章,说如果你想删除多条记录。序列化 XMl,将其发送到数据库中,然后使用以下查询将其删除..

在此处输入图像描述

我很想研究使用此 DataType 的任何其他优势...

编辑

在 SQL Server 2005 中存储 XML 数据的原因

以下是在 SQL Server 2005 中使用原生 XML 功能而不是在文件系统中管理 XML 数据的一些原因:

  1. 您想使用数据库服务器的管理功能来管理您的 XML 数据(例如,备份、恢复和复制)。

    我的理解- 你能分享一些关于它的知识来说明清楚吗?

  2. 您希望以一种高效的交易方式共享、查询和修改您的 XML 数据。细粒度的数据访问对您的应用程序很重要。例如,您可能希望插入一个新部分而不替换整个文档。

    我的理解- XML 在特定的列行中,为了在该行的单元格中添加新部分,需要更新,因此将更新整个文档。对?

  3. 您希望服务器保证格式正确的数据,并可选择根据 XML 模式验证您的数据。

    我的理解- 你能分享一些关于它的知识来说明清楚吗?

  4. 您希望对 XML 数据进行索引以实现高效的查询处理和良好的可伸缩性,并使用一流的查询优化器。

    我的理解——同样可以通过添加单独的列来完成。那么为什么是 XML 列呢?

4

2 回答 2

1

优点:允许存储可以由 xml 模式自动控制的 xml 数据 - 从而保证一定水平的数据质量 许多 Web/桌面应用程序以 xml 形式存储数据,然后可以轻松地在数据库中存储和查询这些数据 - 所以它是存储应用程序可能需要使用的 xml 数据的好地方(例如,用于配置设置)

缺点:使用 xml 字段时要小心,它们可能一开始是无害的存储,但如果您想搜索、分析和报告许多记录,它们可能会成为性能噩梦。

此外,如果将添加、更改或删除 xml 字段,这可能会很慢并导致复杂的 t-sql。

在复制中,即使只有一个节点发生更改,整个 xml 也会更新 - 因此您可能会遇到更多无法轻松解决的冲突。

于 2012-05-14T19:07:31.840 回答
1

我想说的是你列出的 4 个优势,这两个很关键:

您希望以一种高效的交易方式共享、查询和修改您的 XML 数据

SQL Server 以一种优化的方式存储 XML,而不是存储纯字符串,并允许您以有效的方式查询 XML,而不是要求您将整个 XML 文档带回客户端。想一想,如果您想查询 10,000 个 XML 列,每个列包含 1k 的数据,那是多么的低效。对于小型 XPath 查询,您需要为每个客户端每次通过网络返回 10k 数据。

您希望对 XML 数据进行索引以实现高效的查询处理和良好的可扩展性,并使用一流的查询优化器

这与我上面所说的有关,它比纯文本列更有效地存储,后者也会遇到页面碎片问题。

于 2012-05-15T08:45:07.847 回答