"In" ist extrem teuer (Zeitaufwand).
Ich würde die Abfrage in eine View für das Auswahlkriterium
Code:
/* Index über SpalteDatum erforderlich */
CREATE VIEW V_SpalteA2012(
SpalteA)
AS
Select SpalteA from Tabelle1 where SpalteDatum between '20120101' and '20121231';
und in die eigentliche Datenabfrage aufteilen:
Code:
/* Index über SpalteA erforderlich */
select b.*
from V_SpalteA2012 a
left join Tabelle1 b on b.SpalteA = a.SpalteA