webForumDet fria alternativet

mysql-kopplingen äter upp minnet på servern

Databaser & SQL

5 svar · 352 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Fick just detta mail från mitt webhotell:

Testade att öppna siten din och provade att surfa den och verkar som det är när man loggar in att dllhost.exe som sköter om växlingen till mysql databasen som drar ner minnet. Men Cpu pikar till 100% 1 millisekund sen går den ner normalt igen när jag laddar olika sidor i på sidan din , varför gör den det ? Du ligger på en Dubbel pentium4 burk med 1gb i minne så det är ju otroligt vad den gör när det går tungt. Så det är nåt med din mysql anslutning. Jag undrar om vi ska prova och lägga din mysql databas på en separat linux server istället för att ligga lokalt på windows server.

Vad kan det vara som orsakar detta, använder ASP och mysql som databas, kopplingen ser ut så här:

	cst = "driver={MySQL}; server=***;"
	cst = cst & "uid=***; pwd=***; database=***;option=16386"
	set Connect = Server.CreateObject("ADODB.Connection")
	Connect.open cst

Tror ni det hjälper om dem flyttar min databas till en linuxserver?

Medlem sedan feb. 20011 498 inlägg
#2

Ingen som vet vad det kan bero på?? :q

Medlem sedan aug. 20003 575 inlägg
#3

Han får väl sätta lite lägre prioritet på den då

Medlem sedan maj 2001431 inlägg
#4

Jag har aldrig erfarit att en koppling till mysql genom odbc varit segt i sig, vare sig det är samma dator eller över Internet.
Hur vet du att det är kopplingen i sig som äter upp ditt minne? Ett recordset kan sluka mycket minne, men en knappast en koppling/connection.
dllhost.exe är själva huvudprocessen för din sajt och inte enbart en koppling till MySQL.
MySQL är visserligen snabbare under Linux men det låter som det är något helt annat problem. Kanske du kan posta lite kod och beskriva systemet och vad som görs mer ingående.

Medlem sedan feb. 20011 498 inlägg
#5

Ni kan se på denna adress här nedan hur aktiviteten ökar till 100% på varje sida jag besöker. Tror du har rätt med recordset. Gjorde en sida där jag bara har databaskopplingen och inga recordset och då stiger det inte till 100%. Men när jag använder denna kod stiger den till knappt 100%. Har testat andra koder och där stiger den inte lika mycket som denna kod;

http://www.ampy.net/aktivitet.gif

<%

 	SQL = "SELECT * From kompisar WHERE agare_id = "&session("id")&" AND godkann = 'ja' order by medlem"
	Set RecSet = Connect.Execute(SQL)

	If RecSet.EOF Then

	response.write "<a href='kompisar.asp' target='_top'>Skaffa kompisar!</a>"

	else
%>
		
	<br><br><center><a href="kompisar.asp" target="_top"><img src="bilder/kompisar.gif" border="0"></a>
	<img src="bilder/hr110.gif" width="100"></center>

		
	<table border="0">
		
	<tr height="0"><td></td></tr>

	<tr>

	<td width="3">

	</td>

	<td width="100">

<%
SQL = "SELECT * From kompisar WHERE agare_id = "&session("id")&" AND godkann = 'ja' order by medlem"
	
Set RecSet = Connect.Execute(SQL)

If Not RecSet.EOF Then

			Do Until RecSet.EOF

			

			sql = "select idkort, status from members where username = '" & recset("medlem") & "'"
			set rs = connect.execute(sql)
			useridkort = rs(0)
			userstatus = rs(1)
			set rs = nothing

       

					If Len(recset("medlem")) > 11 then
					strusername = Left(recset("medlem"),11)
					name = ""&strusername&"."
					else
					name = recset("medlem") 
					End If
					

 
	

	

	

					

					if userstatus = "online" then 

					lanken = "<a target=""_top"" href=""krypin.asp?id=" & recset("medlem_id") & """><b><font color=""#009900"">"&name&"</font></b></a>" 

					else

					lanken = "<a target=""_top"" href=""krypin.asp?id=" & recset("medlem_id") & """><font color=""#DD0000"">"&name&"</font></a>" 
					
					end if

				

					If useridkort = "polis" Then
					
						
						
						
						Response.Write "<a href=""javascript:popup('privatchat.asp?vem="&recset("medlem")&"',530,430);""><img src=""bilder/idpolis.gif"" border=""0""></a> "&lanken&"" & "<br>" 

						
						

					ElseIf useridkort = "pojke" Then

						
						
						Response.Write "<a href=""javascript:popup('privatchat.asp?vem="&recset("medlem")&"',530,430);""><img src=""bilder/idpojke.gif"" border=""0""></a> "&lanken&"" & "<br>" 
						

					Else
						
						
						
						Response.Write "<a href=""javascript:popup('privatchat.asp?vem="&recset("medlem")&"',530,430);""><img src=""bilder/idflicka.gif"" border=""0""></a> "&lanken&"" & "<br>"
							
				
					End If
					

					

					

					userstatus = ""

					
					recset.movenext
					loop

end if

%>

	</td>

		
	</tr>
	<tr height="2"><td></td></tr></table>

	<center><img src="bilder/hr110.gif" width="100"></center>
	<%

	
	end if
	%>

	<font size="1" face="verdana">
	<%
	
	Set oRS = Connect.Execute("select count(*) as no7 from kompisar WHERE medlem = '"&session("username")&"' AND godkann = 'nej'") 

	if oRS("no7") = "0" then

	response.write ""

	else

	response.write "<br>&nbsp;&nbsp;<a href='kompisar.asp?vad=godkanna' target='_top'>Ansökningar: " & oRS("no7") & "</a>"

	end if

	%>

	<table><tr height="2"><td></td></tr></table>

	
	<a href="javascript:popup('privatchat_help.asp',530,530);">Privatchatt</a><br><br><br><br>
Medlem sedan maj 2001431 inlägg
#6

Det första jag reagerar på är följande kodsnutt

Do Until RecSet.EOF
sql = "select idkort, status from members where username = '" & recset("medlem") & "'"
set rs = connect.execute(sql)
useridkort = rs(0)
userstatus = rs(1)
set rs = nothing

Att inom en loop skapa nya rs och frågor till databasen kan dra ner prestande rusktigt mkt!
Uppgifterna bör försöka nås genom en join. Jag tippar på att om du löser detta kommer farten tebax på studs till till sajt.

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)