[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] SQL optimering



On Fri, 25 Feb 2005 15:59:11 +0100, Morten Bo Nielsen wrote:

> hej
> 
> Jeg er ved at rende ind i problemer. Vi har dataopsamling på forskellige produktionsdata, og jeg sidder og arbejder med at lave web interfacet til dataene.
> 
> Problemet er at det er ved at være lidt langsomt og timeglas er en dræber hvis man ønsker at overbevise folk om at man har lavet noget godt :-)
> 
> Jeg har en simpelt indexeret tabel i stil med
> 	Datestamp	index	value
> 
> 3 kolonner, meget standard.
> 
> Jeg ønsker så at udtrække den sidste måneds målinger for en given værdi:
> 	Select 	*
> 	From 	SurvMeasurements
> 	Where	Index = 4
> 	And 	datestamp > sysdate - 30
> 
> Det er nok noget af det mest simple jeg kan forestille mig.
> 
> Tager jeg data fra de sidste 30 dage dør mit php script pga. 30 s timeout.
> Så spørgsmålet er hvordan man kan optimere sin database søgning så man rent strukturelt kan håndtere at der er 25.000.000 entries i en tabel. Nogen forslag?
> 
> 

Umiddelbar vil jeg mene at det er mere et spørgsmål om arkitektur af din
web applikation end af optimering af SQL.

Selvom du kommer op en faktor 2-10 med en bedre SQL optimering, vil du
banke ind i time-limit på få sekunder, som folk gider at vente på web
sider.

Derfor forkommer det mig at være en bedre strategi at overveje følgende:

1) hvor ny skal data være, når man ønsker overblik over sidste måned
?? Måske er et natlig batch job triggeret ved et cron job nok ??

2) hvor fin data granularitet har du brug for til visning af din
månedlige overblik ?? Hvis der skal laves lidt grafer og den slags, kan
du måske nøjes med få hundrede data punkter per Måned, istedt for at
grave dig igennem millioner

3) hvor meget varierer dine målinger fra måling til måling?? Måske kan
du sætte en passende aggregered tabel op, som midler målninger over,
skal vi sige, en time ad gangen, og har så kun 24 målningr per type per
dag ??

4) hvor nemt er det at lave fra ovenstående ideer/strategier at lave en
stored procedea, der en gang om natten vågner op og aggregerer de sidste
dags data, og lægger dem over i en meget mindre tabel, som du så kan
søge i 'live' i en apache session ??


MIn erfaring med den slags er: hvis ikke du kan gøre det på under en
sekund (eller deromkring) fra en apache session, så er du nød til at
gøre det på forhånd, og vise cashede resultater frem.


hilsen, Marc   



Regards
> Morten Bo Nielsen
> Topsil Semiconductor Materials A/S
> Linderupvej 4
> 3600 Frederikssund
> 
> Tel, direct: +45 47 36 56 68
> Tel, switchboard: +45 47 36 56 00
> Fax: +45 47 36 00 01
> Email: sslug@sslug



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:44 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *