以下のクエリで長時間の DateTime を指定すると、タイムアウトの問題が発生しました (クエリは c# アプリケーションから実行されます)。テーブルには、ID に非クラスター化インデックス (主キーではない) を持つ 3,000 万行がありました。
主キーがないことがわかったので、最近IDを主キーとして更新しましたが、タイムアウトになりません。以下のクエリで将来のために複数のキーにインデックスを作成し、このテーブルから非クラスター化インデックスを削除して複数の列に作成する場合、誰でも助けてもらえますか? データは急速に増加しており、パフォーマンスの改善が必要です
select
ID, ReferenceNo, MinNo, DateTime, DataNo from tbl1
where
DateTime BETWEEN '04/09/2013' AND '20/11/2013'
and ReferenceNo = 4 and MinNo = 3 and DataNo = 14 Order by ID
これは作成スクリプトです
CREATE TABLE [dbo].[tbl1]( [ID] [int] IDENTITY(1,1) not null, [ReferenceNo] [int] not null, [MinNo] [int] not null, [DateTime] [datetime] not null, [DataNo] [int] not null, CONSTRAINT [tbl1_pk] PRIMARY KEY CLUSTERED ([ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS
= ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]