From: | Mustafa Yörükoğlu <Mustafa(at)Yorukoglu(dot)name(dot)tr> |
---|---|
To: | PostgreSQL <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | 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 |
Date: | 2006-03-29 13:06:44 |
Message-ID: | 442A8664.6010909@Yorukoglu.name.tr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
Selamlar,
bu işinizi görür mü?:
-belirtilen kriterlere göre sorguyu oluştur (query)
-kayıt sayısını sorgula ( select count(*) from (sorgu) as sorgum; )
-kayıtları getir. (sorgu)
İyi çalışmalar.
Mustafa Yörükoğlu
Esref Atak wrote, On 28.03.2006 20:18:
> On 3/28/06, *Ahmet* <corsairsoft(at)gmail(dot)com
> <mailto: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
> <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
> <http://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 | Mustafa Yörükoğlu | 2006-04-03 17:25:12 | Fonksiyon içinde "temporary table", "execute" into sorunu |
Previous Message | Volkan YAZICI | 2006-03-28 20:18:21 | Re: pgsql ile select |