SQL Server2005 2008の文字列検索のスピードについて
SQL Server2005 2008の文字列検索のスピードについて
初歩的な質問で申し訳ありません。
下記のような文字列比較にて処理結果取得時間に差がある理由が知りたいのですが?
ご存知の方がいらっしゃいましたらご回答願います。
下記の処理パターンで調査した結果「パターン1」の処理結果は早いのですが、
「パターン2と3」は、処理結果取得までに数分かかります。
(抽出結果は20件程度)
SELECT COUNT(*) FROM [dbo].[注文データ]
パターン1
WHERE [注文データ].[納品日] >
(SELECT CONVERT(VARCHAR,DATEADD(dd,-10,GETDATE()),112) FROM DUAL)
パターン2
WHERE [注文データ].[納品日] >
CONVERT(VARCHAR,DATEADD(dd,-10,GETDATE()),112)
パターン3
WHERE [注文データ].[納品日] >
'20100601'
CREATE TABLE [dbo].[注文データ](
[品番] [varchar](10) NOT NULL,
[品名] [varchar](60) NOT NULL,
[発注数量] [decimal](9, 2) NOT NULL,
[納品日] [char](8) NOT NULL,
PRIMARY KEY CLUSTERED
( [納品日] ASC,
[品番] ASC
) WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[DUAL](
[DUMMY_COL] [varchar](1) NOT NULL,
CONSTRAINT [PK_DUAL] PRIMARY KEY CLUSTERED
( [DUMMY_COL] ASC
) WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY]
) ON [PRIMARY]
■「注文データ」テーブルは過去1年間の累積で
120万件程度の注文履歴ファイルとする。
■「DUAL」テーブルは「DUMMY_COL」に「0」をセットした
1件のデータとする。
よろしくお願い致します。 m(_ _)m
お礼
回答ありがとうございます。 具体的な数字を教えていただき今後も役に立ちそうです。 とても助かりました。