Sql INDEX YARATMA
Indexler, bir tablonun istenilen kolonlarına daha hızlı erişim olanağı sağlamak için kullanılır. Tablodaki kayıtlar üzerinde giriş/çıkış işlemleri yapılırken dataya daha hızlı ulaşılması sağlanır. Primary key tanımlanan kolonlar için otomatik olarak index yaratılır. Index en fazla 16 kolondan oluşur. Bir kolon tipi long veya long raw olamaz.
Yazılımı;
1 2 3 |
CREATE INDEX index_adi ON tablo_adı(kolonlar) |
Örnek: Personelin adına ve soyadına göre index oluşturalım;
1 2 3 |
CREATE INDEX personel_inx ON personel(ad,soyad); |
Böylece ad kolonu öncelikli olmak kaydıyla birlikte soyadına göre sıralama yapar, yani index oluşturur. Önce ada göre sıralar, eğer aynı isimden birden fazla kayıt oluşursa bu sefer soyad kolonundaki değerlere göre sıralama oluşturur.
Index yaratabilmek için;
- Index yaratılacak tablonun var olması gereklidir,
- Index yaratma hakkına sahip olmalıdır,
- Limitsiz tablespace hakkına sahip olmalıdır.
Index yaratılma ihtiyacı aşağıdaki koşullar oluştuğunda belirir;
- Where ifadesi ile sık sık kullanılan kolonlar kullanılıyorsa,
- Join ile birleştirme işlemi yapıldığında,
- Kolon değerleri geniş aralıkta ise,
- Büyük rakamlı kolonların içinde null değerler bulunuyorsa.
Index yaratılmama ihtiyacı aşağıdaki koşullar oluştuğunda belirir;
- Tablo küçük ise,
- Tablodaki bazı kolonlara sık sık ihtiyaç duyulmadığında,
- Tabloda sık sık değişiklikler yapılıyorsa.
USER_INDEXES : İndex isimlerini ve unique olup olmadığı bilgilerini saklar.
Örnek: Personel tablosuna ait index dosyalarını listeleyelim;
1 2 3 4 5 6 7 |
SELECT ic.index_name,ic.column_name,ic.colum_position,ix.uniqueness FROM user_indexes ix, user_ind_columns ic WHERE ic.index_name=ix.index_name AND table_name=’Personel’; |
DROP INDEX : Yaratılan indexleri veri tabanından yok etmek için kullanılır.
Leave a reply