Daarmee zijn er 155.353 gebouwen, 1.986.209 verdiepingen en 1.986.209 ruimten die verwijderd kunnen worden. Hiervoor dit once-script. Deze wordt getoetst op een database recente ververst vanuit de productieomgeving (gisteravond). svn path=/Customer/; revision=70541
78 lines
2.6 KiB
SQL
78 lines
2.6 KiB
SQL
--
|
|
-- $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.
|
|
-- 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 direct de dag erop zijn verwijderd:
|
|
-- 155.353 gebouwen;
|
|
-- 1.986.209 verdiepingen;
|
|
-- 1.986.209 ruimten;
|
|
|
|
DEFINE thisfile = 'CSUN#90600.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) - 1
|
|
AND r.alg_ruimte_key NOT IN (
|
|
SELECT alg_ruimte_key
|
|
FROM prs_v_perslidwerkplek_gegevens)
|
|
AND r.alg_ruimte_aanmaak >= v_min_date;
|
|
|
|
/* 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) - 1
|
|
AND v.alg_verdieping_key NOT IN (
|
|
SELECT alg_verdieping_key
|
|
FROM prs_v_perslidwerkplek_gegevens)
|
|
AND v.alg_verdieping_aanmaak >= v_min_date
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM alg_ruimte r
|
|
|
|
/* 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) - 1
|
|
AND g.alg_gebouw_key NOT IN (
|
|
SELECT alg_gebouw_key
|
|
FROM prs_v_perslidwerkplek_gegevens)
|
|
AND g.alg_gebouw_aanmaak >= v_min_date
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM alg_verdieping v
|
|
WHERE v.alg_gebouw_key = g.alg_gebouw_key);
|
|
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
|