View Issue Details

IDProjectCategoryView StatusLast Update
0007364OXID eShop (all versions)1. ----- eShop frontend -----public2022-10-13 12:36
Reporterh.p. Assigned To 
PriorityhighSeveritytweakReproducibilityalways
Status closedResolutionfixed 
Product Version6.1.4 
Fixed in Version6.2.4 
Summary0007364: Unnötige Performanceverschwendung im EE Package
DescriptionOxidEsales\EshopEnterprise\Core\Base

In Zeile 42 wird die SQL Anweisung "select 1 from oxobjectrights" gefeuert.
Es wird ein Ergebnis erwartet da getOne verwendet wird.
Bei größeren Portfolios befinden sich in der Tabelle mehrere hunderttausend Datensätze die entsprechende Zeit bzgl. Übertragung seitens der Datenbank benötigen. Da aber lediglich ein Ergebnis erwartet wird ist dies komplett unsinnig und sehr performancefressend.
Bei einer MySQL auf einem externen Host haben wir zwischen 50 und 100ms Verlust bei jedem Seitenaufruf!

Vorschlag :

"select 1 from oxobjectrights limit 0,1" löst das Problem und erfüllt denselben Zweck.
Die Performance steigt und auch Oxid wird dadurch etwas besser was beispielsweise pagespeed anbelangt.
Steps To ReproduceFüllt ein paar hunderttausend Datensätze in die Tabelle und profiled die Anwendung.
Die Aussage ist eindeutig. Das hier ist schlicht suboptimal programmiert.
TagsBackend, EE, Perfomance, SQL
ThemeAll
BrowserAll
PHP VersionAll
Database VersionAll

Activities

QA

2022-10-13 12:36

administrator   ~0014509

Hi h.p.,

Thank you for your report!

This query was already changed with the version 6.2.4 (package version 6.7.0) in the Enterprise package; similar to your suggestion. Therefore I will close this entry accordingly.
Furthermore I'd like to ask you to post bug reports in English only, as the language of our Development Team is mainly English.

Kind regards,
Michael