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()
我不熟悉FileStream
,MemoryStream
等,所以不能确定究竟是什么这里发生在写入关注。
大概写入内存会更快,但是做什么,然后保存到磁盘的过程是什么?
数据量会成为内存问题吗?
显然我用VB编码,使用.NET 2.0
知道的任何建议。
谢谢。那么你是否说我使用的写入方法是性能最好的方法?迭代数据集有没有比我使用的更快的方法?我正在使用MySQL数据库和'OdbcDataReader'查询的加载速度足够快,所以它不会加载数据很慢,而是写入数据的过程中出现了一些问题。 – 2012-07-09 14:39:09
哦,我真是个白痴!我刚刚意识到在获取我的运输数据时,我正在循环访问数据库,同时阅读每条记录!卫生署!它仍然需要大约60秒的时间来处理,但这是一个50%的提高,我想我也发现了一些额外的问题!谢谢! – 2012-07-09 15:35:00