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,194 +4801,202 @@ 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"'
result,
0 result_order 0 result_order
FROM DUAL FROM DUAL
UNION ALL UNION ALL
SELECT '"' || prs_perslid_naam_full || '";"' || SELECT '"' || prs_perslid_naam_full || '";"'
prs_perslid_naam || '";"' || || prs_perslid_naam || '";"'
prs_perslid_tussenvoegsel || '";"' || || prs_perslid_tussenvoegsel || '";"'
prs_perslid_voorletters || '";"' || || prs_perslid_voorletters || '";"'
prs_perslid_voornaam || '";"' || || prs_perslid_voornaam || '";"'
divisie || '";"' || || divisie || '";"'
afdeling || '";"' || || afdeling || '";"'
prs_srtperslid_omschrijving || '";"' || || prs_srtperslid_omschrijving || '";"'
alt_divisie || '";"' || || alt_divisie || '";"'
alt_afdeling || '";"' || || alt_afdeling || '";"'
alt_functie || '";"' || || alt_functie || '";"'
prs_perslid_nr || '";"' || || prs_perslid_nr || '";"'
prs_perslid_oslogin || '";"' || || prs_perslid_oslogin || '";"'
emptype || '";"' || || emptype || '";"'
regio || '";"' || || regio || '";"'
alg_locatie_code || '";"' || || alg_locatie_code || '";"'
alg_gebouw_code || '";"' || || alg_gebouw_code || '";"'
alg_verdieping_code || '";"' || || alg_verdieping_code || '";"'
alg_ruimte_nr || '";"' || || alg_ruimte_nr || '";"'
prs_perslid_email || '";"' || || prs_perslid_email || '";"'
prs_perslid_telefoonnr || '";"' || || prs_perslid_telefoonnr || '";"'
prs_perslid_mobiel || '";"' || || prs_perslid_mobiel || '";"'
faxnr || '";"' || || faxnr || '";"'
maandag || '";"' || || maandag || '";"'
dinsdag || '";"' || || dinsdag || '";"'
woensdag || '";"' || || woensdag || '";"'
donderdag || '";"' || || donderdag || '";"'
vrijdag || '";"' || || vrijdag || '";"'
DECODE (prs_perslid_geslacht, 0, 'V', 1, 'M', 'O') || '";"' || || DECODE (prs_perslid_geslacht, 0, 'V', 1, 'M', 'O') || '";"'
DECODE (prs_perslid_ingids, 0, 'Nee', 1, 'Ja', 'O') || '"' result, || DECODE (prs_perslid_ingids, 0, 'Nee', 1, 'Ja', 'O') || '"'
result,
1 result_order 1 result_order
FROM (SELECT apl.*, FROM (SELECT p.prs_perslid_key,
wpg.*, p.prs_perslid_naam,
pfn.prs_perslid_naam_full, p.prs_perslid_tussenvoegsel,
afd.prs_afdeling_naam6 afdeling, p.prs_perslid_voorletters,
div.prs_afdeling_naam6 divisie, p.prs_perslid_voornaam,
aspl.prs_srtperslid_omschrijving p.prs_perslid_nr,
FROM prs_v_aanwezigperslid apl, p.prs_perslid_oslogin,
prs_v_perslid_fullnames pfn, p.prs_perslid_email,
prs_v_aanwezigafdeling afd, p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
p.prs_perslid_geslacht,
p.prs_perslid_ingids,
wpg.alg_locatie_code,
wpg.alg_gebouw_code,
wpg.alg_verdieping_code,
wpg.alg_ruimte_nr,
pf.prs_perslid_naam_full,
--afd.prs_afdeling_naam6 afdeling,
afd.prs_afdeling_naam || '-' || afd.prs_afdeling_omschrijving
afdeling,
--div.prs_afdeling_naam6 divisie,
div.prs_afdeling_naam || '-' || div.prs_afdeling_omschrijving
divisie,
sp.prs_srtperslid_omschrijving
FROM prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf,
--prs_v_aanwezigafdeling afd,
prs_afdeling afd,
prs_v_afdeling_boom ab, prs_v_afdeling_boom ab,
prs_v_aanwezigafdeling div, --prs_v_aanwezigafdeling div,
prs_v_aanwezigsrtperslid aspl, prs_afdeling div,
prs_v_hoofdperslidwerkplek hpwp, prs_v_hoofdperslidwerkplek hpwp,
prs_v_werkplek_gegevens wpg prs_v_werkplek_gegevens wpg,
WHERE pfn.prs_perslid_key = apl.prs_perslid_key prs_v_aanwezigsrtperslid sp
AND apl.prs_afdeling_key = afd.prs_afdeling_key WHERE p.prs_perslid_key = pf.prs_perslid_key
AND afd.prs_afdeling_key = ab.prs_afdeling_key AND p.prs_afdeling_key = afd.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = div.prs_afdeling_key AND ab.prs_afdeling_key1 = div.prs_afdeling_key
AND apl.prs_srtperslid_key = aspl.prs_srtperslid_key AND p.prs_perslid_key = hpwp.prs_perslid_key(+)
AND apl.prs_perslid_key = hpwp.prs_perslid_key(+)
AND hpwp.prs_werkplek_key = wpg.prs_werkplek_key(+) AND hpwp.prs_werkplek_key = wpg.prs_werkplek_key(+)
ORDER BY prs_perslid_ingids, prs_perslid_naam_full, prs_perslid_nr) pl AND p.prs_srtperslid_key = sp.prs_srtperslid_key) pl
--1040 = Type Medewerker (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr emptype
-- 301 = Type_medewerker (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr emptype
FROM fac_usrdata, prs_kenmerklink FROM fac_usrdata, prs_kenmerklink
WHERE fac_usrtab_key = 301 WHERE fac_usrtab_key = 301 -- 301 = Type_medewerker (fac_usrtab)
AND prs_kenmerk_key = 1040 AND prs_kenmerk_key = 1040 -- 1040 = Type Medewerker (R)
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) f1 AND prs_kenmerklink_verwijder IS NULL) f1
ON pl.prs_perslid_key = f1.prs_link_key ON pl.prs_perslid_key = f1.prs_link_key
--1193 = Regio (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr regio
-- 783 = RegioVinder (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr regio
FROM fac_usrdata, prs_kenmerklink FROM fac_usrdata, prs_kenmerklink
WHERE fac_usrtab_key = 783 WHERE fac_usrtab_key = 783 -- 783 = RegioVinder (fac_usrtab)
AND prs_kenmerk_key = 1193 AND prs_kenmerk_key = 1193 -- 1193 = Regio (R)
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) f2 AND prs_kenmerklink_verwijder IS NULL) f2
ON pl.prs_perslid_key = f2.prs_link_key ON pl.prs_perslid_key = f2.prs_link_key
--1173 = Alternatieve afdeling (S) LEFT JOIN (SELECT prs_link_key,
LEFT OUTER JOIN (SELECT prs_link_key,
afd.prs_afdeling_naam6 alt_afdeling, afd.prs_afdeling_naam6 alt_afdeling,
div.prs_afdeling_naam6 alt_divisie div.prs_afdeling_naam6 alt_divisie
FROM prs_kenmerklink, FROM prs_kenmerklink,
prs_v_aanwezigafdeling afd, prs_v_aanwezigafdeling afd,
prs_v_afdeling_boom ab, prs_v_afdeling_boom ab,
prs_v_aanwezigafdeling div prs_v_aanwezigafdeling div
WHERE prs_kenmerk_key = 1173 WHERE prs_kenmerk_key = 1173 -- 1173 = Alternatieve afdeling (S)
AND afd.prs_afdeling_key = fac.safe_to_number(prs_kenmerklink_waarde) AND afd.prs_afdeling_key =
fac.safe_to_number (prs_kenmerklink_waarde)
AND ab.prs_afdeling_key = afd.prs_afdeling_key AND ab.prs_afdeling_key = afd.prs_afdeling_key
AND div.prs_afdeling_key = ab.prs_afdeling_key1 AND div.prs_afdeling_key = ab.prs_afdeling_key1
AND prs_kenmerklink_verwijder IS NULL) f3 AND prs_kenmerklink_verwijder IS NULL) f3
ON pl.prs_perslid_key = f3.prs_link_key ON pl.prs_perslid_key = f3.prs_link_key
--1192 = Alternatieve functie (S) LEFT JOIN (SELECT prs_link_key,
LEFT OUTER JOIN (SELECT prs_link_key,
prs_srtperslid_omschrijving alt_functie prs_srtperslid_omschrijving alt_functie
FROM prs_kenmerklink, prs_v_aanwezigsrtperslid FROM prs_kenmerklink, prs_v_aanwezigsrtperslid
WHERE prs_kenmerk_key = 1192 WHERE prs_kenmerk_key = 1192 -- 1192 = Alternatieve functie (S)
AND prs_srtperslid_key = prs_kenmerklink_waarde AND prs_srtperslid_key = prs_kenmerklink_waarde
AND prs_kenmerklink_verwijder IS NULL) f4 AND prs_kenmerklink_verwijder IS NULL) f4
ON pl.prs_perslid_key = f4.prs_link_key ON pl.prs_perslid_key = f4.prs_link_key
-- 7 = Faxnr (C) LEFT JOIN (SELECT prs_link_key, prs_kenmerklink_waarde faxnr
LEFT OUTER JOIN (SELECT prs_link_key, prs_kenmerklink_waarde faxnr
FROM prs_kenmerklink FROM prs_kenmerklink
WHERE prs_kenmerk_key = 7 WHERE prs_kenmerk_key = 7 -- 7 = Faxnr (C)
AND prs_kenmerklink_verwijder IS NULL) f7 AND prs_kenmerklink_verwijder IS NULL) f7
ON pl.prs_perslid_key = f7.prs_link_key ON pl.prs_perslid_key = f7.prs_link_key
--1163 = Maandag (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr maandag
-- 761 = AanwezigOp (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr maandag
FROM fac_usrdata, prs_kenmerklink FROM fac_usrdata, prs_kenmerklink
WHERE fac_usrtab_key = 761 WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerk_key = 1163 AND prs_kenmerk_key = 1163 -- 1163 = Maandag (R)
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) f8 AND prs_kenmerklink_verwijder IS NULL) f8
ON pl.prs_perslid_key = f8.prs_link_key ON pl.prs_perslid_key = f8.prs_link_key
--1164 = Dinsdag (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr dinsdag
-- 761 = AanwezigOp (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr dinsdag
FROM fac_usrdata, prs_kenmerklink FROM fac_usrdata, prs_kenmerklink
WHERE fac_usrtab_key = 761 WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerk_key = 1164 AND prs_kenmerk_key = 1164 -- 1164 = Dinsdag (R)
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) f9 AND prs_kenmerklink_verwijder IS NULL) f9
ON pl.prs_perslid_key = f9.prs_link_key ON pl.prs_perslid_key = f9.prs_link_key
--1165 = Woensdag (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr woensdag
-- 761 = AanwezigOp (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr woensdag
FROM fac_usrdata, prs_kenmerklink FROM fac_usrdata, prs_kenmerklink
WHERE fac_usrtab_key = 761 WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerk_key = 1165 AND prs_kenmerk_key = 1165 -- 1165 = Woensdag (R)
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) f10
ON pl.prs_perslid_key = f10.prs_link_key ON pl.prs_perslid_key = f10.prs_link_key
--1166 = Donderdag (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr donderdag
-- 761 = AanwezigOp (fac_usrtab)
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 WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerk_key = 1166 AND prs_kenmerk_key = 1166 -- 1166 = Donderdag (R)
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) f11 AND prs_kenmerklink_verwijder IS NULL) f11
ON pl.prs_perslid_key = f11.prs_link_key ON pl.prs_perslid_key = f11.prs_link_key
--1167 = Vrijdag (R) LEFT JOIN (SELECT prs_link_key, fac_usrdata_omschr vrijdag
-- 761 = AanwezigOp (fac_usrtab)
LEFT OUTER JOIN (SELECT prs_link_key, fac_usrdata_omschr vrijdag
FROM fac_usrdata, prs_kenmerklink FROM fac_usrdata, prs_kenmerklink
WHERE fac_usrtab_key = 761 WHERE fac_usrtab_key = 761 -- 761 = AanwezigOp (fac_usrtab)
AND prs_kenmerk_key = 1167 AND prs_kenmerk_key = 1167 -- 1167 = Vrijdag (R)
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) f12 AND prs_kenmerklink_verwijder IS NULL) f12
ON pl.prs_perslid_key = f12.prs_link_key; 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
( (