Tablolarda Index Tanımlı Olup Olmadığını Sorgulamak

SQL Server’da tablolarda oluşturulan Index‘lerin (Clustered/Non-Clustered) bazı durumlarda T-SQL yardımı ile sorgulanıp var olup olmadıkları bilgisine ihtiyacımız olabilir. Tablolarda oluşturulan index‘lerin nasıl t-sql yardımı ile var olup olmadığına iki farklı yöntem ile gözatalım.

Ben Microsoft‘un örnek veritabanı olan AdventureWorks veritabanında bulunanProduction.Product tablosundaki ismini belirtiğim index’lerin var olup olmadığına bakıyor olacağım.Index_have_table

1. Yöntem : Catalog Views yardımı ile index’in tanımlı olup olmadığını sorgulamak

sys.indexes catalog view yardımı ile Clustered ve Non-Clustered index bilgisini sorgulayabiliriz. Ben bu örneğimde Production.Product tablosunda tanımlı olan “PK_Product_ProductID” isimli Clustered index’in t-sql yardımı ile sorgulanmasına bakıyor olacağım.

Software Developer - Mesut GÜNEŞ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IF EXISTS (
SELECT FROM sys.indexes I
JOIN sys.tables T ON I.object_id=T.object_id
JOIN sys.schemas S ON S.schema_id=T.schema_id
WHERE I.Name='PK_Product_ProductID' --İndex Adı
AND T.Name='Product' -- Tablo Adı
AND S.Name='Production' -- Şema Adı
)
BEGIN
PRINT 'Index Mevcut'
END
ELSE
BEGIN
PRINT 'Index Mevcut Değil'
END

indexes_find_index_by_name

2. Yöntem : sys.indexes Catalog View ile birlikte OBJECT_ID fonksiyonu kullanımı

Bu yöntemde yine Production.Product tablosunda bulunan “PK_Product_ProductID” isimli Clustered Index’in var olup olmadığını sorgulayacağız. Bu sefer sys.indexes view’i ile birlikte OBJECT_ID fonksiyonunu da kullanıyoruz.

Software Developer - Mesut GÜNEŞ
1
2
3
4
5
6
7
8
9
10
11
12
IF EXISTS (
SELECT FROM sys.indexes
WHERE Name='PK_Product_ProductID' --İndex Adı
AND object_id=OBJECT_ID('Production.Product')
)
BEGIN
PRINT 'Index Mevcut'
END
ELSE
BEGIN
PRINT 'Index Mevcut Değil'
END

index_find_by_object_id

Bazı senaryolarda ihtiyacınız olacak olan bu sorgulama yöntemlerinin faydalı olması dileğiyle. Sizlerinde kullanmış olduğu farklı yöntemler var ise yorum panelinden paylaşabilirsiniz.

Yazıyı beğendiyeseniz sosyal medyada paylaşabilirsiniz.

Yazar Hakkında

Avatar
Mesut Güneş

Dogan Online Database Administrator

cialis generic kamagra gel cheap cialis uk levitra uk cialis generic kamagra gel kamagra 100mg cheap cialis uk cheap levitra uk cheap cialis kamagra 100mg cialis tadalafil kamagra oral jelly cialis buy viagra generic levitra uk kamagra gel cialis generic cheap levitra cheap viagra uk

Yorumlar

Yorum Yazın

.com

Bülten Üyeliği

Güncel eğitim ve etkinliklerden ilk haberdar olmak için ücretsiz abone olun.

Login

Login olmak için kullanıcı adınızı ve şifrenizi giriniz.

Şifremi Unuttum

×

Hızlı İletişim

Her konuda bana yazabilirsiniz. En kısa zamanda cevap vereceğim.

×