From: | "Esref Atak" <esrefatak(at)gmail(dot)com> |
---|---|
To: | PostgreSQL <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek |
Date: | 2006-03-28 17:18:54 |
Message-ID: | b0e445b30603280918l64a16940qdbae70054a77d9b3@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
On 3/28/06, Ahmet <corsairsoft(at)gmail(dot)com> wrote:
>
> sembolik olarak group by id kulanabilirsiniz
>
> veya
>
> PHP ile yazıyorsanız pg_num_rows() fonksiyonunu kullanabilirsiniz
> http://tr2.php.net/manual/en/function.pg-num-rows.php
>
Özür dilerim. Umduğum çözüm, bunlardan hiçbiri değil. PHP örneğindeki
yöntem, ustaca bir yöntem değil. Zira, o yöntemde, örneğin 1 milyon kayıt
varsa, bu kayıtların tamamı VTS tarafından PHP'ye gönderiliyor. PHP ise
yalnızca sayıyor. Bu yöntem, hız ve bellek kaybı manasına geliyor. İlave
olarak, ben LIMIT OFFSET kullanacağımda, PHP yöntemi "kafadan" başarısız
olacaktır.
Her alanın adını GROUP BY ifadesine dahil etme yöntemi ise, hem bir çok
karmaşık SQL ifadesinin hem daha da karmaşıklaşması, hem performans kaybına
neden olması, hem de bazı durumlarda tamamen yetersiz kalması anlamına
geliyor.
Acaba, başka bir yöntem mümkün müdür? Önerisi olan var mıdır? Mesela benim
aklıma, şöyle bir Saklı Yordam geliştirmek bile geliyor:
sayfalama(sql, limit, offset)
bu yordam, geriye, hem kayıt kümesini döndürür, hem de bu kayıt kümesine
yeni bir sütun ekleyip, bu sütunun, kayıt sayısını içermesini sağlayabilir.
Fakat bu yöntem de biraz uç ve tuhaf bir yöntem gibi geliyor bana.
Nasıl bir amaç için böyle bir şeye ihtiyaç duyduğumu anlatabilmek için, bir
örnek sayfa göstermek istiyorum:
www [nokta] antalya [nokta] com.tr/tr/guncel/etkinlik/index.cfm
Bu sayfadaki örnekte, belirtilen ölçütlere uyan ne kadar kayıt bulunduysa
tümü Uygulama Sunucusu'na döndürülüyor. Uygulama Sunucusu'ndaki kodlar da
kayıt sayısını sayıp, sayfanın sol alt tarafında görüntülüyor. Ardından,
kayıtlar arasında döngü yapmak suretiyle, talep edilen aralıktaki kayıtları
görüntülüyor. Fakat, arz ettiğim gibi bu yöntem; ağ trafiğini artırmak,
bellek kaybı, işlem süresi uzaması vb bir dizi sorunu beraberinde getiriyor.
Umarım, ızdırabımı anlatabilmişimdir.
--
Saygılarımla,
Eşref Atak
From | Date | Subject | |
---|---|---|---|
Next Message | Ahmet | 2006-03-28 17:37:51 | Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek |
Previous Message | Ahmet | 2006-03-28 16:21:50 | Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek |