diff --git a/onces/CSUN/CSUN#90600_verwijderenALG_samedaydelete.sql b/onces/CSUN/CSUN#90600_verwijderenALG_samedaydelete.sql new file mode 100644 index 000000000..7206d6614 --- /dev/null +++ b/onces/CSUN/CSUN#90600_verwijderenALG_samedaydelete.sql @@ -0,0 +1,74 @@ +-- +-- $Id$ +-- +-- Korte beschrijving wat het script doet +-- Onnodige gebouwen/verdiepingen/ruimten die steeds maar 1 dag hebben bestaan mogen helemaal verwijderd worden uit de database, daar staat niets aan gekoppeld. +-- In een vorig (vergelijkbaar script) werden al zaken verwijderd die 1 dag na aanmaak waren verwijderd. +-- Maar er zijn ook gebouwen/verdiepingen/ruimten die nog sneller zijn aangemaakt en verwijderd (soms wel binnen 2 minuten) +-- Daarvoor zal er een once script gemaakt worden, dit zorgt nu voor een onnodige performance-belasting. +-- Er zijn vanaf 16 september tot en met 30 september volgend aantal gebouwen/verdiepingen/ruimten die zijn aangemaakt en direct dezelfde dag ook zijn verwijderd: + -- 33.238 gebouwen; + -- 145.621 verdiepingen; + -- 145.621 ruimten; + +DEFINE thisfile = 'CSUN#90600_verwijderenALG_samedaydelete.SQL' +DEFINE dbuser = '^CSUN' + +SET ECHO ON +SET DEFINE ON +COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; +COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT; +WHENEVER SQLERROR CONTINUE; +SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL; +SPOOL &fcltlogfile +WHENEVER SQLERROR EXIT; +SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL; +WHENEVER SQLERROR CONTINUE; +PROMPT &fcltcusterr +SET DEFINE OFF + +------ payload begin ------ + +DECLARE + v_min_date DATE := TO_DATE('16-09-2025','DD-MM-YYYY'); +BEGIN + /* 1) RUIMTES eerst */ + DELETE FROM alg_ruimte r + WHERE TRUNC(r.alg_ruimte_aanmaak) = TRUNC(r.alg_ruimte_verwijder) +-- AND r.alg_ruimte_key NOT IN ( +-- SELECT alg_ruimte_key +-- FROM prs_v_perslidwerkplek_gegevens) + AND r.alg_ruimte_aanmaak >= v_min_date; + COMMIT; + + /* 2) VERDIEPINGEN daarna (alleen als er geen ruimtes meer onder hangen) */ + DELETE FROM alg_verdieping v + WHERE TRUNC(v.alg_verdieping_aanmaak) = TRUNC(v.alg_verdieping_verwijder) +-- AND v.alg_verdieping_key NOT IN ( +-- SELECT alg_verdieping_key +-- FROM prs_v_perslidwerkplek_gegevens) + AND v.alg_verdieping_aanmaak >= v_min_date; + COMMIT; + + /* 3) GEBOUWEN tot slot (alleen als er geen verdiepingen meer onder hangen) */ + DELETE FROM alg_gebouw g + WHERE TRUNC(g.alg_gebouw_aanmaak) = TRUNC(g.alg_gebouw_verwijder) +-- AND g.alg_gebouw_key NOT IN ( +-- SELECT alg_gebouw_key +-- FROM prs_v_perslidwerkplek_gegevens) + AND g.alg_gebouw_aanmaak >= v_min_date; + COMMIT; +END; +/ + +------ payload end ------ + +SET DEFINE OFF +BEGIN adm.systrackscriptId ('$Id$', 1); END; +/ + +COMMIT; +SET ECHO OFF +SPOOL OFF +SET DEFINE ON +PROMPT Logfile of this upgrade is: &fcltlogfile