Provided by: manpages-tr_1.0.5.1-2_all bug

ISIM

       CLUSTER - bir tabloyu bir indekse gore siralar

KULLANIM

       CLUSTER indeks_ismi ON tablo_ismi
       CLUSTER tablo_ismi
       CLUSTER

A,CIKLAMA

       CLUSTER,   PostgreSQL'in   ismi   tablo_ismi   ile  belirtilen  tabloyu
       indeks_ismi  isimli  indeksine   gore   siralamasini   saglar.   Indeks
       tablo_ismi tablosunda evvelce tanimlanmis bir indeks olmalidir.

       Bir  tablo  bu  islem  sirasinda, indeks bilgisine gore fiziksel olarak
       siralanir. Siralama tek seferlik bir islemdir: islemin  ardindan  tablo
       guncellendiginde  degisiklik siralama islemine tabi tutulmaz. Yani yeni
       eklenen ya da guncellenen bir  satirin  indeks  sirasina  uygun  olarak
       saklanmasina  calisilmaz.  Eger  bu  ya da belirli araliklarla siralama
       yapilmak    isteniyorsa,    komut    yinelenerek    yeniden    siralama
       yaptirilmalidir.

       Bir  tablo  bir  kere  siralandi  mi,  PostgreSQL  siralama  icin hangi
       indeksin kullanildigini hatirlar.  CLUSTER  tablo_ismi  ile  tablo  ilk
       siralamada kullanilan indeks ile tekrar siralanacaktir.

       CLUSTER    parametresiz   olarak   kullanildiginda,   komutu   kullanan
       kullanicinin sahibi oldugu o anki veritabanindaki butun  tablolarda  ya
       da  komutu  ayricalikli kullanici kullaniyorsa butun veritabanlarindaki
       butun tablolarda yeniden  siralama  yapilir  (Hic  siralama  yapilmamis
       tablolara  dokunulmaz).  Bu  sekilde  kullanim, bir hareketin ya da bir
       islevin icinden gerceklestirilemez.

       Bir tablonun siralanmasi sirasinda uzerinde bir ACCESS EXCLUSIVE kilidi
       olusturulur. Bu, tablonun islem bitene kadar baska her turlu veritabani
       isleminden (hem okuma hem yazma) korunmasini saglar.

PARAMETRELER

       indeks_ismi
              bir indeksin ismi.

       tablo_ismi
              Bir tablonun ismi (sema nitelemeli olabilir).

EK BILGI

       Bir tablo icinde tek bir satira erisildigi durumlarda verini  sirasinin
       aslinda  onemi  yoktur.  Ancak, baskalarindan daha fazla veriye erismek
       ve bunlari gruplayan bir  indeks  kullanmak  egilimindeyseniz,  CLUSTER
       kullanmak  yararli  olacaktir. Bir tablodan belli bir aralikta indeksli
       degerler ya da cok  sayida  satirla  eslesen  tek  bir  indeksli  deger
       isterseniz,  indeks,  eslesen  ilk satir icin bellek sayfasini bir kere
       tanimladiktan sonra, eslesen diger tum satirlar bir ihtimal zaten  ayni
       bellek  sayfasinda  olacagindan  CLUSTER'in  hem disk erisiminde hem de
       sorguyu hizlandirmakta cok yardimi olur.

       Siralama islemi  sirasinda,  tablonun  verisini  indeks  sirasina  gore
       iceren  gecici  bir  kopyasi  olusturulur.  Ayrica tablo uzerindeki her
       indeksin gecici kopyalari da olusturulur. Bunun yaninda, disk  uzerinde
       en  azindan  tablo  ve  indeksin toplam boyutunda bos bir alana ihtiyac
       olacaktir.

       CLUSTER siralama  bilgilerini  hatirlayacagindan,  bir  defa  siralanan
       tablolar kolayca tekrar siralanabilir ve VACUUM'a benzeyen bir ayarlama
       ile  tablolarin  belirli  zaman   araliklarinda   yeniden   siralanmasi
       saglanabilir.

       Planlamacinin    tablolarin    siralanmasi    hakkinda   istatistikleri
       kaydetmesinden  dolayi,  yeni   siralanmis   tablo   uzerinde   ANALYZE
       [analyze(7)]   calistirilmasi   tercih   edilmelidir.   Aksi  takdirde,
       planlamaci zayif sorgu plani secimi yapabilir.

       Veriyi siralamanin baska bir yolu daha vardir.  CLUSTER  cumlesi  ozgun
       tabloyu  belirttiginiz  indeks siralamasini kullanarak yeniden siralar.
       Satirlar bellekten indeks sirasina  gore  cekileceginden,  eger  bellek
       tablosu   sirasizsa,   cok  buyuk  tablolarda  girdiler  farkli  bellek
       sayfalarinda olacagindan, ustune bir de takas olarak  disk  kullanilmak
       zorunda  kalinirsa  bu islem oldukca yavas olabilir. (PostgreSQL'in bir
       arabellegi olsa da dev bir tablo genellikle bu arabellege sigmaz.)  Bir
       tabloyu  siralamanin  diger  bir  yolu,  istenen sirayi olusturmak icin
       ORDER BY deyimi icindeki PostgreSQL siralama kodunu kullanan,

           CREATE TABLE yeni_tablo AS
               SELECT s"utun_listesi FROM tablo ORDER BY s"utun_listesi;

       cumlesini kullanmaktir. Bu, sirasiz veri icin bir indeksleme  yapmaktan
       genellikle   daha   hizlidir.   Bundan   sonra   eski   tabloyu  silip,
       yeni_tablo'ya eski tablonun ismini vermek icin ALTER TABLE  ...  RENAME
       cumlesini  kullanin  ve tablonun indekslerini yeniden olusturun. Ancak,
       bu  yaklasim  OID'leri,  kisitlari,   yabanci   anahtar   iliskilerini,
       kullanici   izinlerini   ve   tablonun   diger   yardimci  ozellklerini
       korumayacagindan, bu ogeler elle yeniden olusturulmalidir.

"ORNEKLER

       employees tablosunu emp_ind indeksine gore siralamak icin:

           CLUSTER emp_ind ON emp;

       employees tablosunu ayni indeksi kullanarak yeniden siralamak icin:

           CLUSTER emp;

       Veritabanindaki evvelce siralanmis tum tablolari siralamak icin:

           CLUSTER;

UYUMLULUK

       SQL standardinda CLUSTER diye bir deyim yoktur.

ILGILI BELGELER

       clusterdb(1).

,CEVIREN

       Nilgun Belma Buguner <nilgun (at) belgeler.gen.tr>, Nisan 2005