2012-07-09 37 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