私はちょうど400-500行のテーブルを持っていますが、このテーブルは非常に頻繁にアクセスされていますので、その列の1つに非クラスタ化インデックスを追加して改善が必要かどうか疑問に思っていましたか?クラスタ化されていないインデックスを1000行未満のテーブルに追加すると、頻繁にアクセスするとパフォーマンスが向上しますか?
この表は、常に同じデータを保持し、まれに更新されます。ここで
は、このクラスタ索引付き
CREATE TABLE [dbo].[tbl_TimeZones](
[country] [char](2) NOT NULL,
[region] [char](2) NULL,
[timezone] [varchar](50) NOT NULL
) ON [PRIMARY]
テーブルの構造です:
CREATE CLUSTERED INDEX [IX_tbl_TimeZones] ON [dbo].[tbl_TimeZones]
(
[country] ASC,
[region] ASC,
[timezone] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
領域列がヌル可能性があるため、この表に主キーを持っていませんなぜそれがです私はまだ鍵を使っていない。
したがって、パフォーマンスを向上させるために、タイムゾーンに非クラスタインデックスを追加したいとします。
あなたの回答に感謝します。より良いアプローチを得るために、実際のサンプル表を追加しました。 – enb141
[timezone]が予想される検索結果か検索条件であるかどうかはわかりません。たとえば、「country = @cおよびregion = @rのtbl_timezonesから時間帯を選択する」は、[country、region、timezone]以上のインデックスを示唆しています。 – Ash
はい、正解ですが、タイムゾーンがあり、そのテーブルの選択が[x、y座標をどこから選んでいますか?timezone = @timezone]のようなかなり類似した2番目のテーブルがあります。 – enb141