Done
Details
Assignee
Serhii_NoskoSerhii_NoskoReporter
Roman_FedynyshynRoman_FedynyshynTester Assignee
Mykhailo PetryshynMykhailo PetryshynLabels
Priority
P1Story Points
3Sprint
NoneDevelopment Team
ThunderjetRelease
Quesnelia (R1 2024) Service Patch #1CSP Approved
YesTestRail: Cases
Open TestRail: CasesTestRail: Runs
Open TestRail: Runs
Details
Details
Assignee
Serhii_Nosko
Serhii_NoskoReporter
Roman_Fedynyshyn
Roman_FedynyshynTester Assignee
Mykhailo Petryshyn
Mykhailo PetryshynLabels
Priority
Story Points
3
Sprint
None
Development Team
Thunderjet
Release
Quesnelia (R1 2024) Service Patch #1
CSP Approved
Yes
TestRail: Cases
Open TestRail: Cases
TestRail: Runs
Open TestRail: Runs
Created June 7, 2024 at 9:47 AM
Updated December 13, 2024 at 1:45 PM
Resolved June 21, 2024 at 8:00 AM
We have generated 1.6 M PoLine records in DB for ±300K Orders.
when opening tab “Order Lines“ nothing is showing up even after long time.
In dev tool we can see that call to retrieve order lines failed after 30s of waiting
After some time inside the logs of mod-orders-storage we can see “Getaway-Timeout“ error as well.
after investigating, we defined query going to the database that is taking almost 10 minutes:
SET search_path TO cs00000int_mod_orders_storage,public; SELECT jsonb,id FROM cs00000int_mod_orders_storage.po_line WHERE ((po_line.purchaseOrderId IN ( SELECT id FROM purchase_order WHERE get_tsvector(f_unaccent(purchase_order.jsonb->>'acqUnitIds')) @@ tsquery_phrase(f_unaccent('0ebb1f7d-983f-3026-8a4c-5318e0ebc041')))) OR ((true) AND ( (po_line.purchaseOrderId IN ( SELECT id FROM purchase_order WHERE CASE WHEN length(lower(f_unaccent('[]'))) <= 600 THEN left(lower(f_unaccent(purchase_order.jsonb->>'acqUnitIds')),600) NOT LIKE lower(f_unaccent('[]')) ELSE left(lower(f_unaccent(purchase_order.jsonb->>'acqUnitIds')),600) NOT LIKE left(lower(f_unaccent('[]')),600) OR lower(f_unaccent(purchase_order.jsonb->>'acqUnitIds')) NOT LIKE lower(f_unaccent('[]')) END)) IS NOT TRUE))) AND ((CASE WHEN length(lower(f_unaccent('Ongoing'))) <= 600 THEN left(lower(f_unaccent(po_line.jsonb->>'receiptStatus')),600) LIKE lower(f_unaccent('Ongoing')) ELSE left(lower(f_unaccent(po_line.jsonb->>'receiptStatus')),600) LIKE left(lower(f_unaccent('Ongoing')),600) AND lower(f_unaccent(po_line.jsonb->>'receiptStatus')) LIKE lower(f_unaccent('Ongoing')) END) OR (CASE WHEN length(lower(f_unaccent('Pending'))) <= 600 THEN left(lower(f_unaccent(po_line.jsonb->>'receiptStatus')),600) LIKE lower(f_unaccent('Pending')) ELSE left(lower(f_unaccent(po_line.jsonb->>'receiptStatus')),600) LIKE left(lower(f_unaccent('Pending')),600) AND lower(f_unaccent(po_line.jsonb->>'receiptStatus')) LIKE lower(f_unaccent('Pending')) END)) ORDER BY left(lower(f_unaccent(po_line.jsonb->'metadata'->>'updatedDate')),600) DESC, lower(f_unaccent(po_line.jsonb->'metadata'->>'updatedDate')) DESC LIMIT 50 OFFSET 0
this query needs to be optimized.