【问题标题】:XML Import how would you do it?XML Import 你会怎么做呢?
【发布时间】:2010-05-17 23:14:12
【问题描述】:

XML 被用作我们的主要集成点之一。它一次由许多客户端访问,但同时导入的客户端过多可能会减慢我们的数据库速度。 必须有人解决了这样的问题。

我基本上是使用 VB 来解析数据并导入我想要的和不想要的。

有没有更好的办法?

【问题讨论】:

  • 您想以 XML 数据类型将 XML 存储在 SQL Server 2005 数据库中吗?还是切碎 XML 的内容以插入数据库表?
  • 粉碎从 1 个 xml 文件导入到多个表的内容

标签: xml vb.net sql-server-2005


【解决方案1】:

您是否考虑过创建SSIS package?您可以通过这种方式有效地从许多不同的源类型导入数据。

这是一个很好的起点:http://msdn.microsoft.com/en-us/library/ms188032(v=SQL.100).aspx

【讨论】:

  • SSIS 包是否适用于多客户端方案。 xml 文件可能有 100 个不同的位置...
  • 如果文件具有相同的架构并且它们位于可访问的驱动器上,这应该不是问题。
【解决方案2】:

如果没有具体细节,很难说您的慢点在哪里。您是否正在衡量您的应用程序中花费的时间?

我发现很多时候,大型数据集被不必要地具体化,这会占用内存并降低性能。如果您在开始解析数据之前收到 XML 输入数据并将其存储在 XmlDocument 中,则可能会在您的场景中发生这种情况。如果XmlDocument 很大,这会杀死你。

如果可能,通过使用XmlReader 读取数据来逐步处理数据。一些数据集适合这种方法:所需的处理不需要很多上下文,而是在数据中线性进行。在这种情况下,与将所有内容都放入XmlDocument 相比,您会看到一个巨大的改进。但是,其他数据集的结构如此之好,以至于您确实必须在继续之前将所有内容都放在核心中。

同样,如果不了解输入数据的结构,很难说是否有更好的方法。

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    相关资源
    最近更新 更多