インデックスを作成してもインデックスが利用されず、パフォーマンスが上がらないことがある。
これは、インデックスを作成しても、SQL実行時にデータベースエンジンによってインデックスを使用しない方が良いと判断されているためである(正確には、クエリオプティマイザが判断する)。

SQL Serverでは、テーブルに対し、各項目に対するデータの分布を確認するための統計情報を作成することができる。この統計情報を使用してインデックスを使用すべきかどうかを判断しているため、統計情報が存在しない場合や不適切な情報の場合、インデックスを作成しても使用されないことがある。そのため、上記のようなインデックスが適用されないという問題が発生する。
SQL Serverの既定の設定では、インデックスを作成すると、インデックス列に対する統計情報を自動生成する。また、一定量のデータが変更(追加、削除も対象)されると、最新の状態に更新するようになっている。

【既定の設定の確認手順】
 1.オブジェクトエクスプローラのツリーで、[データベース]-[データベース名]を右クリックして[プロパティ]を選択する。
 2.[データベースのプロパティ]の画面左側にある[ページの選択]で[オプション]を選択する。
 3.[自動]の欄にある[統計の自動更新]、[統計の自動作成]を確認する。
  trueになっていれば、先述の通り、自動的に統計情報を更新する。

パフォーマンスが適切に設定されていない場合には、手動で統計情報を作成、更新したいこともある。その場合には、以下のように行う。

1.手動で統計情報を作成する場合には、以下のSQLを実行する。
 CREATE STATISTICS [インデックス名] ON [DB名].[テーブル名]([項目名])

2.手動で統計情報を更新する場合には、以下のSQLを実行する。
 UPDATE STATISTICS [DB名].[テーブル名] [インデックス名]

DBCC SHOW_STATISTICSコマンドを利用すると、作成した統計情報を表示することができる。表示するには、以下のコマンドを利用する。
 DBCC SHOW_STATISTICS (N'DB名.テーブル名', インデックス名)

使用されていないインデックスを確認する場合には、sys.dm_db_index_usage_statsという動的管理ビューを使用して確認することができる。
 SELECT * FROM sys.dm_db_index_usage_stats

インデックスを指定しても、パフォーマンスが向上しない場合には、統計情報を確認してみましょう。

Oracle 10gにも同様の機能があるみたい…
SQL文がそのまま利用できるかは不明だが、コマンドは確実に違うものになるので注意すること!