[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}
ACSD-67166:在店面載入報價時重複執行cataloginventory_stock_status查詢
ACSD-67166修補程式修正了在店面載入報價時cataloginventory_stock_status查詢重複執行的問題,這會導致重複的DB呼叫。 安裝Quality Patches Tool (QPT) 1.1.70時,即可使用此修補程式。 修補程式ID為ACSD-67166。 請注意,此問題已排程在Adobe Commerce 2.4.9中修正。
受影響的產品和版本
已為Adobe Commerce版本建立修補程式:
- Adobe Commerce (所有部署方法) 2.4.5-p13
與Adobe Commerce版本相容:
- Adobe Commerce (所有部署方法) 2.4.4 - 2.4.8-p2
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將
magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。問題
在店面載入報價時,發生cataloginventory_stock_status查詢的重複執行,造成重複的DB呼叫。
要再現的步驟:
-
安裝乾淨的執行個體。
-
建立 Category 和 Simple Product。
-
前往類別並將產品新增至購物車。
-
前往購物車頁面:
/checkout/cart/ -
在xDebug中設定中斷點:
app/code/Magento/CatalogInventory/Model/StockRegistryPreloader.php:115app/code/Magento/InventoryCatalog/Model/LegacyStockStatusCache.php:73lib/internal/Magento/Framework/Data/AbstractSearchResult.php:233- 中斷點條件:
strpos($this->query->getSelectSql(true), 'stock_status') !==false
將$_SERVER['REQUEST_URI']新增至 中的 監視PHPStorm,以驗證在同一要求中呼叫了兩次查詢。
預期結果:
每個請求執行一次查詢。
實際結果:
相同的查詢會執行兩次:
SELECT `main_table`.*, `cp_table`.`sku`, `cp_table`.`type_id` FROM `cataloginventory_stock_status` AS `main_table`
INNER JOIN `catalog_product_entity` AS `cp_table` ON main_table.product_id = cp_table.entity_id AND (cp_table.created_in <= 1 AND cp_table.updated_in > 1) WHERE (`main_table`.`product_id` IN(2)) AND (`main_table`.`website_id` = '0')
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool 指南中的>使用狀況Quality Patches Tool
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱:
recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3