Avatar billede mifan Nybegynder
01. maj 2007 - 15:46 Der er 3 kommentarer og
1 løsning

Scanning af xml/anden fil

Jeg har noget data, som skal distribueres ud, sammen med et søgeværktøj jeg udvikler i C#.

Dataen har jeg i en sql-database, og har tænkt mig at distribuere med i en fil.

Spørgsmålet er, hvis jeg også skal tænke på performance, hvordan gør jeg det så smartest?

Har tænkt på en xml fil. Men vi snakker måske omkring 500.000 posts, og den søgning der skal foregå er en scanning for at sammenligne det scannede data med det fra databasen.
Så vi kan let snakke 3-5000 søgninger pr. scanning.
Det er dog ren tekst det hele.

Så, nogen gode idéer? Kan jeg preloade dataen i memory, evt? Eller how? :)

Jeg har endnu ikke testet hastighedn på xml-løsningen, men forestiller mig dog, at en 5000 x 500.000 scanning tager sin tid.
Avatar billede Slettet bruger
02. maj 2007 - 08:06 #1
Du kunne serialize din xml fil, og når du så skal bruge den, så deserializer du den til dit array, og søger derfra, det må være den hurtigste metode. Serializing tager ingen tid, selv med meget store xml filer
Avatar billede dr_chaos Nybegynder
02. maj 2007 - 10:45 #2
Det hurtigste vil være at bruge en xml reader.
Problemet med serialiserer til et array er at så ryger det ind i hukommelsen og det er windows ikke glad for.
En xmlreader læser den fysisk fil.
Du kan så læse din xml som matcher dine søgnings kriterier ind i f.eks. et array eller lignende.

Et eksempel:
using System;
using System.Xml;

public class Test20040221 {
public static void Main (string[] args) {
XmlTextReader xmlReader = new XmlTextReader("test20040221.xml");
while (xmlReader.Read()) {
if (xmlReader.HasAttributes) {
while (xmlReader.MoveToNextAttribute()) {
if (xmlReader.Value == args[0]) {
Console.WriteLine("Found value in attribute named {0}.",
xmlReader.Name);
}
}
}
}
}
}

Tyvstjålet herfra:
http://www.thescripts.com/forum/thread176629.html
Avatar billede mifan Nybegynder
02. maj 2007 - 11:04 #3
Nice chaos, det går hurtigt nok :) Opret du et svar, så får du pointene :D
Avatar billede dr_chaos Nybegynder
02. maj 2007 - 19:39 #4
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester