Forum: Datenbanken
by Blup,
6. Feb 2013
Also Schritt für Schritt, welche Indexe existieren für diese Tabelle?
Forum: Datenbanken
by Blup,
6. Feb 2013
Stimmt, ich hatte das distinct vergessen:
/* Index über SpalteDatum erforderlich */
CREATE VIEW V_SpalteA2012(
SpalteA)
AS
Select distinct SpalteA from Tabelle1 where SpalteDatum between '20120101' and '20121231';
Zumindest auf meiner Testdatenbank mit ca. 1000000 Datensätzen mit ähnlicher Datenstruktur, wird die eigentlich Abfrage dann in unter einer Sekunde abgearbeitet.
Forum: Datenbanken
by Blup,
5. Feb 2013
Die Bedingung ist in der View berücksichtigt.
In diesem Fall schon, sie zwingt den Server die richtigen Dinge in der richtigen Reihenfolge zu machen und nicht den Speicher voll zu müllen. Allerdings sind die beiden Indexe notwendig, sonst bringt alles nichts.
Forum: Datenbanken
by Blup,
5. Feb 2013
"In" ist extrem teuer (Zeitaufwand).
Ich würde die Abfrage in eine View für das Auswahlkriterium
/* Index über SpalteDatum erforderlich */
CREATE VIEW V_SpalteA2012(
SpalteA)
AS
Select SpalteA from Tabelle1 where SpalteDatum between '20120101' and '20121231';