DEFINITIONS

Definitions More Info.
Definition ID573
TitleSQL
CategoryNOTES
DefinitionIndex Oluşturulması Ve Secenekleri
Definition Description/* INDEX OLUŞTURULMASI CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX index_adi ON veritabannı_ad.şema_ad.tablo_veya_view_ad (sütun adı ASC|DESC) INCLUDE (sütun ad) WITH (ilişkisel index seçenekleri) ON partition_şema_ad (sütun_ad)|filegroup_ad|default) İLİŞKİSEL_İNDEX_SEÇENEKELERİ WITH ( PAD_INDEX={ON|OFF} | FILLFACTOR=fillfactor | SORT_IN_TEMPDB={ON|OFF} | IGNORE_DUP_KEY={ON|OFF} | STATISTICS_NO_RECOMPUTE={ON|OFF} | DROP_EXISTING={ON|OFF} | ONLINE={ON|OFF} | ALLOW_ROW_LOCKS={ON|OFF} | ALLOW_PAGE_LOCKS={ON|OFF} | MAXDOP=işlemci sayısı */ use yuksel go if exists (select * from sysindexes where name='cl_mad') begin drop index cl_mad ON musteri print 'index drop edildi' end go create clustered index cl_mad on musteri ( mad ASC ) INCLUDE (musterino,mtel) -- Burada mad, temel index yapısı oluştururken leaf node, musterino,mtel sütunlarını ilaveten içerir. WITH ( PAD_INDEX=ON, STATISTICS_NORECOMPUTE=OFF, SORT_IN_TEMPDB=ON, DROP_EXISTING=OFF, ONLINE=ON, /* ONLINE yapısını aktif hale getirir. Burada hem sayfa, hemde sütun kilitlenmesinin her ikisi de aktif hale gelir. -- tablo içindeki: -- XML, TEXT, NTEXT,İMAGE,VARCHAR(MAX),NVARCHAR(MAX),VARBİNARY(MAX), VEYA FİLESTREAM veri tipine sahip sütunlariçin ONLINE özellği KULLANILAMAZ */ ALLOW_ROW_LOCKS=ON,-- sadece sütun kilitlemesini aktif hale getirir. ALLOW_PAGE_LOCKS=ON, FILLFACTOR=75, IGNORE_DUP_KEY=OFF, MAXDOP=1 ) ON F1 print 'index create edildi' /* XML INDEX YAPISI -- XML INDEX oluşturmadan önce tabloda mutlaka CLUSTERED INDEX olmalıdır. -- Bir XML veri tipine sahip sütun üzerinde PRIMARY XML INDEX oluşturulduktan sonra, istenirse İKİNCİ XML index yapısı oluşturulabilir. -- Bir XML index yapısında ONLINE seçeneği kullanılamaz. */ CREATE [PRIMARY] XML INDEX index_ad ON veritabanı_ad.şema_ad.tablo_ad (xml sütun_ad) USING XML INDEX xml_inex_ad FOR {VALUE|PATH} WITH (XML_INDEX_SEÇENEKELERİ) /* INDEX DEĞİŞKLİĞİ (ALTER INDEX): -- ALTER INDEX ifadesi ile var olan bir Index seçeekleri üzerinde değişiklik yapılabilir. -- Ayrıca yine var olan bir index üzerinde yeniden yapılandırma, geçici olarak devre dışı bırakma gibi işlemler de yapılabilir. -- Alter Index ifadesi, repartition için kullanılamaz. Bunun için CREATE INDEX ifadesinin DROP_EXISTING seçeneği kullanılmalıdır. */ -- Rebuild: Index yapısını yapılandırmak ve disale durumda olan indexleri tekrar oluşturmak için kullanılır. ALTER INDEX index_adı | ALL -- all tablodaki tüm indexler ON veritabanı_adı.şema_tablo_veya_view REBUILD WITH (rebuild index seçenekleri) -- Index yapısını yapılandırmak ve disble durumda olan indexleri tekrar oluşturmak için kullanılır. REORGANIZE WITH (LOB_COMPACTION=ON|OFF DISABLE SET (setindex seçenekleri) -- REBUILD INDEX SEÇENEKLERİ : SADECE DROP_EXISTING BULUNMAMAKTADIR ALTER INDEX cl_mad ON musteri REBUILD WITH ( PAD_INDEX=ON, STATISTICS_NORECOMPUTE=OFF, SORT_IN_TEMPDB=ON, --DROP_EXISTING MEVCUT DEGIL ONLINE=ON, ALLOW_ROW_LOCKS=OFF, ALLOW_PAGE_LOCKS=OFF, FILLFACTOR=75, IGNORE_DUP_KEY=OFF, MAXDOP=1 ) /* REORGANIZE: Index uygulanmış satırlarda çok fazla sayıda tarama, sorgulama yapmak istediğimizde PERFORMANS ARTTIRMAK için kullanabilceğimiz bir seçenektir. Ekstra bir disk alanına ihtiyaç duymaz. LOB_COMPACTION ifadesi kullanılarak çok geniş depolayanalanlarda performans arttırımı sağlanır. Bu veri tipleri: İMAGE, TEXT,NTEXT,VARCHAR(MAX),NVARCHAR(MAX), VE VARBİNARY(MAX) */ ALTER INDEX cl_mad ON musteri REORGANIZE WITH(LOB_COMPACTION=ON) /* DISABLE: Index yapısını devredışı bırakmak için kullaılan seçenektir. Index devre dışı kalırken, eğer bünyesinde PRİMARY KEY- FOREİGN KEY İLİŞKİSİ VARSA BU YAPILAR DA, DEVRE DIŞI KALIR. -- Veritabanı motoru, devre dışı kalmış bir index yapısını korumaz -- Yeniden aktif hale getirmek için ALTER INDEX .. REBUILD veya CREATE INDEX .. WITH (DROP_EXISTING=ON) ifadelerinin kullanılması gerekir. -- Devre dışı kalmış CONSTRAINT ler mutlaka ALTER TABLE ifadesi ile aktif hale geitirilmelidir. -- Eğer bir tabloya ait bir CLUSTERED INDEX devre dışı bırakılmış ise, bu tablo OFFLINE olarak işaretlenir. Bunun sonuncunda tablo ile ilgili herhangi bir değişklik engellenir. Aynı zamanda SELECT sorgulamaları da uygun performans sağlamaz. Taaki terkrar aktif hale getirilene dek. */ ör: disable etmek USE YUKSEL GO ALTER INDEX cl_mad ON musteri DISABLE -- enable etmek use yuksel go ALTER INDEX cl_mad ON musteri REBUILD ya da DROP_EXISTING kullanarak yapabiliriz, filegroup değiştirebiliriz. create clustered index cl_mad on musteri ( mad desc ) with( drop_existing=on ) on [PRIMARY]-- DROP_EXISTING daha kullanışlı, mevcuttaki bir indexi yapılandırıken istediğimiz filegroup üzerine taşıyabiliyoruz. -- SET: indeks seçeneklerini değiştirmek için kullanılır. ALLOW_ROW_LOCKS ALLOW_PAGE_LOCKS IGNORE_DUP_KEY STATISTICS_NORECOMPUTE ALTER INDEX cl_mad on musteri set (LOB_COMPACTION=ON) /* DROP INDEX - INDEX SILINMESI Indexleri silmek için DROP INDEX ifadesi kullanılır. XML index yapıları da dahil olmak üzere, tüm index yapıları için bu ifade kullanılır. */ DROP INDEX index_ad ON şema_adı.tabo_veya_view_adı WITH (drop index seçenekleri) -- DROP INDEX SEÇENEKLERİ ONLINE=ON|OFF -- sadece Clustered Index yapısında izin verir MAXDOP=PROCESSOR SAYISI (Number CPU/2)-1 -- sadece clustered Index yapısında izin verir. MOVETO=partition_şema_ad(sütunad) |filegroup_ad|DEFAULT DROP INDEX cl_mad ON musteri DROP INDEX cl_mad ON musteri WITH ( ONLINE=ON,MAXDOP=1) Index silindikten sonra, verinin özel bir yere taşınması için MOVETO ifadesi kullanılır.
RecordBycunay
Record Date10-07-2014 18:10:08
Düzenle
Kopyala
Sil