Hallo,
nachdem wir eGroupware (comunity edition) auf 16.1 upgedatet haben und mittleirweile 17.1 in letzter Version einsetzen, daurt der Start bei der Anmeldung sehr lange (je nach User 20 Sekungen bis 10 Minuten). Die Zeit verbringt die Anwendung Kalender in folgende SQL Queries in der Datenbank:
Blockquote
| 10331387 | egroupware16 | 172.19.0.182:46785 | egroupware16 | Query | 53 | Sending data | (SELECT egw_cal_repeats.recur_type,range_end AS recur_enddate,egw_cal_repeats.recur_interval,egw_cal_repeats.recur_data,egw_cal.cal_id,cal_start,cal_end,egw_cal_user.cal_recur_date FROM (SELECT * FROM egw_cal WHERE cal_deleted IS NULL AND (range_end IS NULL OR range_end>1516834800)) egw_cal JOIN egw_cal_dates ON egw_cal.cal_id=egw_cal_dates.cal_id JOIN egw_cal_user ON egw_cal.cal_id=egw_cal_user.cal_id LEFT JOIN egw_cal_repeats ON egw_cal.cal_id=egw_cal_repeats.cal_id LEFT JOIN egw_cal_user rejected_by_user ON egw_cal.cal_id=rejected_by_user.cal_id AND rejected_by_user.cal_user_type=‘u’ AND rejected_by_user.cal_user_id=‘8’ AND (recur_type IS NULL AND rejected_by_user.cal_recur_date=0 OR cal_start=rejected_by_user.cal_recur_date) WHERE cal_deleted IS NULL AND egw_cal_user.cal_status NOT IN (‘R’,‘X’,‘E’) AND 1516834800 < cal_end AND (rejected_by_user.cal_status IS NULL OR rejected_by_user.cal_status NOT IN (‘R’,‘X’)) AND egw_cal_user.cal_user_type=‘u’ AND egw_cal_user.cal_user_id IN (‘8’,’-1’,’-4’,’-1021’,’-1013’,’-11’,’-1001’,’-1040’) AND recur_type IS NULL AND egw_cal_user.cal_recur_date=0)
UNION
(SELECT egw_cal_repeats.recur_type,range_end AS recur_enddate,egw_cal_repeats.recur_interval,egw_cal_repeats.recur_data,egw_cal.cal_id,cal_start,cal_end,egw_cal_user.cal_recur_date FROM (SELECT * FROM egw_cal WHERE cal_deleted IS NULL AND (range_end IS NULL OR range_end>1516834800)) egw_cal JOIN egw_cal_dates ON egw_cal.cal_id=egw_cal_dates.cal_id JOIN egw_cal_user ON egw_cal.cal_id=egw_cal_user.cal_id LEFT JOIN egw_cal_repeats ON egw_cal.cal_id=egw_cal_repeats.cal_id LEFT JOIN egw_cal_user rejected_by_user ON egw_cal.cal_id=rejected_by_user.cal_id AND rejected_by_user.cal_user_type=‘u’ AND rejected_by_user.cal_user_id=‘8’ AND (recur_type IS NULL AND rejected_by_user.cal_recur_date=0 OR cal_start=rejected_by_user.cal_recur_date) WHERE cal_deleted IS NULL AND egw_cal_user.cal_status NOT IN (‘R’,‘X’,‘E’) AND 1516834800 < cal_end AND (rejected_by_user.cal_status IS NULL OR rejected_by_user.cal_status NOT IN (‘R’,‘X’)) AND egw_cal_user.cal_user_type=‘u’ AND egw_cal_user.cal_user_id IN (‘8’,’-1’,’-4’,’-1021’,’-1013’,’-11’,’-1001’,’-1040’) AND egw_cal_user.cal_recur_date=cal_start) | 0.000 |
Blockquote
Eckdaten:
eGroupware: 17.1.20180118 installiert als Debian Paket
user gesamt: 25
OS: Debian Jessie
PHP7
DB: MariaDB 10.1 auf separatem Host
Haben Sie ein Tipp wie man das beheben könnte? Mit ‘EXPLAIN’ haben wir versucht rauszufinden ob es in der MySQL sinvoll mit index gelöst werden könnte, aber nichts gefunden.
Viele Grüße,
Dimitrij