Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

ASP/SQL: Hjælp min website overbelaster mit webhotels server?

Side 1 ud af 2 (19 indlæg)
Tilmeldt 21. Nov 11
Indlæg ialt: 131
Skrevet kl. 20:18
Hvor mange stjerner giver du? :

Jeg har åbnet et online galleri med sportsbilleder med tilhørende webshop som jeg selv har kodet.

Nu har jeg fået besked på at min side og især denne:

http://www.arnason.dk/fodbold/foto/foto.asp?nr=11&ref=968

overbelaster den server jeg ligger på.

Siden viser det enkelte billede via et databasekald til MySQL hvor URL-stien til fotofilen hentes og indsættes i <IMG>

Der er naturligvis en del trafik da mange ser billederne derfor så har jeg også forsøgt at gøre sidens koder så enkelt som mulig.

Da jeg er selvlært så har jeg ikke den store erfaring i hvad det er af koder som kan tvinge min server i knæ og lægge beslag på dens resurser.

Er der nogen der har en ide til hvad det kan være. Er det min generelle kode, kaldet til databasen (indeholder 90000 poster) eller bare billedfilen som fylder ca. 130 kb som skal overføres.

Selve mit database-kald har jeg indsat herunder men jeg syntes jeg har gjort det så enkelt som muligt eller hvad siger I eksperter?

Har I nogle ideer til hvad serveren ikke kan lide klare?

/Magnus

SQL="SELECT"
SQL=SQL & " COUNT(Billeder.id) AS Antal,"
SQL=SQL & " Kalender.dato,"
SQL=SQL & " Kalender.hold1,"
SQL=SQL & " Kalender.hold2,"
SQL=SQL & " Kalender.titel,"
SQL=SQL & " Kalender.subtitel,"
SQL=SQL & " Kalender.subref,"
SQL=SQL & " Kalender.turnering,"
SQL=SQL & " Kalender.kategori,"
SQL=SQL & " Kalender.gruppe,"
SQL=SQL & " Kalender.beskrivelse,"
SQL=SQL & " (SELECT hold AS hhold FROM Hold WHERE Kalender.hold1=Hold.holdid) AS hhold,"
SQL=SQL & " (SELECT hold AS uhold FROM Hold WHERE Kalender.hold2=Hold.holdid) AS uhold,"

SQL=SQL & " Billeder.id,"
SQL=SQL & " Billeder.sti,"
SQL=SQL & " Billeder.ref,"
SQL=SQL & " Billeder.filkode,"
SQL=SQL & " Billeder.tekst,"
SQL=SQL & " Billeder.keywords,"
SQL=SQL & " Billeder.width,"
SQL=SQL & " Billeder.height,"
SQL=SQL & " Billeder.vist,"
SQL=SQL & " Billeder.visttotal,"
SQL=SQL & " Billeder.settings,"



SQL=SQL & " CONCAT(subtitel,': ',titel) AS titeltotal,"

SQL=SQL & " Kategori.sportsgren,"

SQL=SQL & " Turnering.navn,"
SQL=SQL & " Turnering.kon"


SQL=SQL & " FROM Billeder, Kalender"

SQL=SQL & " LEFT JOIN Kategori ON Kalender.kategori=Kategori.id"

SQL=SQL & " LEFT JOIN Turnering ON Kalender.turnering=Turnering.id"


SQL=SQL & " WHERE"

SQL=SQL & " Kalender.id>'0'"
SQL=SQL & " AND ((Billeder.ref=Kalender.id"

If Request.QueryString("ref")<>"" then
SQL=SQL & " AND Billeder.ref='" & Request.QueryString("ref") & "'"
end if

Set cRS = conn.execute(SQL)

SQL=SQL&" GROUP BY Billeder.id ORDER BY Kalender.dato, Billeder.capturetime, Billeder.id"
SQL=SQL&" LIMIT " & varFoto-1 & ", 1"
Set RS = conn.execute(SQL)

Fra København
Tilmeldt 10. Oct 08
Indlæg ialt: 62
Fra  Bitrake Skrevet kl. 20:42
Hvor mange stjerner giver du? :

Hej

Prøv at logge din fulde query og derefter fyr den af på databasen med EXPLAIN foran.

Dvs kun ren sql, som bliver lavet af dit php script.

Output kan fortælle om du mangler indeks eller lign - du må gerne poste output her, så kan jeg tage et kig

/Niels

Fra Viborg
Tilmeldt 5. Jun 10
Indlæg ialt: 1941
Fra  Modified Solutions ApS Skrevet kl. 20:50
Hvor mange stjerner giver du? :

Det var godtnok også en seriøs SQL sætning du har gang i der...

Kan du poste den fulde SQL sætning? evt echo den ud så vi kan se den?

Fra Viborg
Tilmeldt 5. Jun 10
Indlæg ialt: 1941
Fra  Modified Solutions ApS Skrevet kl. 20:52
Hvor mange stjerner giver du? :

Lige et lille tip, sæt index til id, og alle de felter du sætter WHERE XXX = YYY - der skal XXX også have index.

Fra Brønshøj
Tilmeldt 11. Jul 06
Indlæg ialt: 232
Skrevet kl. 22:12
Hvor mange stjerner giver du? :
Gennemsnit 5,0 stjerner givet af 1 person

Og så vil det bestemt også være en idé at få kigget på SQL Injection.

Kim Larsen | kim@soze.dk | soze.dk
alkoholprocent.dk | blomsterdekoratoer.dk | hopogdans.dk

