MNNL#41309 Meldingen op meerdere disciplines: performance

svn path=/Website/trunk/; revision=36706
This commit is contained in:
Jos Groot Lipman
2018-01-24 12:26:17 +00:00
parent aa2170f200
commit fc2d0a1be1

View File

@@ -76,7 +76,7 @@ function get_obj_niveau_sql(p_org_obj_niveau, p_prs_key, p_dept_key)
+ " (SELECT aa.prs_afdeling_elder_key" + " (SELECT aa.prs_afdeling_elder_key"
+ " FROM prs_v_afdeling_familie aa" + " FROM prs_v_afdeling_familie aa"
+ " WHERE aa.prs_afdeling_key = " + user.prs_afdeling_key() + " WHERE aa.prs_afdeling_key = " + user.prs_afdeling_key()
+ " AND aa.niveau = (" + autlevel + "))" + " AND aa.niveau = " + autlevel + ")"
+ " AND a.prs_afdeling_key = d.ins_alg_ruimte_key"; + " AND a.prs_afdeling_key = d.ins_alg_ruimte_key";
else else
var departmentsql = "d.ins_alg_ruimte_key"; var departmentsql = "d.ins_alg_ruimte_key";
@@ -157,7 +157,9 @@ function get_stdmelding_sql(p_alg_niveau_sql, p_obj_niveau_sql, p_gebouw_persoon
+ " ELSE ''" + " ELSE ''"
+ " END" + " END"
: "''"); : "''");
plaatsaanduiding = ", d.ins_deel_omschrijving || " + plaatsaanduiding // JGL: bovenstaande even uitgeschakeld en ins_v_alg_overzicht niet meer joinen
// !!! Dat joinen nekte de performance namelijk. Bovendien toch overkill voor uitsluitend een prs_werkplek_omschrijving
plaatsaanduiding = ", d.ins_deel_omschrijving || " /* weggehaald + plaatsaanduiding */
+ " || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key") + " || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key")
+ " || ') ' || d.ins_deel_opmerking deel"; + " || ') ' || d.ins_deel_opmerking deel";
@@ -175,7 +177,6 @@ function get_stdmelding_sql(p_alg_niveau_sql, p_obj_niveau_sql, p_gebouw_persoon
+ " , alg_v_aanwezigruimte a" + " , alg_v_aanwezigruimte a"
+ " , ins_srtdeel s" + " , ins_srtdeel s"
+ " , ins_srtgroep g" + " , ins_srtgroep g"
+ " , ins_v_alg_overzicht o"
+ " WHERE (" // let op het haakje hier + " WHERE (" // let op het haakje hier
+ p_alg_niveau_sql + p_alg_niveau_sql
+ p_gebouw_persoon_sql + p_gebouw_persoon_sql
@@ -201,7 +202,6 @@ function get_stdmelding_sql(p_alg_niveau_sql, p_obj_niveau_sql, p_gebouw_persoon
+ " FROM ins_v_aanwezigdeel d" + " FROM ins_v_aanwezigdeel d"
+ " , ins_srtdeel s" + " , ins_srtdeel s"
+ " , ins_srtgroep g" + " , ins_srtgroep g"
+ " , ins_v_alg_overzicht o"
+ " WHERE (" // let op het haakje hier + " WHERE (" // let op het haakje hier
+ p_obj_niveau_sql + p_obj_niveau_sql
+ p_afdeling_persoon_sql + p_afdeling_persoon_sql
@@ -217,9 +217,6 @@ function get_stdmelding_where(p_inst_type, p_inst_key)
var v_common_where = " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))" var v_common_where = " AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE))"
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key" + " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key" + " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys(+)"
+ " AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type(+)"
+ " AND d.ins_alg_locatie_key = o.alg_locatie_key(+)"
+ (p_inst_type == "D" ? " AND g.ins_discipline_key = " + p_inst_key : "") + (p_inst_type == "D" ? " AND g.ins_discipline_key = " + p_inst_key : "")
+ (p_inst_type == "G" ? " AND s.ins_srtgroep_key = " + p_inst_key : "") + (p_inst_type == "G" ? " AND s.ins_srtgroep_key = " + p_inst_key : "")
+ (p_inst_type == "S" ? " AND d.ins_srtdeel_key = " + p_inst_key : ""); + (p_inst_type == "S" ? " AND d.ins_srtdeel_key = " + p_inst_key : "");