1
我有一個數據庫結構充滿了我試圖寫入XML文件的數據。下面是VB代碼的結構方式的味道:加速將數據庫結構複製到XML的代碼
Dim xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance")
Return _
New XElement(_
"providers", _
New XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName), _
New XAttribute(xsi + "noNamespaceSchemaLocation", "\schema\provider_schema.xsd"), _
From p In context.providers _
Select New XElement(_
"provider", _
New XElement("external_provider_id", p.external_provider_id), _
New XElement(_
"demographic", _
New XElement("record_type_id", p.demographics.Single.record_type_id), _
New XElement("provider_number", p.demographics.Single.provider_number), _
...
New XElement("provider_type_id", p.demographics.Single.provider_type_id)), _
New XElement(_
"provider_specialties", _
From s In p.provider_specialties _
Select New XElement(_
"provider_specialty", _
New XElement("external_provider_specialty_id", s.external_provider_specialty_id), _
New XElement("record_type_id", s.record_type_id), _
New XElement("effective_date", s.effective_date.TruCareFormat), _
...
結構中提取數據約15個不同的表,都綁回商臺,其中有一些可能去2或3級了。目前大約有40,000個提供商,代碼大約需要1.5個小時才能完成。
我有兩個問題與此代碼,因爲它目前爲:
- 我無法看到或報告任何進展,因爲處理是所有依賴於一個巨大的LINQ查詢。即使我不能做得更快,我想知道我還有多久需要等待。我的第一個版本的代碼有For循環而不是查詢,所以我可以顯示進度,但是它花費的時間更長。
- 顯然我想加快這一點。似乎應該有一種更簡單的方法將數據轉換爲XML文件,特別是因爲數據庫結構首先是從XSD創建的。
關於我能做些什麼來改善這一點的任何想法?