v2.5.2
Giriş yap

Sql Sorgum Çok Yavaş Çalışıyor

zfactor
1,318 defa görüntülendi

Merhabalar, klasik asp ile otel rezervasyon takip sistemi hazırlıyorum, aylık olarak hangi odalarda kim misafir olacak takibini yaptırıyorum.
0,02,03 yazan yerler oda numaralarım.

Alttaki kodu kullandığımda 17-18 saniye'de sorgu sonuçlanıyor.

<%set oda=baglanti.execute("select * from oda order by id asc")
do while not oda.eof
set rezervasyon=baglanti.execute("select id,odaid,adsoyad,giristarihi,cikistarihi from rezervasyon where odaid='"&oda("id")&"' and (giristarihi<='"&gun&"' and cikistarihi>'"&gun&"') limit 1")%>
<%if rezervasyon.eof then%><td>boş</td><%else%><td style="background:#ddd; font-size:12px;"><%=rezervasyon("adsoyad")%></td><%end if%>
<%oda.movenext:loop%>

Bu kodumu çalıştırdığım zaman aşağıdaki gibi istediğim sonucu alıyorum, fakat çok yavaş çalışıyor belirttiğim gibi.

Alttaki kodu çalıştırdığım zaman ise gayet hızlı sonuç alıyorum, fakat şöyle bir sıkıntı var, bu kodda sadece eşleşen veriler geldiği için, eğer kayıt yoksa boş durumda olarak gösteremiyorum ve dolayısıyla tabloda kaymalar oluyor.

<%set rezervasyon=baglanti.execute("select odam.id,rezervasyonum.odaid,rezervasyonum.adsoyad ADOSOYAD,rezervasyonum.giristarihi,rezervasyonum.cikistarihi from rezervasyon as rezervasyonum inner join oda as odam on odam.id=rezervasyonum.odaid where rezervasyonum.giristarihi<='"&gun&"' and rezervasyonum.cikistarihi>'"&gun&"'")
do while not rezervasyon.eof%>
<%if rezervasyon.eof then%><td></td><%else%><td style="background:#ddd; font-size:12px;"><%=rezervasyon("ADOSOYAD")%></td><%end if%>
<%rezervasyon.movenext:loop%>

Tüm sayfadaki kodun tamamını altta belirttim.

<table>
<tr>
<td>Tarih</td>
<%set oda=baglanti.execute("select * from oda order by id asc")
do while not oda.eof%>
<td><b><%=oda("baslik")%></b></td>
<%oda.movenext:loop%>
</tr>
<%AydakiTumGunler="2021-04-01,2021-04-02,2021-04-03,2021-04-04,2021-04-05,2021-04-06,2021-04-07,2021-04-08,2021-04-09,2021-04-10,2021-04-11,2021-04-12"
gunler = split(AydakiTumGunler, ",")
for i=0 to ubound(gunler)
noktaligun=gunler(i)
noktaligun=tarihnoktaliformat(noktaligun)
gun=gunler(i)%> 
<tr>
<td><b><%=noktaligun%></b></td>
<%set rezervasyon=baglanti.execute("select odam.id,rezervasyonum.odaid,rezervasyonum.adsoyad ADIM,rezervasyonum.giristarihi,rezervasyonum.cikistarihi from rezervasyon as rezervasyonum inner join oda as odam on odam.id=rezervasyonum.odaid where rezervasyonum.giristarihi<='"&gun&"' and rezervasyonum.cikistarihi>'"&gun&"'")
do while not rezervasyon.eof%>
<%if rezervasyon.eof then%><td><%bos=bos+1%>x</td><%else%><td style="background:#ddd; font-size:12px;"><%=rezervasyon("ADIM")%><%dolu=dolu+1%></td><%end if%>
<%rezervasyon.movenext:loop%>
</tr>
<%next%>
</table>
aydinkeskin
1331 gün önce

php den önce asp ile birçok iş yaptım senin sorunun kodlarla olduğunu hiç zannetmiyorum
milisaniyelik performan kayıpları normaldir fakat 10 sn diyorsun bu tamamen kullandığın hosting ile alakalı
localde vardiyorsan sorun hdd de sorun var o sektörde diyorum ben

kodlarında bir dert yok

  • ile çağırmışsın veya sütünları yazarak çağırmışsın 1 sn oynadı diyelim arada 1 milyon veri olsada tek sayfada yazdırmyorsun 1 milyon veriyi sonuçta,
    öyle yüksek zaman kaybı kodlarında olduğunu pek sanmıyorum

ha söyle bir ihtimal dahilindedir. ki yine uzak sunucudan çektiğin css js dosyaları varsa onlara bağlanmakta sorun yaşıyorsundur

e yinede hosting e bağlanır kısmen bu sorun.