• 21-11-2009, 14:33:17
    #1
    Üyeliği durduruldu
    Arkadaşlar sitem 1,5 senedir normal çalışıyordu ama bir aydır sorunla uğraşıyorum.Sorunum şu ki scripti kurduktan bir iki gün sonra sql den siteye veri çekilemiyor.Sitemden mysqlden anasayfada gelen veriler görünmüyor.Fakat içerdeki aynı veri tabanını dışarı aktarıp,dışarı aktardıgımı hiçbir işlem yapmadan içeri aktarınca site açılıyor.Hostingime yardım bileti oluşturduktan sonra vritabanını incelediler ve Aşağıdaki mesajı gönderdiler
    Yardımcı olabilecekler ulaşırsa çok sevinirim.Şimdiden teşekkürler.

    Hstingden gelen cevap
    A: Sitenizin çalıştırdığı SQL sorgulaması:

    select t1.*, case t1.RentCurrency when 'USD' then (t1.RentPrice*1) when 'YTL' then (t1.RentPrice*0.66894106629206) when 'EUR' then (t1.RentPrice*1.4873235667938) when 'GBP' then (t1.RentPrice*1.6544919392602) end as ListPrice, t2.Name as estate_type, t3.Name as estate_status, t4.Name as estate_township, t6.Currency as estate_rent_currency, t7.Images as estate_images, t8.Name as estate_city from t_advert t1 inner join t_properties t2 on t2.PageType='EstateType' inner join t_properties t3 on t3.PageType='EstateStatus' inner join t_properties t4 on t4.PageType='TownShip' inner join t_exchange t6 on t6.Currency=t1.RentCurrency inner join t_advert_images t7 on t7.ParentID=t1.ID inner join t_properties t8 on t8.PageType='City' where t2.ItemID = t1.EstateType and t2.PageLang='English' and t3.ItemID = t1.EstateStatus and t3.PageLang='English' and t4.ID = t1.TownShipID and t6.Currency = t1.RentCurrency and t7.ParentID = t1.ID and t7.Seq = (select min(Seq) from t_advert_images where Visible='1' and ParentID=t1.ID group by Seq LIMIT 0,1) and t8.ID = t1.CityID and t1.Visible='1' and t1.DisplayAdvert='1' order by ListPrice limit 24,12;

    verimsiz olarak tasarlanmış olduğu için veritabanındaki bilgi boyutu büyümesi sonucuna bağlı olarak sistem tarafından kabul edilmemektedir. (The SELECT would examine more than MAX_JOIN_SIZE rows). Sistem veritabanını ilk yüklediğinizde kesin önbelleklenmiş bilgilere göre bunu hesaplayabiliyor olmasına rağmen bir süre sonra bazı bilgileri yaklaşık olarak hesapladığı için sitenizin çalışmasında sonra sorun oluşuyor olabilir (bu MySQL ile ilgili bir durum, daha fazla bilgi için MySQL firmasından bilgi alabilirsiniz)

    Sistemdeki sorgulamalarda join kullanımında inceleme yapılabilecek maksimum satır sayısı 65bindir ve bu miktar yeterli bir miktardır. Sistemde birçok smf forum, phpbb forum, wordpress, joomla gibi yazılımlar kullanan müşteriler mevcuttur ve herhangi bir sorun yaşamamaktadırlar. (bu yazılımların doğru olarak optimize edilmiş olmasından dolayı).

    Sorununuzun çözümü için programcınız ile görüşerek sitenizde kullanılan SQL sorgulamalarını optimize etmenizi öneriyoruz.

    Ek Bilgi:
    Sitenizin yapısındaki hataların gösterimi ile ilgili eksiklikler nedeni ile SQL sunucusunun verdiği bilgi sayfanızda gösterilmemektedir. Normal şartlar altında mysql_query() komutu mysql_error() komutu ile kullanılarak bir hata durumu oluşmasında bilgi verilmesi sağlanır. Bu tip bir kodlama olmadığı için siteniz herhangi bir hata mesajı göstermeden boş bilgi göstermektedir.
    http://php.net/manual/en/function.mysql-query.php
    Doğru kodlama teknikleri kullanımı sorunların nedenlerinin tespitini kolaylaştırır.
  • 21-11-2009, 21:31:30
    #2
    Üyeliği durduruldu
    join ifadenizi parçalayip php ile parça parça çekerek işlem yapmak bir çözüm olabilir ama kodlara bakinca hiçte elle kodlanmis bir sisteme benzemiyor. Bu kadar joinli bir işlem zaten çok önerilecek bir işlem degil. bir alternatif olarakta mysql 5 varsa sistemde bu sql view e dönüştürülürse sorun çözülebilir kanisindayim
  • 22-11-2009, 04:04:53
    #3
    Üyeliği durduruldu
    Bunu kolay bişey ise ücretli bir biçimde yapabilecek varmı arkadaşlar?
  • 22-11-2009, 04:15:13
    #4
    sorgunun içinden kalan program parçaları üzerinde hakimyet kurmadan çıkamam zaten de hangi firma bu düzeyde bilgi verebiliyor merak ettim doğrusu. tebrikler adamlar işi biliyor.
  • 22-11-2009, 09:17:39
    #5
    Üyeliği durduruldu
    zookey adlı üyeden alıntı: mesajı görüntüle
    Bunu kolay bişey ise ücretli bir biçimde yapabilecek varmı arkadaşlar?
    ücretli yapilabilir ama cok ta kolay birşey degil. içinde case kullanilan sql deyimli ilk sizi goruyorum koca forumda
  • 22-11-2009, 14:30:19
    #6
    Üyeliği durduruldu
    pm attım size