loading

スポンサーサイト

Posted by Genesis on --.-- スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SQL Server]インデックス情報出力T-SQL

Posted by Genesis on 04.2015 SQL Server   0 comments
- 概要 -
SQL Server のシステムビューを用いたインデックス情報の出力SQLです。
接続先データベースのユーザーテーブルに作成されたインデックス名称、含まれるカラム名称、その他付加情報を出力します。
含まれる列の情報を出すには sys.index_columns を参照し、列名称を出すには sys.columns を参照する必要があるため、4つのビューを結合させる必要があります。
毎回書くのが結構面倒なので記載してみました。
インデックスの断片化情報であれば、sys.dm_db_index_physical_stats などを用いる必要があります。

T-SQL(1)
    1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
SELECT
     [tb].[name] as [table_name]
    ,[ix].[name] as [index_name]
    ,[co].[name] as [column_name]
    ,[ix].[type_desc]
    ,[ix].[index_id]
    ,[ix].[is_unique]
    ,[ix].[is_primary_key]
    ,[ix].[is_disabled]
    ,[ic].[key_ordinal]
    ,[ic].[is_included_column]
FROM
    [sys].[tables]  as [tb]
    INNER JOIN
    [sys].[indexes] as [ix]
    ON
        [tb].[object_id] = [ix].[object_id]

    INNER JOIN
    [sys].[index_columns] as [ic]
    ON
        [ix].[object_id] = [ic].[object_id]
        and
        [ix].[index_id]  = [ic].[index_id]

    INNER JOIN
    [sys].[columns] as [co]
    ON
        [ic].[object_id] = [co].[object_id]
        and
        [ic].[column_id] = [co].[column_id]
WHERE
    [tb].[type] = 'U'
ORDER BY
     [tb].[name]
    ,[ix].[name]
    ,[co].[column_id]
;


  • password
  • 管理者にだけ表示を許可する

menu

Memo.htmlへようこそ
タイトルの通りメモ帳のような感じで使われているブログです
ごゆっくりご覧になってください  

公開記事の一覧表示
リンク

recent entries

categories

mail

ご意見・ご要望・ご質問などお気軽にどうぞ
お返事に数日間ほどお時間を頂きますがご了承ください
下記のアドレス◎を半角@に変換してお送りください

Memo.html.info◎gmail.com

name:
address:
title:
main:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。