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