Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@sato_ryu

テーブルに適用されているインデックスとそのカラムを調べる方法

More than 1 year has passed since last update.

Azure SQL Database に自動チューニングというのがあって、たくさんクエリーを投げると、パフォーマンスを改善するインデックスを特定し、自動で作成してくれる。ある程度はエンジニアで試行錯誤しながら事前にインデックスを作成できるが、それだけでなく、実際に運用に投入してから実際によくつかわれるクエリから勝手に作ってくれる。

かなり便利なんだけど、いったいどのカラムにどういったインデックスを作成してくれたのかを知りたくなったので、調べてみた。

SQL Serverではデータベースやデータベースサーバーに関する情報を提供するカタログビューというものがあり、その中にインデックスやテーブルの情報を持つビューがある。
それらを組み合わせることで、インデックスの名前とそれに関連するカラム名の一覧を取ることができる。

実際に使ったクエリ

SELECT
    indx.name    -- インデックス名
    , clmns.name -- インデックスのカラム名
FROM sys.index_columns AS indx_clmns
JOIN sys.indexes AS indx 
    ON indx_clmns.object_id = indx.object_id AND indx.index_id = indx_clmns.index_id
JOIN sys.columns AS clmns
    ON indx.object_id = clmns.object_id AND indx_clmns.column_id = clmns.column_id
WHERE indx.object_id = OBJECT_ID('dbo.users')

参考

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?