Delphi Can

Orjinalini görmek için tıklayınız: firebird view
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
kayıt sayım şimdilik 650 bin bu daha da artıyor

 Dm_Kayit.FD_FotoView.SQL.Add('select * from FOTOLAR WHERE ARSIVNO=:tar1');
/// kullanmam gereken kod  çok yavaş
 Dm_Kayit.FD_FotoView.SQL.Add('select * from FOTOLAR');
//  hızlı


firebird view deki kodum

CREATE OR ALTER VIEW FOTOLAR(
    FOTOID,
   FOTOADI,
   KOD,
   FOTOGRAF,
   UZANTI,
   CHECK1,
   CHECK2,
   EKBILGI,
   YOL,
   DISK,
   ARSIVNO,
   FULLYOL)
AS
select FOTOID,IIF(KOD='' ,substring(PATH.ARSIVNO from 2 for 30)||'-'||FOTOGRAF||UZANTI,substring(PATH.ARSIVNO from 2 for 30)||'-'||KOD||'-'||FOTOGRAF||UZANTI),KOD,FOTOGRAF,UZANTI,CHECK1,CHECK2,EKBILGI,PATH.YOL||'\'||substring(PATH.ARSIVNO from 2 for 30)||'-'||path.adsoyad,PATH.DISK,PATH.ARSIVNO,
path.yol||'\'||substring(PATH.ARSIVNO from 2 for 30)||'-'||path.adsoyad||'\'||IIF(KOD='' ,substring(PATH.ARSIVNO from 2 for 30)||'-'||FOTOGRAF||UZANTI,substring(PATH.ARSIVNO from 2 for 30)||'-'||KOD||'-'||FOTOGRAF||UZANTI)
from foto LEFT join PATH
ON  FOTO.YOLID=PATH.YOLID
;

bu yavaşlık nedendir acaba
aynı kayıt sayısına eş değer firebird tabloyu açtığımda sıkıntı yok
ama firebird view de oluşturdugum bu kayıdı açtığımda out of memory hatası alıyorum .. master detail yaptığım halde bütün kayıdı okumaya çalışıyor
bu konuda yardımcı olacabilecek yokmu acaba
index yokluğu diye kısa cevap verebilirim.
(31-05-2021, Saat: 13:36)mrmarman Adlı Kullanıcıdan Alıntı: [ -> ]index yokluğu diye kısa cevap verebilirim.

peki hocam firebird view de index olmadığı içini index nasıl atacağımı bilemedim viewlerde index yok sanırım
tabloda index olur, view o indexi vekil olarak kullanır.
Projenizde Blob alan olduğunu tahmin ederek bağladığınız datasette Fetch Rows denen bir alan bulunuyor
Onu düşürürseniz (Default genelde = 25 dir) Out of memory hatası almazsınız diye düşünüyorum.


63y5ndq.jpg