aslında mümkün oldugunca cursor dan kaçmak gerekiyor mbk. arkadasımızın dedigi gibi tablo şiştigi zaman (3 milyon kayıt olan bir tabloyu dünürsek) kullanıcı ile kanka olma ihtimali var

Güzel anlatmışsınız. geniş veritabanı ile çalışan uygulamalarda kullanılması şart olan bir işlem Bir çok uygulama başlangıçta normal çalışırken veritabanının şişmesi sonucu kullanılamaz duruma geliyor. Programın yavaş olması da kullanıcı tarafından sık sık rahatsız edilmenize neden olabilir -

Cursor nedir ile ilgili bilgiye detaylı olarak wikipedia -> link 'inden bakarsınız. Ben kısaca yazıp geçeyim. Cursor : Basit olarak bahsedecek olursak, programlamadaki for loop gibi çalışır, veri kümesi içinde satır satır dönmek için kullanılır. Avantajı ise yüksek ölçekli veri işleme işlerini eğer uygulama içinde gerçekleştirmeye çalıştığınızda performans sorunu yaşayacaksınız eğer bu tür yüksek ölçekli veritabanı işlerini database üzerinde hallederseniz hem zaman hemde performans olarak oldukça hızlıdır. Küçük bir hatırlatma yapayım, cursor işlemlerini direkt olarak database içinde bir prosedür yada job ile yaparsanız, cursor database'i oldukça yorar ve kaynak tüketimini yükseltir. Buna sebep olan ise, cursor üzerinde çalıştığı tabloları dondurup v e veri kümelerini ram üzerinde alıp, onun üzerinden işlemesidir. Bu kadar bilgilendirmeden sonra, makul olan kullanımı ise çalışacağınız tablolar, viewlar 'ı geçiçi bir tablo üzerine atayıp bu geçiçi tablo üzerinden işlem yapmanızdır böylelikle canlı sistem üzerinde asıl olan tabloları lock'lamamış olursunuz ve ram tüketimini düşürürsünüz. Tanımlanması ; PHP: DECLARE CURSOR cursor_ornek IS SELECT COLUMN1, COLUMN2 FROM TABLE; BEGIN FOR cursor_satir IN cursor_ornek LOOP DBMS_OUTPUT. put_line ('COLUMN 1 : ' || cursor_satir. COLUMN1 || 'COLUMN 2 ' || cursor_satir. COLUMN2); END LOOP; END; Yukarıdaki örnek, cursor'ın tanımlanması ve örnek bir kullanımıdır. -