UWVA#86443 VINDERDUMP-export/Optimaliseren (oplossen performance-fout per 2024.3)

svn path=/Customer/trunk/; revision=67121
This commit is contained in:
Maarten van der Heide
2024-11-20 16:22:52 +00:00
parent f00c19fd1b
commit e54e66c1a9

View File

@@ -4801,193 +4801,201 @@ AS
GROUP BY d.alg_district_omschrijving, g.alg_gebouw_omschrijving, l.imp_log_omschrijving, l.imp_log_hint; GROUP BY d.alg_district_omschrijving, g.alg_gebouw_omschrijving, l.imp_log_omschrijving, l.imp_log_hint;
CREATE OR REPLACE VIEW uwva_v_export_vinderdump (result, result_order) CREATE OR REPLACE VIEW uwva_v_export_vinderdump
(
result,
result_order
)
AS AS
SELECT '"volledige naam";' || SELECT '"volledige naam";'
'"achternaam";' || || '"achternaam";'
'"tussenvoegsel";' || || '"tussenvoegsel";'
'"voorletters";' || || '"voorletters";'
'"voornaam";' || || '"voornaam";'
'"divisie";' || || '"divisie";'
'"afdeling";' || || '"afdeling";'
'"functie";' || || '"functie";'
'"alt_divisie";' || || '"alt_divisie";'
'"alt_afdeling";' || || '"alt_afdeling";'
'"alt_functie";' || || '"alt_functie";'
'"persoonsnr";' || || '"persoonsnr";'
'"account";' || || '"account";'
'"werknemertype";' || || '"werknemertype";'
'"regio";' || || '"regio";'
'"locatie";' || || '"locatie";'
'"gebouw";' || || '"gebouw";'
'"verdieping";' || || '"verdieping";'
'"ruimte";' || || '"ruimte";'
'"e-mail";' || || '"e-mail";'
'"telefoon";' || || '"telefoon";'
'"mobiel";' || || '"mobiel";'
'"faxnummer";' || || '"faxnummer";'
'"maandag";' || || '"maandag";'
'"dinsdag";' || || '"dinsdag";'
'"woensdag";' || || '"woensdag";'
'"donderdag";' || || '"donderdag";'
'"vrijdag";' || || '"vrijdag";'
'"geslacht";' || || '"geslacht";'
'"toon in gids"' result, || '"toon in gids"'
0 result_order result,
FROM DUAL 0 result_order
UNION ALL FROM DUAL
SELECT '"' || prs_perslid_naam_full || '";"' || UNION ALL
prs_perslid_naam || '";"' || SELECT '"' || prs_perslid_naam_full || '";"'
prs_perslid_tussenvoegsel || '";"' || || prs_perslid_naam || '";"'
prs_perslid_voorletters || '";"' || || prs_perslid_tussenvoegsel || '";"'
prs_perslid_voornaam || '";"' || || prs_perslid_voorletters || '";"'
divisie || '";"' || || prs_perslid_voornaam || '";"'
afdeling || '";"' || || divisie || '";"'
prs_srtperslid_omschrijving || '";"' || || afdeling || '";"'
alt_divisie || '";"' || || prs_srtperslid_omschrijving || '";"'
alt_afdeling || '";"' || || alt_divisie || '";"'
alt_functie || '";"' || || alt_afdeling || '";"'
prs_perslid_nr || '";"' || || alt_functie || '";"'
prs_perslid_oslogin || '";"' || || prs_perslid_nr || '";"'
emptype || '";"' || || prs_perslid_oslogin || '";"'
regio || '";"' || || emptype || '";"'
alg_locatie_code || '";"' || || regio || '";"'
alg_gebouw_code || '";"' || || alg_locatie_code || '";"'
alg_verdieping_code || '";"' || || alg_gebouw_code || '";"'
alg_ruimte_nr || '";"' || || alg_verdieping_code || '";"'
prs_perslid_email || '";"' || || alg_ruimte_nr || '";"'
prs_perslid_telefoonnr || '";"' || || prs_perslid_email || '";"'
prs_perslid_mobiel || '";"' || || prs_perslid_telefoonnr || '";"'
faxnr || '";"' || || prs_perslid_mobiel || '";"'
maandag || '";"' || || faxnr || '";"'
dinsdag || '";"' || || maandag || '";"'
woensdag || '";"' || || dinsdag || '";"'
donderdag || '";"' || || woensdag || '";"'
vrijdag || '";"' || || donderdag || '";"'
DECODE (prs_perslid_geslacht, 0, 'V', 1, 'M', 'O') || '";"' || || vrijdag || '";"'
DECODE (prs_perslid_ingids, 0, 'Nee', 1, 'Ja', 'O') || '"' result, || DECODE (prs_perslid_geslacht, 0, 'V', 1, 'M', 'O') || '";"'
1 result_order || DECODE (prs_perslid_ingids, 0, 'Nee', 1, 'Ja', 'O') || '"'
FROM (SELECT apl.*, result,
wpg.*, 1 result_order
pfn.prs_perslid_naam_full, FROM (SELECT p.prs_perslid_key,
afd.prs_afdeling_naam6 afdeling, p.prs_perslid_naam,
div.prs_afdeling_naam6 divisie, p.prs_perslid_tussenvoegsel,
aspl.prs_srtperslid_omschrijving p.prs_perslid_voorletters,
FROM prs_v_aanwezigperslid apl, p.prs_perslid_voornaam,
prs_v_perslid_fullnames pfn, p.prs_perslid_nr,
prs_v_aanwezigafdeling afd, p.prs_perslid_oslogin,
prs_v_afdeling_boom ab, p.prs_perslid_email,
prs_v_aanwezigafdeling div, p.prs_perslid_telefoonnr,
prs_v_aanwezigsrtperslid aspl, p.prs_perslid_mobiel,
prs_v_hoofdperslidwerkplek hpwp, p.prs_perslid_geslacht,
prs_v_werkplek_gegevens wpg p.prs_perslid_ingids,
WHERE pfn.prs_perslid_key = apl.prs_perslid_key wpg.alg_locatie_code,
AND apl.prs_afdeling_key = afd.prs_afdeling_key wpg.alg_gebouw_code,
AND afd.prs_afdeling_key = ab.prs_afdeling_key wpg.alg_verdieping_code,
AND ab.prs_afdeling_key1 = div.prs_afdeling_key wpg.alg_ruimte_nr,
AND apl.prs_srtperslid_key = aspl.prs_srtperslid_key pf.prs_perslid_naam_full,
AND apl.prs_perslid_key = hpwp.prs_perslid_key(+) --afd.prs_afdeling_naam6 afdeling,
AND hpwp.prs_werkplek_key = wpg.prs_werkplek_key(+) afd.prs_afdeling_naam || '-' || afd.prs_afdeling_omschrijving
ORDER BY prs_perslid_ingids, prs_perslid_naam_full, prs_perslid_nr) pl afdeling,
--1040 = Type Medewerker (R) --div.prs_afdeling_naam6 divisie,
-- 301 = Type_medewerker (fac_usrtab) div.prs_afdeling_naam || '-' || div.prs_afdeling_omschrijving
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr emptype divisie,
FROM fac_usrdata, prs_kenmerklink sp.prs_srtperslid_omschrijving
WHERE fac_usrtab_key = 301 FROM prs_v_aanwezigperslid p,
AND prs_kenmerk_key = 1040 prs_v_perslid_fullnames pf,
AND prs_kenmerklink_waarde = fac_usrdata_key --prs_v_aanwezigafdeling afd,
AND fac_usrdata_verwijder IS NULL prs_afdeling afd,
AND prs_kenmerklink_verwijder IS NULL) f1 prs_v_afdeling_boom ab,
ON pl.prs_perslid_key = f1.prs_link_key --prs_v_aanwezigafdeling div,
--1193 = Regio (R) prs_afdeling div,
-- 783 = RegioVinder (fac_usrtab) prs_v_hoofdperslidwerkplek hpwp,
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr regio prs_v_werkplek_gegevens wpg,
FROM fac_usrdata, prs_kenmerklink prs_v_aanwezigsrtperslid sp
WHERE fac_usrtab_key = 783 WHERE p.prs_perslid_key = pf.prs_perslid_key
AND prs_kenmerk_key = 1193 AND p.prs_afdeling_key = afd.prs_afdeling_key
AND prs_kenmerklink_waarde = fac_usrdata_key AND p.prs_afdeling_key = ab.prs_afdeling_key
AND fac_usrdata_verwijder IS NULL AND ab.prs_afdeling_key1 = div.prs_afdeling_key
AND prs_kenmerklink_verwijder IS NULL) f2 AND p.prs_perslid_key = hpwp.prs_perslid_key(+)
ON pl.prs_perslid_key = f2.prs_link_key AND hpwp.prs_werkplek_key = wpg.prs_werkplek_key(+)
--1173 = Alternatieve afdeling (S) AND p.prs_srtperslid_key = sp.prs_srtperslid_key) pl
LEFT OUTER JOIN (SELECT prs_link_key, LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr emptype
afd.prs_afdeling_naam6 alt_afdeling, FROM fac_usrdata, prs_kenmerklink
div.prs_afdeling_naam6 alt_divisie WHERE fac_usrtab_key = 301 -- 301 = Type_medewerker (fac_usrtab)
FROM prs_kenmerklink, AND prs_kenmerk_key = 1040 -- 1040 = Type Medewerker (R)
prs_v_aanwezigafdeling afd, AND prs_kenmerklink_waarde = fac_usrdata_key
prs_v_afdeling_boom ab, AND fac_usrdata_verwijder IS NULL
prs_v_aanwezigafdeling div AND prs_kenmerklink_verwijder IS NULL) f1
WHERE prs_kenmerk_key = 1173 ON pl.prs_perslid_key = f1.prs_link_key
AND afd.prs_afdeling_key = fac.safe_to_number(prs_kenmerklink_waarde) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr regio
AND ab.prs_afdeling_key = afd.prs_afdeling_key FROM fac_usrdata, prs_kenmerklink
AND div.prs_afdeling_key = ab.prs_afdeling_key1 WHERE fac_usrtab_key = 783 -- 783 = RegioVinder (fac_usrtab)
AND prs_kenmerklink_verwijder IS NULL) f3 AND prs_kenmerk_key = 1193 -- 1193 = Regio (R)
ON pl.prs_perslid_key = f3.prs_link_key AND prs_kenmerklink_waarde = fac_usrdata_key
--1192 = Alternatieve functie (S) AND fac_usrdata_verwijder IS NULL
LEFT OUTER JOIN (SELECT prs_link_key, AND prs_kenmerklink_verwijder IS NULL) f2
prs_srtperslid_omschrijving alt_functie ON pl.prs_perslid_key = f2.prs_link_key
FROM prs_kenmerklink, prs_v_aanwezigsrtperslid LEFT JOIN (SELECT prs_link_key,
WHERE prs_kenmerk_key = 1192 afd.prs_afdeling_naam6 alt_afdeling,
AND prs_srtperslid_key = prs_kenmerklink_waarde div.prs_afdeling_naam6 alt_divisie
AND prs_kenmerklink_verwijder IS NULL) f4 FROM prs_kenmerklink,
ON pl.prs_perslid_key = f4.prs_link_key prs_v_aanwezigafdeling afd,
-- 7 = Faxnr (C) prs_v_afdeling_boom ab,
LEFT OUTER JOIN (SELECT prs_link_key, prs_kenmerklink_waarde faxnr prs_v_aanwezigafdeling div
FROM prs_kenmerklink WHERE prs_kenmerk_key = 1173 -- 1173 = Alternatieve afdeling (S)
WHERE prs_kenmerk_key = 7 AND afd.prs_afdeling_key =
AND prs_kenmerklink_verwijder IS NULL) f7 fac.safe_to_number (prs_kenmerklink_waarde)
ON pl.prs_perslid_key = f7.prs_link_key AND ab.prs_afdeling_key = afd.prs_afdeling_key
--1163 = Maandag (R) AND div.prs_afdeling_key = ab.prs_afdeling_key1
-- 761 = AanwezigOp (fac_usrtab) AND prs_kenmerklink_verwijder IS NULL) f3
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr maandag ON pl.prs_perslid_key = f3.prs_link_key
FROM fac_usrdata, prs_kenmerklink LEFT JOIN (SELECT prs_link_key,
WHERE fac_usrtab_key = 761 prs_srtperslid_omschrijving alt_functie
AND prs_kenmerk_key = 1163 FROM prs_kenmerklink, prs_v_aanwezigsrtperslid
AND prs_kenmerklink_waarde = fac_usrdata_key WHERE prs_kenmerk_key = 1192 -- 1192 = Alternatieve functie (S)
AND fac_usrdata_verwijder IS NULL AND prs_srtperslid_key = prs_kenmerklink_waarde
AND prs_kenmerklink_verwijder IS NULL) f8 AND prs_kenmerklink_verwijder IS NULL) f4
ON pl.prs_perslid_key = f8.prs_link_key ON pl.prs_perslid_key = f4.prs_link_key
--1164 = Dinsdag (R) LEFT JOIN (SELECT prs_link_key, prs_kenmerklink_waarde faxnr
-- 761 = AanwezigOp (fac_usrtab) FROM prs_kenmerklink
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr dinsdag WHERE prs_kenmerk_key = 7 -- 7 = Faxnr (C)
FROM fac_usrdata, prs_kenmerklink AND prs_kenmerklink_verwijder IS NULL) f7
WHERE fac_usrtab_key = 761 ON pl.prs_perslid_key = f7.prs_link_key
AND prs_kenmerk_key = 1164 LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr maandag
AND prs_kenmerklink_waarde = fac_usrdata_key FROM fac_usrdata, prs_kenmerklink
AND fac_usrdata_verwijder IS NULL WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerklink_verwijder IS NULL) f9 AND prs_kenmerk_key = 1163 -- 1163 = Maandag (R)
ON pl.prs_perslid_key = f9.prs_link_key AND prs_kenmerklink_waarde = fac_usrdata_key
--1165 = Woensdag (R) AND fac_usrdata_verwijder IS NULL
-- 761 = AanwezigOp (fac_usrtab) AND prs_kenmerklink_verwijder IS NULL) f8
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr woensdag ON pl.prs_perslid_key = f8.prs_link_key
FROM fac_usrdata, prs_kenmerklink LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr dinsdag
WHERE fac_usrtab_key = 761 FROM fac_usrdata, prs_kenmerklink
AND prs_kenmerk_key = 1165 WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerklink_waarde = fac_usrdata_key AND prs_kenmerk_key = 1164 -- 1164 = Dinsdag (R)
AND fac_usrdata_verwijder IS NULL AND prs_kenmerklink_waarde = fac_usrdata_key
AND prs_kenmerklink_verwijder IS NULL) f10 AND fac_usrdata_verwijder IS NULL
ON pl.prs_perslid_key = f10.prs_link_key AND prs_kenmerklink_verwijder IS NULL) f9
--1166 = Donderdag (R) ON pl.prs_perslid_key = f9.prs_link_key
-- 761 = AanwezigOp (fac_usrtab) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr woensdag
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr donderdag FROM fac_usrdata, prs_kenmerklink
FROM fac_usrdata, prs_kenmerklink WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
WHERE fac_usrtab_key = 761 AND prs_kenmerk_key = 1165 -- 1165 = Woensdag (R)
AND prs_kenmerk_key = 1166 AND prs_kenmerklink_waarde = fac_usrdata_key
AND prs_kenmerklink_waarde = fac_usrdata_key AND fac_usrdata_verwijder IS NULL
AND fac_usrdata_verwijder IS NULL AND prs_kenmerklink_verwijder IS NULL) f10
AND prs_kenmerklink_verwijder IS NULL) f11 ON pl.prs_perslid_key = f10.prs_link_key
ON pl.prs_perslid_key = f11.prs_link_key LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr donderdag
--1167 = Vrijdag (R) FROM fac_usrdata, prs_kenmerklink
-- 761 = AanwezigOp (fac_usrtab) WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr vrijdag AND prs_kenmerk_key = 1166 -- 1166 = Donderdag (R)
FROM fac_usrdata, prs_kenmerklink AND prs_kenmerklink_waarde = fac_usrdata_key
WHERE fac_usrtab_key = 761 AND fac_usrdata_verwijder IS NULL
AND prs_kenmerk_key = 1167 AND prs_kenmerklink_verwijder IS NULL) f11
AND prs_kenmerklink_waarde = fac_usrdata_key ON pl.prs_perslid_key = f11.prs_link_key
AND fac_usrdata_verwijder IS NULL LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr vrijdag
AND prs_kenmerklink_verwijder IS NULL) f12 FROM fac_usrdata, prs_kenmerklink
ON pl.prs_perslid_key = f12.prs_link_key; WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerk_key = 1167 -- 1167 = Vrijdag (R)
AND prs_kenmerklink_waarde = fac_usrdata_key
AND fac_usrdata_verwijder IS NULL
AND prs_kenmerklink_verwijder IS NULL) f12
ON pl.prs_perslid_key = f12.prs_link_key;
-- View voor phonebook, met contactgegevens per afdeling -- View voor phonebook, met contactgegevens per afdeling
CREATE OR REPLACE VIEW uwva_v_rap_afd_contact CREATE OR REPLACE VIEW uwva_v_rap_afd_contact