|
| Array i Application("") - God idé ? Fra : Rune Baess |
Dato : 14-09-02 10:38 |
|
Jeg har en tabel på ca. 300 rows og 3-4 kolonner som jeg ofte læser ud i et
flerdimentionelt Array vha ADO's getrows.
Da denne tabel kun sjælent opdateres tænke jeg på at lægge Array'et i en
Applikations variabel ved OnApplicationStart(), (samt når det lejlighedsvist
opdateres) så jeg derfor slap for at lave en masse SQLtræk.
- Men er dette en god eller dårlig idé, hvad ydelse angår ?
- Hvor tungt er det for serveren, hele tiden at skulle aflevere en 'stor'
Applikationsvariabel, og er det hurtigere end at hente den fra SQLserveren
hvergang ?
Rune
| |
Kim Bach Petersen (14-09-2002)
| Kommentar Fra : Kim Bach Petersen |
Dato : 14-09-02 12:33 |
|
> Jeg har en tabel på ca. 300 rows og 3-4 kolonner som jeg ofte læser
> ud i et flerdimentionelt Array vha ADO's getrows.
> Da denne tabel kun sjælent opdateres tænke jeg på at lægge Array'et i
> en Applikations variabel ved OnApplicationStart(), (samt når det
> lejlighedsvist opdateres) så jeg derfor slap for at lave en masse
> SQLtræk.
Det vil sandsynligvis give bedre ydelse, applikationsvariable er meget
hrutigere end databaseudtræk, men med hensyn til ydelse kommer det altid an
på så meget - og derfor er en test i praksis det eneste sikre bevis for
forbedret ydelse (og det er vel heller ikke uoverskueligt). Datasettet lyder
ikke overvældende stort mål med moderne maskiners hukommelse, så heller ikke
det burde være noget problem.
Kim
| |
Jesper Nielsen (14-09-2002)
| Kommentar Fra : Jesper Nielsen |
Dato : 14-09-02 14:03 |
|
> Jeg har en tabel på ca. 300 rows og 3-4 kolonner som jeg ofte læser ud i
et
> flerdimentionelt Array vha ADO's getrows.
> Da denne tabel kun sjælent opdateres tænke jeg på at lægge Array'et i en
> Applikations variabel ved OnApplicationStart(), (samt når det
lejlighedsvist
> opdateres) så jeg derfor slap for at lave en masse SQLtræk.
> - Men er dette en god eller dårlig idé, hvad ydelse angår ?
> - Hvor tungt er det for serveren, hele tiden at skulle aflevere en 'stor'
> Applikationsvariabel, og er det hurtigere end at hente den fra SQLserveren
> hvergang ?
Jeg driver et website, og har på alle siderne en liste over de nyeste
brugere.
I begyndelsen slog jeg op i databasen hver gang, men da jeg kom over X
samtidige online brugere, krævede det simpelthen for meget.
Jeg lavede så et script, som køres hvert 5. sekund og opdaterede forskellige
Application veriable - bl.a. den med de 10 nyeste brugere. Der oprettes et
array, og application variablen opdateres.
På siderne skal der således ikke laves et databasekald for hver sidevisning,
og jeg har oplevet en stor forbedring i ydelsen.
Så mit bud ville være, at du roligt kan oprette den application variabel.
--
Mvh. Jesper
| |
|
|