Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据库创建XML文件时的性能问题_Xml_Vb.net_Performance_Filestream_Xmltextwriter - Fatal编程技术网

从数据库创建XML文件时的性能问题

从数据库创建XML文件时的性能问题,xml,vb.net,performance,filestream,xmltextwriter,Xml,Vb.net,Performance,Filestream,Xmltextwriter,我正在尝试编写一个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.E

我正在尝试编写一个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()
我不熟悉FileStream、MemoryStream等,所以不太确定这里的写作到底发生了什么

可能写入内存会更快,但这样做然后保存到磁盘的过程是什么

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

显然,我是用VB编写的,使用的是.NET2.0


任何建议都值得赞赏。

性能问题似乎不是书面的,但似乎是阅读导致性能下降。你从哪里读取数据?数据库这就是性能瓶颈所在。

谢谢。那么你是说我使用的写方法是性能最好的方法吗?有没有比我现在使用的更快的方法来迭代数据集?我使用的是MySQL数据库和OdbcDataReader,我的查询加载速度足够快,所以加载数据不是很慢,而是在写出来的过程中。哦,我真是个白痴!我刚刚意识到,在获取运输数据时,我在读取每条记录的同时将数据循环回数据库!啊!它仍然需要大约60秒来处理,但这是一个50%的改进,我想我也发现了一些额外的问题!谢谢