ACSD-47027:緩慢查詢B2B CompanyRole GraphQL更新
ACSD-47027修補程式解決緩慢查詢B2B CompanyRole GraphQL更新無法如預期運作的問題。 安裝Quality Patches Tool (QPT) 1.1.23時,即可使用此修補程式。 修補程式ID為ACSD-47027。 請注意,此問題已排程在Adobe Commerce 2.4.6中修正。
受影響的產品和版本
已為Adobe Commerce版本建立修補程式:
- Adobe Commerce (所有部署方法) 2.4.2-p1
與Adobe Commerce版本相容:
- Adobe Commerce (所有部署方法) 2.4.2 - 2.4.5-p1
magento/quality-patches
套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。問題
慢速查詢B2B CompanyRole GraphQL更新未如預期運作。
必要條件:
安裝B2B模組。
要再現的步驟:
-
在Adobe Commerce Admin中,移至 Stores > Settings > Configurations > B2B Features 並將 Enable Company 設為 是。
-
前往前端並建立公司。
-
以公司使用者身分登入後,請前往 My Account > Roles and Permissions 並新增角色。
-
使用
bin/magento dev:que:enab
啟用dev查詢記錄。 -
現在傳送以下GraphQL個請求(ID為base64編碼角色ID):
code language-none mutation { updateCompanyRole( input: { id: "Mg==" permissions: [ "Magento_Company::view" "Magento_Company::view_account" "Magento_Company::user_management" "Magento_Company::roles_view" ] } ) { role { id name permissions { id text children { id text children { id text } } } }
-
檢查查詢記錄。
-
您可以看到上述查詢已執行。 此查詢會在
app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources
中執行。
預期結果:
app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources
需要最佳化,以避免載入 company_permissions DB資料表中所有可用的資料。
實際結果:
Adobe Commerce會執行查詢,而不使用任何篩選器。 當有大量記錄時,Adobe Commerce會花很長時間準備資料收集。
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Quality Patches Tool指南中的Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool >使用狀況。
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式。
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱:
- Quality Patches Tool 已發行:支援知識庫中的自助式品質修補程式的新工具。
- 使用Quality Patches Tool指南中的 Quality Patches Tool,檢查您的Adobe Commerce問題是否有修補程式可用。
如需QPT中其他修補程式的詳細資訊,請參閱Quality Patches Tool指南中的Quality Patches Tool:搜尋修補程式。