Tilmeldt 21. Nov 11
Indlæg ialt: 131
Skrevet kl. 01:07
Hvor mange stjerner giver du? :

Hejsa

Tak for alle jeres tips i min søgen.

Jeg er næsten sikker på hvad du mener jeg skal gøre.

EXPLAIN SELECT.... osv.

indsætter jeg i min database og det giver lyn hurtigt dette resultat:

SQL-resultat

Database: Arnason_dk
Genereringstid: 08. 05 2012 kl. 00:58:08
Genereret af: phpMyAdmin 2.11.8.1deb5+lenny9 / MySQL 5.1.49-log
SQL-forespørgsel: EXPLAIN SELECT COUNT(Billeder.id) AS Antal, Kalender.dato, Kalender.hold1, Kalender.hold2, Kalender.titel, Kalender.subtitel, Kalender.subref, Kalender.turnering, Kalender.kategori, Kalender.gruppe, Kalender.beskrivelse, (SELECT hold AS hhold FROM Hold WHERE Kalender.hold1=Hold.holdid) AS hhold, (SELECT hold AS uhold FROM Hold WHERE Kalender.hold2=Hold.holdid) AS uhold, Billeder.id, Billeder.sti, Billeder.ref, Billeder.filkode, Billeder.tekst, Billeder.keywords, Billeder.width, Billeder.height, Billeder.vist, Billeder.visttotal, Billeder.settings, CONCAT(subtitel,': ',titel) AS titeltotal, Kategori.sportsgren, Turnering.navn, Turnering.kon FROM Billeder, Kalender LEFT JOIN Kategori ON Kalender.kategori=Kategori.id LEFT JOIN Turnering ON Kalender.turnering=Turnering.id WHERE Kalender.id>'0' AND ((Billeder.ref=Kalender.id AND Billeder.ref='968' AND Kalender.gruppe='') OR (Billeder.id>'0' AND Kalender.gruppe<>'' AND Billeder.settings LIKE Kalender.gruppe AND Kalender.id='968'));
Rækker: 6
id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra
1     PRIMARY     Kalender     const     PRIMARY     PRIMARY     4     const     1     
1     PRIMARY     Kategori     const     PRIMARY     PRIMARY     4     const     1     
1     PRIMARY     Turnering     const     PRIMARY     PRIMARY     4     const     1     
1     PRIMARY     Billeder     ALL     PRIMARY     NULL     NULL     NULL     89754     Using where
3     DEPENDENT SUBQUERY     Hold     const     PRIMARY     PRIMARY     4     const     1     
2     DEPENDENT SUBQUERY     Hold     const     PRIMARY     PRIMARY     4     const     1     

Er der noget som siger jeg noget og kan I se hvad der er galt?

Jeg forstår ikke helt hvad der menes når Tom skriver: "Lige et lille tip, sæt index til id, og alle de felter du sætter WHERE XXX = YYY - der skal XXX også have index."

Kan en af jer uddybe eller vise hvad det betyder at "have indes"?

Igen tak fordi der er nogle der vil hjælpe.

/Magnus

Fra Helsingborg
Tilmeldt 3. Apr 05
Indlæg ialt: 6555
Fra  TextReactor Skrevet kl. 07:38
Hvor mange stjerner giver du? :

Indy:
Kan en af jer uddybe eller vise hvad det betyder at "have indes"?

Index... det er lige som indholdsfortegnelsen i en tyk bog. Det gør det hurtigere for systemet at finde tingene

http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Men jeg vil nok se på om du ikke kan forkorte din SQL istedet for at have sådan en smøre? Du har bl.a. en LIKE som også kan påvirke hastigheden.

Fra Havdrup
Tilmeldt 27. Jun 08
Indlæg ialt: 81
Fra  Vexo Skrevet kl. 07:57
Hvor mange stjerner giver du? :

1. Bruger du alt det data som du henter ud ved den viste query?

2. Du laver 2 ekstra queries direkte i din SQL kode frem for at lave en join, hvilket ødelægger hastigheden yderligere.

3. Med Indexering, menes der at du skal oprette et index på din tabel. Du skal inkludere din where række m.m. men prøv at læse linket som der er postet tidligere, det bør give dig et hint om hvordan det skal sættes op. 

4. Din side er umiddelbart meget langsom, hvilken type hotel ligger du på?

Fra Viborg
Tilmeldt 5. Jun 10
Indlæg ialt: 1941
Fra  Modified Solutions ApS Skrevet kl. 08:24
Hvor mange stjerner giver du? :

kenney:

4. Din side er umiddelbart meget langsom, hvilken type hotel ligger du på?

Umiddelbart ser det ud til at være en ASP server (ikke ASP.NET)
Til TS: Hvorfor bruger du egentlig ASP & MySQL sammen? Det kan være noget HØ for at sige det direkte... Og hvad er serverens software egentlig? Umiddelbart tyder det på at være en ældre dame den server? Gammelt phpmyadmin it seems?...
Fra Helsingborg
Tilmeldt 3. Apr 05
Indlæg ialt: 6555
Fra  TextReactor Skrevet kl. 08:56
Hvor mange stjerner giver du? :

Tom Frank Christensen:
Hvorfor bruger du egentlig ASP & MySQL sammen? Det kan være noget HØ for at sige det direkte..

Kun hvis koden er noget hø.. jeg kender flere sites som kører ASP og mySQL med store datamængder og det kører fint... 

Side 1 ud af 2 (19 indlæg)