【问题标题】:Performance issues creating an XML file from Database从数据库创建 XML 文件的性能问题
【发布时间】:2012-07-09 12:37:26
【问题描述】:

我正在尝试编写一个 XML 文件,它是一个 Google 产品提要,但速度很慢。

在谷歌上搜索了很多,我不确定最快的方法,除了把它分成更小的文件。

我目前有大约 3500 种产品,这就是我正在做的事情。

Dim fs As New FileStream(HttpContext.Current.Server.MapPath("LOCATION OF FEED XML"), FileMode.Create)
Dim writer As New XmlTextWriter(fs, System.Text.Encoding.UTF8)

writer.WriteStartDocument()
   ' ==== LOAD DATABASE INTO OdbcDataReader CALLED 'd' ==== '
While d.Read
   try
        writer.WriteStartElement("item")

        writer.WriteStartElement("g:id")
        writer.WriteString(pID)
        writer.WriteEndElement()
        '==== etc 
    catch
        ignore broken ones
    end
End While

     writer.WriteEndElement()
     writer.WriteEndDocument()
     writer.Close()

 d.Dispose()
 connection.Dispose()
 connection.Close()

我不熟悉FileStreamMemoryStream 等,所以不太确定这里到底发生了什么。

据推测写入内存会更快,但执行此操作然后保存到磁盘的过程是什么?

数据量是否会成为内存问题?

显然我正在使用 .NET 2.0 使用 VB 进行编码

任何建议表示赞赏。

【问题讨论】:

    标签: xml vb.net performance filestream xmltextwriter


    【解决方案1】:

    性能问题似乎不是在写入,但看起来是读取导致性能变慢。你从哪里读取数据?数据库?那么这就是性能瓶颈所在。

    【讨论】:

    • 谢谢。那么你是说我使用的 write 方法是性能最好的方法吗?有没有比我当时使用的更快的方法来迭代数据集?我正在使用 MySQL 数据库,OdbcDataReader 我的查询加载速度足够快,所以它加载的数据不是很慢,而是正在写出来。
    • 哦,我真是个白痴!我刚刚意识到在获取我的运输数据时,我在读取每条记录的同时循环回数据库!嗬!它仍然需要大约 60 秒的时间来处理,但这是一个 50% 的改进,我想我也发现了一些额外的问题!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多