SQL SERVER-データベース全体のテーブル上の非クラスタ化インデックスの数を識別する

ここでは、データベース全体の任意のテーブル上の非クラスタ化インデックスの数を与えるスクリプトがあります。

SELECT COUNT(i.TYPE)NoOfIndex,
=s.name,table_name=o.name sysから
。索引i
INNER JOIN sys.オブジェクトO on i.=o.INNER JOIN sys.ここで、o.TYPE IN('U')
およびi.TYPE=2
GROUP BY s.name,o.name
ORDER BY schema_name,table_name

ここでは、このスクリプトが必要とされた理由の背後にある小さな話です。

私は最近、彼のオフィスで私の友人に会いに行き、彼はSQL Serverのインデックス作成の専門家である人としてオフィスの同僚に私を紹介しました。 わたしはまだ索引作成について学んでおり,長い道のりがあると丁寧に言いました。 私の友人の同僚はすぐに言った–彼はインデックスに関連して私のための提案を持っていた。 彼によると、彼はデータベース内のすべてのテーブルにクラスタ化されていないすべてのものを数えるスクリプトを探していましたが、彼はそれを見つSQLAuthority.com.

これまでに書いたことについての詳細は本当に覚えていないので、少し驚きました。 私はすぐに自分の携帯電話をプルアップし、私のカスタム検索エンジンでスクリプトを探してみましたが、彼は正しかったです。 私は、データベース全体のテーブル上のすべての非クラスタ化インデックスを数えるスクリプトを書いたことはありません。 過度の索引付けは一般的にはお勧めしません。 あまりにも多くのインデックスを持っている場合は、間違いなくあなたのパフォーマ 上記のクエリは、データベース全体のテーブルのインデックス数の詳細をすばやく提供します。 あなたはすぐに一目し、参照として数字を使用することができます。

インデックスの数は、悪いインデックスを示すものではありませんのでご注意ください。 私がここに書くことができる多くの知恵がありますが、それはこのブログ記事の範囲ではありません。 インデックスとさまざまなシナリオを持つ多くの異なるルールがあります。 たとえば、ヒープ(クラスター化インデックスなし)のテーブルは、OLTPワークロードでは推奨されないことがよくあります(ここではそれらを識別するためのブログ 私はここでいくつかのリンクを与えているにもかかわらず、それは氷山の一角です。 あなたが唯一の四つのアドバイスの上に従う場合は、あなたの船はまだ沈むことがあります。 深く主題を学びたい人は、ログインした後、ここでビデオを見ることができます。

: 非クラスター化列ストアインデックスのwhere条件の種類を6に変更します。

コメントを残す

メールアドレスが公開されることはありません。