gpt4 book ai didi

c# - 将大量 XML 插入 sql azure 数据库的正确方法

转载 作者:行者123 更新时间:2023-12-03 00:33:03 26 4
gpt4 key购买 nike

目前,我们公司正在将应用程序迁移到云 (Azure),我们有一个命令行应用程序执行以下步骤。

  1. 下载一个文件,其中包含包含更新记录的压缩和签名 xml 文件列表。
  2. 是否有更新或新记录
  3. 下载压缩的 xml 文件
  4. 解压 xml 文件
  5. 取消对 xml 文件的签名
  6. 在存储过程中使用此脚本将每个 xml 插入临时表

    声明 @bulkQuery nvarchar(max) = N'INSERT INTO #BulkTable
    选择批量列
    FROM Openrowset(Bulk ''' + @FilePath + ''', Single_Blob) X';

    执行 sp_executesql @bulkQuery

  7. 将目标表与临时表合并。

但是,由于我发现 OpenRowSet 命令在 SQL Azure 中不可用(我认为这是由于 SQL Azure 数据库没有对文件的本地访问权限),因此我尝试了一种不同的方法:

使用 Web 作业,第 6 步是这样的:

  • 6.1 将 xml 加载到 XmlDocument 对象中
  • 6.2 对 XMLDocument 创建 linq 查询以组织记录
  • 6.3 对于查询中的每条记录,使用 LINQ to SQL 进行插入。

事实是,第二种方法有效,但每个 xml 文件需要 3 小时,而旧应用程序需要 20 分钟才能处理所有 xml 文件。 (我忘了说,通常应用程序会下载4个xml文件,每个文件包含250,000条记录)

我知道第二种方法不是最好的方法,我一直在寻找如何改进它(正确的方法),但我还没有找到类似的东西。

希望你能帮助我,多谢。

最佳答案

如果有帮助,请参阅此论坛帖子:https://social.msdn.microsoft.com/Forums/azure/en-US/861d2307-43b9-4a87-99d9-a406ad581ea3/bulk-load-xml-files-to-sql-azure?forum=windowsazuredata

对于我来说,我会将 XML 文件上传到 Azure Blob 存储中,然后运行辅助角色来执行导入。

关于c# - 将大量 XML 插入 sql azure 数据库的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com