ACSD-50858: Förbättrade prestanda för inläsning av banners-innehåll
ACSD-50858-korrigeringen åtgärdar ett bannerprestandaproblem på kundvagn-/utcheckningssidan: överflödiga databasfrågor och ökad sidinläsningstid. Den här korrigeringen är tillgänglig när Quality Patches Tool (QPT) 1.1.31 har installerats. Korrigerings-ID är ACSD-50858. Observera att problemet är planerat att åtgärdas i Adobe Commerce 2.4.7.
Berörda produkter och versioner
Korrigeringen har skapats för Adobe Commerce-version:
- Adobe Commerce (alla distributionsmetoder) 2.4.5-p1
Kompatibel med Adobe Commerce-versioner:
- Adobe Commerce (alla distributionsmetoder) 2.4.4 - 2.4.6
magento/quality-patches
-paketet till den senaste versionen och kontrollerar kompatibiliteten på Quality Patches Tool: Sök efter korrigeringsfiler. Använd patch-ID:t som söknyckelord för att hitta patchen.Problem
Banderollens prestanda påverkas på korgs-/utcheckningssidan på grund av för stora databasfrågor och ökad sidinläsningstid.
Detta korrigerades genom omfaktorisering av hur banners innehåll läses in, vilket minskade antalet DB-frågor med 99,99 % och sidinläsningstiden med cirka 99 %.
Steg som ska återskapas:
-
Logga in på Admin och skapa en enkel produkt.
-
Skapa en kund, antingen från Admin eller från frontend, och lägg till en leveransadress för den.
-
Flytta banners.php till mappen
magento_root/pub/
. -
Generera banners med kommandot
php pub/banners.php
. Det kommer att generera 10 000 enkla banners och 1 000 banners med försäljningsregler. -
Logga in på kunden som skapats tidigare i klientorganisationen.
-
Lägg den produkt som skapats tidigare i kundvagnen.
-
Gå till kassan (kassan/kundvagnen).
-
Övervaka inläsningstiden för
banner/ajax/load
-begäran:-
Utan
bin/magento dev:query-log:enable
-
Med
bin/magento dev:query-log:enable
code language-none grep 'magento_banner_content' var/debug/db.log | wc -l
-
Förväntade resultat:
Minska antalet databasfrågor för magento_banner_content
och tiden för inläsning av korgs-/utcheckningssida.
Faktiska resultat:
Öka antalet databasfrågor för magento_banner_content
och tiden för inläsning av korgs-/utcheckningssida.
Tillämpa korrigeringen
Använd följande länkar beroende på distributionsmetod för att tillämpa enskilda korrigeringsfiler:
- Lokal användning för Adobe Commerce eller Magento Open Source: Quality Patches Tool > Användningi guiden Quality Patches Tool.
- Adobe Commerce om molninfrastruktur: Uppgraderingar och korrigeringar > Tillämpa korrigeringar i Commerce om molninfrastruktur.
Ytterligare information
banners.php content:
\Banner::class);
$banner->setIsEnabled(
\Magento\Banner\Model\Banner::STATUS_ENABLED
)->setName(
'Test Dynamic Block '.$i
)->setTypes(
''
)->setStoreContents(
[0 => 'Dynamic Block Content '.$i]
)->save();
}
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
/** @var \Magento\SalesRule\Model\Rule $salesRule */
$salesRule = $objectManager->create(\Magento\SalesRule\Model\Rule::class);
$salesRule->setData(
[
'name' => '50% Off ',
'is_active' => 1,
'customer_group_ids' => [\Magento\Customer\Model\GroupManagement::NOT_LOGGED_IN_ID],
'coupon_type' => \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON,
'conditions' => [
[
'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class,
'attribute' => 'base_subtotal',
'operator' => '>',
'value' => 0
]
],
'simple_action' => 'by_percent',
'discount_amount' => 50,
'discount_step' => 0,
'stop_rules_processing' => 1,
'website_ids' => [
1
]
]
);
$salesRule->save();
for ($i = 0; $i < 1000; $i++) {
$banner = $objectManager->create(\Magento\Banner\Model\Banner::class);
$banner->setData(
[
'name' => 'Get 50% Off ',
'is_enabled' => \Magento\Banner\Model\Banner::STATUS_ENABLED,
'types' => [], /*Any Banner Type*/
'store_contents' => ['<img src="http://example.com/banner_40_percent_off.png" />'],
'banner_sales_rules' => [$salesRule->getId()],
]
);
$banner->save();
}
Relaterad läsning
Mer information om Quality Patches Tool finns i:
- Quality Patches Tool släppt: ett nytt verktyg för självbetjäning av kvalitetspatchar i kunskapsbasen för support.
- Kontrollera om det finns en korrigeringsfil för ditt Adobe Commerce-problem med Quality Patches Tool i guiden Quality Patches Tool.
Mer information om andra tillgängliga korrigeringsfiler i QPT finns i Quality Patches Tool: Söka efter korrigeringsfileri Quality Patches Tool-handboken.