SQL Server’da Tablolara Bağlı Indexleri Listeleme

Herkese merhaba,

Bu yazıda SQL Server’da tablolara bağlı indexleri listelemeyle ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda tablolara bağlı indexleri listelemek isteyebilirsiniz.

Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.

SELECT QUOTENAME(t.name) AS [Tablo Adı],
       QUOTENAME(i.name) AS [Index Adı],
       i.is_primary_key AS [Otomatik Artanmı],
       STUFF(REPLACE(REPLACE(
                     (
                         SELECT QUOTENAME(c.name) + CASE
                                                        WHEN ic.is_descending_key = 1 THEN
                                                            ' DESC'
                                                        ELSE
                                                            ''
                                                    END AS [data()]
                         FROM sys.index_columns AS ic
                             INNER JOIN sys.columns AS c
                                 ON ic.object_id = c.object_id
                                    AND ic.column_id = c.column_id
                         WHERE ic.object_id = i.object_id
                               AND ic.index_id = i.index_id
                               AND ic.is_included_column = 0
                         ORDER BY ic.key_ordinal
                         FOR XML PATH
                     ),
                     '<row>',
                     ', '
                            ),
                     '</row>',
                     ''
                    ),
             1,
             2,
             ''
            ) AS [Index Alan Bilgileri],
       STUFF(REPLACE(REPLACE(
                     (
                         SELECT QUOTENAME(c.name) AS [data()]
                         FROM sys.index_columns AS ic
                             INNER JOIN sys.columns AS c
                                 ON ic.object_id = c.object_id
                                    AND ic.column_id = c.column_id
                         WHERE ic.object_id = i.object_id
                               AND ic.index_id = i.index_id
                               AND ic.is_included_column = 1
                         ORDER BY ic.index_column_id
                         FOR XML PATH
                     ),
                     '<row>',
                     ', '
                            ),
                     '</row>',
                     ''
                    ),
             1,
             2,
             ''
            ) AS [Index Include Bilgileri]
FROM sys.tables AS t
    INNER JOIN sys.indexes AS i
        ON t.object_id = i.object_id
    LEFT JOIN sys.dm_db_index_usage_stats AS u
        ON i.object_id = u.object_id
           AND i.index_id = u.index_id
WHERE t.is_ms_shipped = 0
      AND t.name LIKE '%'
      AND i.type <> 0
ORDER BY i.name;

Yukarıdaki kod bloğunu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.

SQL Server'da Tablolara Bağlı Indexleri Listeleme

Görüldüğü üzere tablolara bağlı indexler listelenmiş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

574 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!