Files
Customer/onces/ARAI/ARAI#25591c.sql
Jos Groot Lipman 7a753a1d6a ARAI#25591 Opruimen kenmerkwaardes nieuw script formaat
svn path=/Customer/; revision=32782
2017-02-09 16:23:52 +00:00

65 lines
1.8 KiB
SQL

--
-- $Id$
--
-- Meetwaarden opruim script.
-- Hetzelfde als ARAI#25591 maar dan gewoon met een delete
-- Om regelmatig toe te passen.
-- We verwijderen ze per week om de transacties niet al te groot te maken
-- Daarbij beginnen we een jaar terug, er van uitgaande dat je dit script
-- echt wel eens per jaar draait.
-- Reken op zo'n 5 minuten om 1063733 records terug te brengen tot 287947
-- (2 maand data)
DEFINE thisfile = 'ARAI#37152.sql'
DEFINE dbuser = '^ARAI'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
SET SERVEROUTPUT ON SIZE UNLIMITED;
SELECT COUNT(*) FROM ins_kenmerkdeel;
DECLARE
week NUMBER (10);
BEGIN
FOR week IN REVERSE 0 .. 52
LOOP
DBMS_OUTPUT.put_line (TO_CHAR(SYSDATE, 'HH24:MI:SS') || ' Week: ' || TO_CHAR (week));
DELETE
FROM ins_kenmerkdeel ikd
WHERE ins_kenmerkdeel_aanmaak < SYSDATE - 30 - 7 * week -- Filteren op alle records die weg moeten
AND ins_kenmerkdeel_verwijder IS NOT NULL
AND EXISTS
(SELECT 1
FROM ins_kenmerk ik, ins_deel idd
WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key
AND ikd.ins_deel_key = idd.ins_deel_key
AND ik.ins_kenmerk_meetwaarde = 1);
COMMIT;
END LOOP;
END;
/
SELECT COUNT(*) FROM ins_kenmerkdeel;
------ 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