Hallo Liebes Forum,
ich habe seit kurzem Probleme mit einem Report und finde einfach den Grund nicht. Und zwar bricht der Aufruf des Reports nach ca. 2 Minuten aufgrund des Session-Timeouts des Browsers ab. Es handelt sich bei den Report um eine monatliche Anwesenheitsliste.
Hier mal das Script zum einfügen des Personals in den Bericht:
Und hier das Script zum einfügen des Anwesenheitskategorie pro Tag und Mitarbeiter:
Das zweite Script wird pro Anwesenheitsliste 30 bzw. 31 mal abgerufen, sprich für jeden Tag wird die entsprechende Kategorie dem Tag und dem Mitarbeiter zugeordnet.
Jetzt zu meiner Frage:
Sieht jemand evtl. Optimierungsmöglichkeiten zur Verbesserung der Performance beim Aufruf des Scriptes?
Bin für jeden Tipp dankbar!!!
MFG
T-Arendt
ich habe seit kurzem Probleme mit einem Report und finde einfach den Grund nicht. Und zwar bricht der Aufruf des Reports nach ca. 2 Minuten aufgrund des Session-Timeouts des Browsers ab. Es handelt sich bei den Report um eine monatliche Anwesenheitsliste.
Hier mal das Script zum einfügen des Personals in den Bericht:
Code:
select distinct
e.str_name_einrichtung Einrichtung,
m.str_mitarbeiter Mitarbeiter,
m.str_personalnummer Personal_Nr,
(select distinct case when ma.str_bemerkung_ma is null then '' else ma.str_bemerkung_ma||', ' end from t_alp_ma ma left outer join t_alp aa on aa.lid = ma.fklid
where ma.str_personalnummer = m.str_personalnummer
and aa.REF_EINRICHTUNG = a.REF_EINRICHTUNG
and aa.str_datum_mo_jahr in ('01.'||$P{Monat}||'.'||$P{Jahr},'02.'||$P{Monat}||'.'||$P{Jahr},'03.'||$P{Monat}||'.'||$P{Jahr},'04.'||$P{Monat}||'.'||$P{Jahr},'05.'||$P{Monat}||'.'||$P{Jahr},'06.'||$P{Monat}||'.'||$P{Jahr},'07.'||$P{Monat}||'.'||$P{Jahr}))||
(select distinct case when ma.str_bemerkung_ma is null then '' else ma.str_bemerkung_ma||', ' end from t_alp_ma ma left outer join t_alp aa on aa.lid = ma.fklid
where ma.str_personalnummer = m.str_personalnummer
and aa.REF_EINRICHTUNG = a.REF_EINRICHTUNG
and aa.str_datum_mo_jahr in ('08.'||$P{Monat}||'.'||$P{Jahr},'09.'||$P{Monat}||'.'||$P{Jahr},'10.'||$P{Monat}||'.'||$P{Jahr},'11.'||$P{Monat}||'.'||$P{Jahr},'12.'||$P{Monat}||'.'||$P{Jahr},'13.'||$P{Monat}||'.'||$P{Jahr},'14.'||$P{Monat}||'.'||$P{Jahr}))||
(select distinct case when ma.str_bemerkung_ma is null then '' else ma.str_bemerkung_ma||', ' end from t_alp_ma ma left outer join t_alp aa on aa.lid = ma.fklid
where ma.str_personalnummer = m.str_personalnummer
and aa.REF_EINRICHTUNG = a.REF_EINRICHTUNG
and aa.str_datum_mo_jahr in ('15.'||$P{Monat}||'.'||$P{Jahr},'16.'||$P{Monat}||'.'||$P{Jahr},'17.'||$P{Monat}||'.'||$P{Jahr},'18.'||$P{Monat}||'.'||$P{Jahr},'19.'||$P{Monat}||'.'||$P{Jahr},'20.'||$P{Monat}||'.'||$P{Jahr},'21.'||$P{Monat}||'.'||$P{Jahr}))||
(select distinct case when ma.str_bemerkung_ma is null then '' else ma.str_bemerkung_ma||', ' end from t_alp_ma ma left outer join t_alp aa on aa.lid = ma.fklid
where ma.str_personalnummer = m.str_personalnummer
and aa.REF_EINRICHTUNG = a.REF_EINRICHTUNG
and aa.str_datum_mo_jahr in ('22.'||$P{Monat}||'.'||$P{Jahr},'23.'||$P{Monat}||'.'||$P{Jahr},'24.'||$P{Monat}||'.'||$P{Jahr},'25.'||$P{Monat}||'.'||$P{Jahr},'26.'||$P{Monat}||'.'||$P{Jahr},'27.'||$P{Monat}||'.'||$P{Jahr},'28.'||$P{Monat}||'.'||$P{Jahr}))||
(select distinct case when ma.str_bemerkung_ma is null then '' else ma.str_bemerkung_ma||', ' end from t_alp_ma ma left outer join t_alp aa on aa.lid = ma.fklid
where ma.str_personalnummer = m.str_personalnummer
and aa.REF_EINRICHTUNG = a.REF_EINRICHTUNG
and aa.str_datum_mo_jahr in ('29.'||$P{Monat}||'.'||$P{Jahr},'30.'||$P{Monat}||'.'||$P{Jahr},'31.'||$P{Monat}||'.'||$P{Jahr})) Bemerkung
from
t_alp_ma m
left outer join t_alp a on m.fklid = a.lid
left outer join t_einrichtungen e on e.lid = a.REF_EINRICHTUNG
where
((substr(str_datum_di_jahr,4,2) = $P{Monat} and substr(str_datum_di_jahr,7,4) = $P{Jahr}) or
(substr(str_datum_mi_jahr,4,2) = $P{Monat} and substr(str_datum_mi_jahr,7,4) = $P{Jahr}) or
(substr(str_datum_do_jahr,4,2) = $P{Monat} and substr(str_datum_do_jahr,7,4) = $P{Jahr}) or
(substr(str_datum_fr_jahr,4,2) = $P{Monat} and substr(str_datum_fr_jahr,7,4) = $P{Jahr}) or
(substr(str_datum_sa_jahr,4,2) = $P{Monat} and substr(str_datum_sa_jahr,7,4) = $P{Jahr}) or
(substr(str_datum_mo_jahr,4,2) = $P{Monat} and substr(str_datum_mo_jahr,7,4) = $P{Jahr})) and
case when exists (select ein.lid from t_einrichtungen ein where a.REF_EINRICHTUNG = ein.lid) then e.str_user end like $P{Einrichtung}
order by
Einrichtung, Mitarbeiter
Und hier das Script zum einfügen des Anwesenheitskategorie pro Tag und Mitarbeiter:
Code:
select
ak.str_kurzbezeichnung Anwesenheitskategorie
from
t_alp_ma m
left outer join t_alp a on a.lid = m.fklid
left outer join t_einrichtungen e on e.lid = a.REF_EINRICHTUNG
left outer join KAT_anwesenheitskategorie ak on
(case when a.str_datum_di_jahr = $P{Datum} then m.REF_DI
when a.str_datum_mi_jahr = $P{Datum} then m.REF_MI
when a.str_datum_do_jahr = $P{Datum} then m.REF_DO
when a.str_datum_fr_jahr = $P{Datum} then m.REF_FR
when a.str_datum_sa_jahr = $P{Datum} then m.REF_SA
when a.str_datum_mo_jahr = $P{Datum} then m.REF_MO else null
end = ak.lid)
where
((str_datum_di_jahr = $P{Datum}) or
(str_datum_mi_jahr = $P{Datum}) or
(str_datum_do_jahr = $P{Datum}) or
(str_datum_fr_jahr = $P{Datum}) or
(str_datum_sa_jahr = $P{Datum}) or
(str_datum_mo_jahr = $P{Datum})) and
case when exists (select ein.lid from t_einrichtungen ein where ein.lid = a.REF_EINRICHTUNG) then e.str_user end like $P{Kita} and
str_personalnummer = $P{Personalnummer}
Das zweite Script wird pro Anwesenheitsliste 30 bzw. 31 mal abgerufen, sprich für jeden Tag wird die entsprechende Kategorie dem Tag und dem Mitarbeiter zugeordnet.
Jetzt zu meiner Frage:
Sieht jemand evtl. Optimierungsmöglichkeiten zur Verbesserung der Performance beim Aufruf des Scriptes?
Bin für jeden Tipp dankbar!!!
MFG
T-Arendt