Performance-Problem mit we:write type="object"

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
Creutzburg
Senior Member
Beiträge: 425
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Dresden
Kontaktdaten:

Performance-Problem mit we:write type="object"

Beitragvon Creutzburg » Do 5. Mär 2009, 14:33

Hallo,

bei einem unserer Kunden werden Objekte übers Frontend angelegt. Nun hat die Klasse mittlerweile ca. 14.000 Objekte, und das Anlegen eines neuen Objekts dauert mittlerweile gefühlte 30 Sekunden (Zeit zwischen Submit-Button und Bestätigungsseite). Der Kunde meint, das sei erst seit kurzem spürbar langsamer geworden.

Weiß einer von Euch, wo man da was drehen und beschleunigen kann? Was prüft denn das Tag we:write vor dem Speichern eines neuen Objekts alles? Es scheint ja so, als ob da erstmal ein Datenbank-Select stattfindet, um z.B. nach doppelten Namen, OF_IDs und was weiß ich zu suchen. Würde man die Felder kennen, könnte ja vielleicht ein Index auf diese Spalte helfen, oder?

Hat jemand eine Idee?

Danke für Tipps,
Alex
http://www.xport.de – Internet-Agentur für Hotels
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?

deemes

Beitragvon deemes » Do 5. Mär 2009, 15:07

Dauert denn das Anlegen über das Backend genau so lange?

Falls Du administrativen Zugriff auf dem Server hast, kannst Du ja auch mal den MySQL-Server im Log-Modus neu starten. Dann werden alle Queries gelogt. und Du siehst was genau da passiert. Im Idealfall machst Du das natürlich nachts um 4 Uhr damit nicht tausende Queries von den normalen Nutzerzugriffen gelogt werden.

Edit: Alternativ kann man sicher auch die DB-Klasse von WE kurrzeitig anpassen und alle Queries in ein Logilfe schreiben.

Creutzburg
Senior Member
Beiträge: 425
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Dresden
Kontaktdaten:

Beitragvon Creutzburg » Do 5. Mär 2009, 17:39

das Neuanlegen im Backend dauert gefühlt genauso lange, und zwar nicht der Moment des Speicherns/Veröffentlichens, sondern die Zeit von der Auswahl "Neues Objekt" aus dem Menü, bis das neue Objekt bearbeitet werden kann.

Übrigens geht das Speichern eines vorhandenen Objekts (egal ob Frontend oder Backend) ganz fix - es betrifft also nur das Neuanlegen eines Objekts. Ich vermute, WE schaut hier nach, ob der (automatisch vergebene) Name und/oder Pfad des Objekts schon vergeben ist.

Ich werde das mit den MySQL-Logs mal ausprobieren - gen späteren Abend.

Dank & Gruß,
Alex
http://www.xport.de – Internet-Agentur für Hotels
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?

deemes

Beitragvon deemes » Do 5. Mär 2009, 17:43

Seltsam. Da sollte ja eignetlich nur der Auto-Increment-Wert ermittelt werden. Vlt. ist die Tabelle defekt? Mal prüfen mit CHECK TABLE und ggf. mit REPAIR TABLE wieder richten.

helas
webEdition Partner
webEdition Partner
Beiträge: 79
Registriert: Do 4. Mär 2004, 13:00
Wohnort: Hannover
Kontaktdaten:

Re: Performance-Problem mit we:write type=

Beitragvon helas » Fr 20. Aug 2010, 18:19

Ich wollte mal fragen, ob es hier eine Lösung gab bzw. gibt. Scheinbar vererbt sich das Problem bis in die Version 6.1.

Aktuell versuche auch ich über das Frontend bzw. per PHP Objekte zu erstellen und auch bei mir dauerts mehr als 30 Sekunden. (Nachvollziehbar über das Attribut "Erstellt am").
Hinzu kommt, dass das Laden der Objekte innerhalb webEdition ebenfalls super lange dauert. Über phpMyAdmin habe ich bereits alle Tabellen checken und optimieren lassen. Die Tabelle tblTemporaryDoc hat allerdings auch 24.422 Einträge. Darf man diese eigentlich einfach leeren?

Hat jemand eine Idee? Lars würde sich freuen.
<we:can>yes</we:can>

helas
webEdition Partner
webEdition Partner
Beiträge: 79
Registriert: Do 4. Mär 2004, 13:00
Wohnort: Hannover
Kontaktdaten:

Re: Performance-Problem mit we:write type=

Beitragvon helas » Fr 20. Aug 2010, 19:31

...dann gebe ich mir mal an dieser Stelle selbst die Antwort:
Ich habe in der Tabelle tblTemporaryDoc einfach alle
sinnlosen
Objekte gelöscht:

Code: Alles auswählen

DELETE FROM tblTemporaryDoc WHERE DocTable LIKE 'tblObjectFiles' AND Active=0
Ein kleiner Wink in Richtung der we-Entwickler: bitte mal schauen was tatsächlich in der Tabelle tblTemporaryDoc stehen muss. Scheinbar sammeln sich hier Datenleichen die sich sehr negativ auf die Performance auswirken. (Wenigstens beim Objekt-Handling).

Es grüßt aus dem sonnigen Hannover, helas
<we:can>yes</we:can>


Zurück zu „DB-/Objektmodul“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste