Skip to content
Snippets Groups Projects
Commit cf195673 authored by Benoît Courty's avatar Benoît Courty
Browse files

doc

parent e3581a10
No related branches found
No related tags found
1 merge request!52Prepare prod
Pipeline #19318 passed
......@@ -260,3 +260,48 @@ Le `JEOJSON` donne les éléments à ajouter à la carte.
### Carte des circos sur le site
Fait à la main sur <https://umap.openstreetmap.fr/fr/> en chargeant le fichier des circos législatives et la règle d'obtention des vignettes.
## Note sur les temps de traitement
### 14/02/2025
Sur le serveur Ysabell, dans le conteneur (qui a 24 Go de RAM et 6 coeurs), il faut entre 30 minutes et 1 heure par circonscription pour générer les données.
Sur mon poste personnel (32Go de RAM et 32 coeurs) c'est 950 secondes (15 min) pour 075-05.
Après `REINDEX DATABASE infocirco;` la requête ne prends pas moins de temps.
La requête qui prend du temps est :
```sql
SELECT classe_ges, coalesce(a.annee_2013, 0) as annee_2013, coalesce(a.annee_2014, 0) as annee_2014, coalesce(a.annee_2015, 0) as annee_2015,
coalesce(a.annee_2016, 0) as annee_2016, coalesce(a.annee_2017, 0) as annee_2017, coalesce(a.annee_2018, 0) as annee_2018,
coalesce(a.annee_2019, 0) as annee_2019, coalesce(a.annee_2020, 0) as annee_2020, coalesce(a.annee_2021, 0) as annee_2021
FROM (
select * from crosstab(
$$SELECT d.classe_estimation_ges, LEFT(d.date_etablissement_dpe,4) as annee_etablissement_DPE,
coalesce(COUNT(DISTINCT d.numero_dpe), 0) as nb_ges
FROM ademe_dpe_logements as d
LEFT JOIN zone_circo c
ON st_intersects(c.wkb_geometry, d.geom)
WHERE (c.ref = '075-05' OR (d.geom IS NULL AND (d.code_insee_commune_actualise in ('75103','75110'))))
AND LEFT(d.date_etablissement_dpe,4) between '2013' and '2021'
AND d.classe_estimation_ges IN ('A', 'B', 'C', 'D', 'E', 'F', 'G')
GROUP BY 1,2 ORDER BY 1,2$$,
$$SELECT generate_series(2013,2021)$$
) as T (
classe_ges text,
"annee_2013" int,
"annee_2014" int,
"annee_2015" int,
"annee_2016" int,
"annee_2017" int,
"annee_2018" int,
"annee_2019" int,
"annee_2020" int,
"annee_2021" int
)) as a;
```
Pour optimiser, il faut précalculer les données et les stocker dans une table. Voir le commit e3581a10910f484764dfce36657a8625c6328d52
En faisant une seule requête de 15 minutes pour préparer les données lors de l'import initial, nous sommes passé de 760 secondes (12 minutes) pour la requête la plus longue à 0.128 secondes.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment