---
title: "XML/Dataset och prestanda"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/180683-xml-dataset-och-prestanda"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Pedda"
published: "2009-10-13T07:09:20.000Z"
updated: "2009-10-16T09:10:20.000Z"
replies: 11
views: 543
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/180683-xml-dataset-och-prestanda"
---

# XML/Dataset och prestanda

## #1 — Pedda, 2009-10-13T07:09Z

Är inte van att programmera ASP.NET så detta kanske är en dum fråga.  ;)

Låt oss säga att jag har en xml fil som jag läser in till ett dataset när man först besöker sidan.
Hur hanterar ni datasetet sen?
Lagrar ni den i en session för att ha den tillgänglig?

Permalänk: https://www.webforum.nu/p/180683

## #2 — Herman, 2009-10-13T07:55Z

Jag har mest jobbat utan sessioner och då använt Cache objektet för lagring av DataTable. Fungerar finemang.

Permalänk: https://www.webforum.nu/p/2207761

## #3 — Nickemannen, 2009-10-15T12:30Z

Hur stor är xml filen?
Skall det utföras utsökningar i den?
Vad är det för typ av data?
Är det olika xml filer för olika kunder?

Permalänk: https://www.webforum.nu/p/2207974

## #4 — Pedda, 2009-10-15T13:00Z

XML filen är ca 2MB, men jag plockar bara ut den data jag ska använda och sparar i mitt dataset. Så det jag har i datasetet är inte så stort.
Det är bara en xml fil, men den uppdateras emellanåt med en webservice så i princip kan olika personer få olika data i sitt dataset.

xml filen innehåller bara lite text. T.ex den jag nyss har kört är på 4500 rader, 224 KB.
Utdrag ur xml filen som är sparad ifrån datasetet:

```
<Documents>
    <NodeID>Doc_121558</NodeID>
    <Type>Doc</Type>
    <Documentname>Environmental Checklist</Documentname>
    <Parent>Node_1550381</Parent>
    <AllParents>Node_1550381</AllParents>
    <Comment>Checklist for project related EGD issues</Comment>
    <CustomerID />
    <DocumentID>EHDS743659</DocumentID>
    <Revision>1</Revision>
    <Data-version>-.1</Data-version>
    <Status>Docstatus_4332</Status>
    <Transmittal>Tech, Preliminary</Transmittal>
    <SubmitType />
    <SubmittalReason />
    <SubmittalTime />
    <ReceiveResponse />
    <ReceivedTime />
    <CommentInSource />
  </Documents>
```

Permalänk: https://www.webforum.nu/p/2207977

## #5 — Nickemannen, 2009-10-15T17:26Z

Okej, jag tycker att lägga det i en session låter som en dålig ide.
Jag hade nog egentligen röstat för en databas här.

Jag har ingen erfarenhet av det du vill göra, men utifrån det jag vet just nu är att jag hade lagrat det inlästa dataset'et i HttpApplication dvs det ligger statiskt över hela applikationen, du säger att ett par webservices ändrar i den ibland, du kan då lägga dig och lyssna på ett event när filen blir uppdaterad och då läser du om xmlfilen och uppdaterar ditt dataset.
För dataset:et i applikationen blir readonly antar jag?

Sedan om du funderar på framtiden, lägger varje serviceanrop till saker i xml filen så lär den växa ganska fort då är frågan om du inte skall använda dig av en databas istället.

Permalänk: https://www.webforum.nu/p/2208008

## #6 — Pedda, 2009-10-15T18:17Z

Ingen databas tyvärr.

Ska söka på HttpApplication och se vad det är.

Permalänk: https://www.webforum.nu/p/2208016

## #7 — Pedda, 2009-10-15T20:24Z

Har läst en hel del nu och det jag kommit fram till är att det bästa att välja på verkar vara HttpApplicationState eller HttpCache om jag förstått det bäst.

Men en följdfråga är om jag väljer att spara datasetet i någon av dom, är dom globala då?
Viktigt för mig då varje användare kommer ha ett eget dataset.

Permalänk: https://www.webforum.nu/p/2208028

## #8 — Nickemannen, 2009-10-15T20:45Z

Jaha skall varje användare ha sitt eget.. då är nog inte applicationstate eller httpcache. Som gäller. Men det känns ju riktigt surt att varje användare skulle behöva lägga in ca 2mb filer dataset i minnet :\|.

Det går absolut inte med en databas menar du? Måste det vara xmlfiler? :S

Ett annat alternativ är ju att läsa in xml filen varje gång den behövs.

Permalänk: https://www.webforum.nu/p/2208033

## #9 — Pedda, 2009-10-16T07:13Z

Förtydligande:
XML filen som är 2MB läses in när man kommer till sidan. Men den läggs inte i en session som den är utan strippas ner till ca 10-20% av originalstorleken.

Sidan körs på en NAS ute på ett bygge och har inte SQL installerat.

Endast 4-5 st användare av applikationen.

Permalänk: https://www.webforum.nu/p/2208055

## #10 — Herman, 2009-10-16T08:52Z

Är det så små mängder ska du inte behöva tänka på prestanda nå vidare. 

Du kan enkelt använda cache objektet för sessioner också. bara lägga till sessionsID:et till nyckeln. Det fina med cache objektet är att du kan styra hur länge cache tiden ska vara per objekt lagrat. 

Sen kan du kika *Cache Dependancy* om du vill snyggt kunna tvinga en uppdatering av innehållet. 

Exempel för cachening / lagring av dataset i 900 sekunder. 

string uniktIdFörEnAnvändare = "dokData\_" + Session.SessionID;

Cache.Insert(uniktIdFörEnAnvändare , datasetDelen, null,DateTime.Now.AddSeconds(900), TimeSpan.Zero);
\______\_

Permalänk: https://www.webforum.nu/p/2208064

## #11 — Pedda, 2009-10-16T09:10Z

Ska helt klart läsa mer om Cache.
Jag tackar för tipset.  (y)

Permalänk: https://www.webforum.nu/p/2208070

## #12 — Pedda, 2009-10-16T09:10Z

Ska helt klart läsa mer om Cache.
Jag tackar för tipset.  (y)

Permalänk: https://www.webforum.nu/p/2208071

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/180683-xml-dataset-och-prestanda
