Re: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek

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

In response to

Responses

Browse pgsql-tr-genel by date

  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