CSUN#90600 Er zijn heel veel onnodige gebouwen/verdiepingen/ruimten aangemaakt vanuit de daily procedure update_vastgoed. Er waren al gebouwen/verdiepingen/ruimten verwijderd die 1 dag hebben bestaan, maar er blijken ook flink wat gebouwen/verdiepingen/ruimten te zijn verwijder die zelfs op dezelfde dag al zijn verwijderd. Om ook die te verwijderen, daarvoor is dit script. Nu ook voor records van 15 september, die waren over het hoofd gezien.

svn path=/Customer/; revision=70781
This commit is contained in:
Sander Schepers
2025-11-03 14:29:08 +00:00
parent c49e7e8794
commit 68e4d0f7fb

View File

@@ -0,0 +1,75 @@
--
-- $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.
-- Een eerder (en vergelijkbaar script) had al eens gedraaid met records vanaf vanaf 16 september met gebouwen/verdiepingen/ruimten die zijn aangemaakt en direct dezelfde dag ook zijn verwijderd:
-- Over het hoofd gezien was dat op 15 september ook nog veel overbodige records waren geregistreerd:
-- 11.101 gebouwen;
-- 35.031 verdiepingen;
-- 35.063 ruimten;
DEFINE thisfile = 'CSUN#90600_verwijderenALG_samedaydelete_15-09-2025.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('15-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