Ich habe einen sehr großen Tisch (über 140 mil Reihen und Größe von rund 230 GB). Es gibt eine Spalte namens "date_dim" mit einem Clustered Index asc. In der Tabelle sind alle Daten von 2015 gespeichert.Performance Issue - Wählen Sie das erste Datum pro Monat auf einem sehr großen Tisch
Mein Ziel ist es jetzt, das erste Datum eines Monats zu erhalten, dass Daten gespeichert werden. So könnte es sein, dass im Januar die Daten am 5. gestartet sind. Also muss ich eine dynamische Abfrage erstellen.
diese Daten abzurufen, ich folgende Abfrage erstellt:
SELECT
*
FROM (
SELECT
date_dim
,row_num = ROW_NUMBER() OVER (PARTITION BY MONTH(date_dim) ORDER BY date_dim ASC)
FROM myTable_2015 WITH (NOLOCK)
) AS s
WHERE
row_num = 1
ORDER BY
1
Jetzt ist mein Problem ist, dass die Abfrage eine sehr lange Zeit, um die Daten zu erhalten hat. Gibt es möglicherweise eine andere Möglichkeit, eine Abfrage mit besserer Leistung zu erstellen? Haben Sie eine Leistungsempfehlung, um solche großen Tische für meinen speziellen Fall auszuwählen?
Eigentlich kann ich keine Änderungen auf dem Tisch selbst machen, nur 'Read' Zugang ...
Cant Sie es nur ab dem Datum Tisch bekommen? – RegBes
Nein, weil ich das erste Datum brauche, dass Daten pro Monat gespeichert werden ... –