$query_Recordset_otel = sprintf('SELECT ot.*,os.*,op.*,c.idcities,c.cities_name,ob.*,ob1.o telbolgeler_adi as bolge,r.regionname,(SELECT filename FROM oteldosyalar WHERE FKidotel=ot.idotel AND filegroup=0 ORDER BY filepriority LIMIT 1 ) as otellogo FROM ((((((otel ot LEFT JOIN otelsinif os ON ot.FKidotelsinif=os.idotelsinif) LEFT JOIN otelpansiyon op ON ot.FKidotelpansiyon = op.idotelpansiyon) LEFT JOIN cities c ON ot.FKidcities=c.idcities) LEFT JOIN otelbolgeler ob ON ot.FKidotelbolgeler=ob.idotelbolgeler) LEFT JOIN otelbolgeler ob1 ON ob.level1=ob1.idotelbolgeler) LEFT JOIN regions r ON c.cities_FKidregions=r.idregions) LEFT JOIN otelsecimkategori osk ON osk.FKidotel=ot.idotel WHERE ot.idotel=%s', $Widotel_Recordset_otel);
Sorgu yukarida ki gibi. bu sorguyu yapan .php sayfasını açınca 500 Internal Server Error hatası veriyor ve CPU %99 oluyor sunucuda. Bu sorguyu nasıl daha az cpu harcayacak şekilde düzenleye bilirim? Hatam nerde? Yardımcı olacak kişilere şimdiden çok teşekkür ederim.
SQL Sorgusu ve tavan yapan CPU sorunu
5
●501
- 19-01-2015, 10:55:28Bu kadar çok join bir arada kullanılırsa sunucuyu yorması normal. Bunun için denormalizasyon işlemlerini araştırmanızı tavsiye ederim.
- 19-01-2015, 11:07:28Üyeliği durdurulduKonu hakkında bilginiz var ise yukaridaki sorguyu örnek vermek açısından benim için denormalizasyon işlemini yapabilirmisiniz ? İleride bu sorunla karşılasan kişiler içinde yardımcı bir konu olur diye düşünüyorumBoluBeyiNet adlı üyeden alıntı: mesajı görüntüle
- 19-01-2015, 12:03:25Denormalizasyon, sorgudan ziyade veritabanınızdaki tabloları düzelterek veya yeni tablolar oluşturularak yapılıyor. Bu doğrultuda da sorgunuz değişiyor.Netweb adlı üyeden alıntı: mesajı görüntüle