Moin!
20 Sekunden ist schon extrem viel. Was machst du da? Die Datenbank komplett exportieren und neu einlesen?
723 Sekunden ist inakzeptabel.
Es ist ein Buchungslauf für ein Forum. Die Testdaten stammen vom letzten Forum 2005. Dieses Jahr werden es wohl 20% mehr Daten sein.
Für 55 Aussteller mit ca. 150 Mitarbeitern und 480 Besucher (teilweise in Gruppen) liegen 6.700 Kontaktwünsche vor.
Es stehen 30 Slots (Zeitabschnitte) für Kontakte zur Verfügung. Für jeden Besucher und für jeden Aussteller ist ein "Stundenplan" zu erstellen, per PDF zu mailen und auszudrucken.
Diverse Randbedingungen:
Für alle 30 Slots soll zunächst mit Aussteller-Kollege 1 ein Termin gemacht werden. Dann wieder von vorn für Kollege 2. Ebenso für 3 und 4. Oder per Radiobutton nur für 1, nur für 2 ...
Die Selektion der Besucher- Arten (nur am 1., nur am 2. Tag anwesend) habe ich noch gar nicht realisiert, ebenso die Bevorzung von schwachen (wenig gefragten) Ausstellern.
Ich denke schon, dass mein SQL nicht optimal ist, da die DB-Version 3.23.58 etwa keine Sub-Selects zulässt.
Mehrere Schleifen sind ineinander geschachtelt und in der innersten Schleife wird bei jedem Durchgang ein (genau EIN) Gesprächspartner gesucht.
Soweit meine Antwort auf deine Frage.
Meine Frage nach Sperrung der Datenbank ist immer noch offen.
Kalle