YEAR(ACTIVITYDATE) = some integer
私はACTIVITYDATEの上にインデックスを追加して、自分のフィルターにYEAR関数を適用することができますすべてのレコードの数百万レコードを持つテーブルを検索する必要があります。
ただし、列がYEAR(ACTIVITY)として定義されており、ACTIVITYYEAR以上のインデックスを保持する計算列ACTIVITYYEARを保存する方が良いとは思わないでしょうか?
テーブルのインデックス付きの列に十分な個別の値がないと、SQLはとにかくテーブルスキャンを行います。私はまだテストを実行するのに十分なデータを持っていません。私は可能な限りテーブルレイアウトを定義しようとしています。
あなたの考えは?
代替手段はありますか?文字列操作ですか? – Jeremy
私が従うかわからない。私は文字列としてのキャストがパフォーマンスを向上させるとは思わない。おそらく反対です。私の選択肢は、私が気づいていない別の選択肢がない限り、上記の2つのうちの1つです。 – ChadD
あなたはビューを試してみませんか? – TheVillageIdiot