2012-07-09 61 views
0

我正在尝试编写一个XML文件,这是一个Google Product Feed,但速度很慢。从数据库创建XML文件时的性能问题

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

我目前有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等,所以不能确定究竟是什么这里发生在写入关注。

大概写入内存会更快,但是做什么,然后保存到磁盘的过程是什么?

数据量会成为内存问题吗?

显然我用VB编码,使用.NET 2.0

知道的任何建议。

回答

0

性能问题似乎没有写入,但看起来像是导致性能下降的读数。你从哪里读取数据?数据库?那么这就是性能瓶颈所在。

+0

谢谢。那么你是否说我使用的写入方法是性能最好的方法?迭代数据集有没有比我使用的更快的方法?我正在使用MySQL数据库和'OdbcDataReader'查询的加载速度足够快,所以它不会加载数据很慢,而是写入数据的过程中出现了一些问题。 – 2012-07-09 14:39:09

+0

哦,我真是个白痴!我刚刚意识到在获取我的运输数据时,我正在循环访问数据库,同时阅读每条记录!卫生署!它仍然需要大约60秒的时间来处理,但这是一个50%的提高,我想我也发现了一些额外的问题!谢谢! – 2012-07-09 15:35:00