Jag hanterar väldigt stora mängder data som förs in via olika XML-filer. Visst, du kan göra sådant med t.ex. XPath-uttryck, men det skulle förmodligen ändå traversera igenom XML-filen (notera: jag gissar litet grand här eftersom jag inte vet hur din XML-fil ser ut) eftersom XML inte är indexerat på något sätt. Finns det någon prestandavinning att söka ut informationen via ett dataset? Om du skapar DataSet:et med primärnyckel och sedan laddar in XML:en i det samt sedan söker med DataTable.Find på primärnyckeln så är det i stort sett samma sak prestandamässigt. Dock får du en massa annan funktionalitet som du kanske/kanske inte behöver. Tack för svaren, DOM XML
Vid ett tillfälle så kommer först en huvudloop starta och sedan en underloop som hanterar olika
relationer till barntabeller.
Vid denna underloop vill jag titta igenom en XML-fil om det aktuella ID:t finns i en XML-fil på ca 100 rader.
Ett alternativ är att skapa en loop som går igenom denna XML-fil varje gång som underloopen körs men det är prestandaslöseri anser jag.
Kan man inte göra något liknande SQL? "SELECT * FROM Tabell where ID = + "ID?
Som man direkt sorterar ut posten?
MVH
RobertSv: DOM XML
Vore det inte bättre att läsa ut din information ur XML-filen til t.ex. en HashTable eller annan passande datastruktur (återigen; beror på strukturen i XML-filen) och fråga den strukturen i varje varv i loopen?
/AndreasSv:DOM XML
Annars så är Hashtabell ett alternativ.Sv: DOM XML
Se http://www.dotnetslackers.com/Performance/re-746_DataSet_Performance_Tips_with_Indicies.aspx för litet tips om hur man indexerar DataSet.
/AndreasSv:DOM XML
Jag har jobbat runt det hela då jag insåg det blev fel.
Jag ska förklara scenariot:
- Jag har ett antal XML-filer som har en viss struktur gentemot varandra, likt en relationsdatabas.
- Vidare har jag en struktur i databasen som baseras på dynamiska faktorer som berättar hur jag skall läsa in XML-informationen (Mallattribut). Vilket element som skall in var etc.
- Tanken är att jag skall läsa in från XML-filen och ta dess elementvärde eller annat attributvärde och läsa in det och lägga in det med motsvarande mallattribut i hashtabellen.
Som jag har byggt det nu så har jag en hashtabell som lagrar information om Mallattributen och sedan har jag läst in XML-informationen via ett dataset men det blir ju fel då jag inte vet till vilket element som XML-värdet tillhör.
Har någon några konkreta ideer?
MVH
Robert