Cevap yazarken Ali'nin aklima "Cetin'den bize firsat kalmiyor" lafi geliyor ve cekiniyorum aslinda, biraz firsat tanisam diye ama senin simdi ihtiyacin var:)
Sende full optimizasyon degildir, cunku "Set deleted ON" konumundadir ve deleted() ile ilgili bir indexin yoktur. Once Set Deleted OFF yap ve sys(3054)'e gene bak. Bu sadece nedenin o oldugunu garantilemek icin, sonra gene "Set Deleted ON"a don.
Ne yapman gerekiyor (Benim soyleyeceklerimin bir kismi gayri resmi sinifi aciklama yani kitap bilgisi degil):
a) ONCELIKLE hafiza degiskeni kullandigin yerlerde m. kullanmayi aliskanlik haline getir. Bunu tartismaktan yoruldum, kullanmazsan kendin bilirsin:)
Visual Fox Pro
SELECT DISTINCT BIOPSINO FROM YERTANI WHERE YERKODU=m.lcYer ORDER BY BIOPSINO
b) Bu durumu gormezden gelebilirsin. Bunu senin 'full', 'partial' gormen degil, gercek hayatta aldigin performans belirler. Sorgularin ne kadar suruyor, su anki data boyutu nedir, ortalama aylik eklenen miktar nedir gibi bilgiler ile buna ancak kullanim testleriyle karar verebilirsin.
c) Full gormeyi tercih edebilirsin:) O zaman silinmis kayitlar icin de index gerekiyor. Indexler ilac gibi, dozunda kullanmak gerekiyor, fazlasi da zarar.
Silinmis kayitlar icin kullanmayi tercih edebilecegin iki tip index var:
1)
Visual Fox Pro
INDEX on DELETED() TAG 'removed' binary
2)
Visual Fox Pro
Index on deleted() tag 'removed' for deleted()
3) Daha once soyledigim, 'partial' gormeyi dert etme.
Deleted() sonucu logical yani sadece TRUE ve FALSE degerlerini iceren bir indexten bahsediyoruz. Bir indexteki deger cesitliligi azaldikca indexin seciciligi de azaliyor ve zararli hale gelmeye baslayabiliyor. Mesela tablodaki kayitlarin yarisi silinmis ise boyle bir index zaten kayitlarin yarisini secen bir index, indexin server'dan indirilmesi daha cok zaman kaybettirir. Binary index yaparsan (ki Binary indexler ozellikle logical alanlarin indexlenmesindeki performans sorunu icin yapildi) cok daha efektif bir indexin olacak ve daha hizli sonuclar alirsin. O konuda VFP yardiminin aciklamasi, eger donen kayitlarin sayisi %3 ustunde ise VFP'nin index kullanmadan kendisinin sorgu sirasinda lokalde bitmap index yaratmasinin daha hizli oldugunu soyluyor. Eger beklenen kayit sayisi %3 altinda ise (iki bu oran tablo buyudukce daha da dusebilir-mis) o zaman binary index daha hizli. Ozeti, eger tablodaki beklenen silinmis kayitlarin sayisi %3 altinda ise BINARY index kullan. Uzerindeyse birak daginik kalsin - pardon Rushmore'un mesajini takma diyecektim:) Diger filtrelenmis index'i acikcasi ben kendim hic kullanmiyorum ama o da bir optimizasyon.
Cok uzattim:) Son olarak soyleyecegim, silinmis kayitlarla ilgili index yapmali mi, yapmamali mi vs belli bir kurala bagli degil. Kendi ortaminda test et, en uygununu sec.