J'ai une très grande table (plus de 140 mil de lignes et une taille d'environ 230 gb). Il y a une colonne, appelée "date_dim" avec un index clusterisé asc. Dans le tableau sont stockées toutes les données de 2015.Problème de performance - Sélectionnez firstdate par mois sur une très grande table
Ma cible est maintenant d'obtenir la première date d'un mois où les données sont stockées. Il se pourrait donc qu'en janvier les données aient commencé au 5ème. Je dois donc créer une requête "dynamique".
Pour récupérer ces données, j'ai créé requête suivante:
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
Maintenant, mon problème est que la requête a un temps très long pour obtenir les données. Y at-il peut-être une autre option pour créer une requête avec de meilleures performances? Avez-vous des conseils sur la performance pour sélectionner ces grandes tables pour mon cas spécifique?
En fait, je ne peux pas apporter des modifications sur la table elle-même, seul l'accès 'Lire' ...
Cant vous obtenez juste de la table Date? – RegBes
Non, parce que j'ai besoin de la première date à laquelle les données sont stockées par mois ... –