webForumDet fria alternativet

Dataset vs ny connection

.NETur .NET

3 svar · 256 visningar · startad av Dino

Medlem sedan sep. 20011 914 inlägg
Frågan#1

Har en sida där jag via vad som väljs i en DDL jobbar med datan från 20 rader åt gången(se nedan). Vad är bäst att ta ut all data en gång och sätta in i ett dataset, kan vara 100 rader i varje tabel, och på så sätt arbeta mot datasetet när ett nytt alternativ välj i DDLen. Eller genom en ny runda till databasen ta ut de 20 raderna jag behöver beroende på vad som väljs i DDLen.
Alltså är det någon som har en bra tumregel för när ett dataset är för stort och det är bättre att istället göra en ny rundtur till databasen.
Ex.
Har två frågor som resulterar ungefär som nedan.

tabel1
id | aaa | bbb | ccc | ddd | eee | fff | ggg 
----------------------------------------------------
1  | 342 | 733 | 122 | 999 | 121 | 409 | 324
2  | 342 | 733 | 122 | 999 | 121 | 409 | 324
3  | 342 | 733 | 122 | 999 | 121 | 409 | 324
4  | 342 | 733 | 122 | 999 | 121 | 409 | 324
5  | 342 | 733 | 122 | 999 | 121 | 409 | 324
6  | 342 | 733 | 122 | 999 | 121 | 409 | 324
7  | 342 | 733 | 122 | 999 | 121 | 409 | 324
8  | 342 | 733 | 122 | 999 | 121 | 409 | 324
9  | 342 | 733 | 122 | 999 | 121 | 409 | 324
10 | 342 | 733 | 122 | 999 | 121 | 409 | 324
[b]till[/b]
100

och
tabel2
id | aaa 
-----------
1  | 1132 
2  | 1332 
3  | 4255
4  | 1832 
5  | 342 
6  | 5352
7  | 2132 
8  | 1132 
9  | 1332 
10 | 3132 
[b]till[/b]
100

Lite suddigt kanske.

Medlem sedan juni 20011 732 inlägg
#2

Det beror nog lite på hur sidan används. Om dina data återanvänds många gånger tjänar du naturligtvis på att mellanlagra dina data i ett dataset, och motsatsen förstås. Å andra sidan, har du väldigt många samtidiga användare där varje användare har ett eget dataset med data kopplad till sig så tar det ganska mycket systemresurser i anspråk. Samtidigt vill man ju naturligtvis minimera trafiken mellan databasen också.

Hm, mycket svammel utan något egentligt svar blev det visst. :) Någon som vet om flera användare kan dela på samma dataset förresten? Det kan ju i så fall vara ett alternativ.

Medlem sedan mars 20002 836 inlägg
#3

om det är data som sällan uppdateras så kan man ju lägga datasetet i cachen, dvs implementera caching i sitt BDL (BusinessDataLayer=lagret närmats databasen)

IBuySpy Portal, www.asp.net, har en del cachning som man kan kika på för att komma ingång med det.

cya,
PatrikB

Medlem sedan sep. 20011 914 inlägg
#4

I mitt fall så måste varje användare ha ett eget dataset, men man kan ju cache ett dataset för flera användare. Typ:

dsDataset = cache("dsDataset ")
if dsDataset is nothing then
   'Hämta ny data från databasen och in i datasetet
   cache("dsDataset ") = dsDataset
end if

red// PatrikB var visst före i tanken. :)

131 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)