Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now

Reply
hihi
Frequent Visitor

Power BI Performance when using numeric parameters.

Hello, community,

 

I encountered a problem with PBI as follows:

I create a parameter like the price of a product that the user can change by dragging the slicer. That way I have to calculate for 12 months of the year and the calculated data from the previous month will be used to calculate for the next month.

More details are as follows:
Step 1: First I calculate the cost of raw materials (here I also need to get the previous month's data to calculate the next month).
Step 2: From the unit price of raw materials calculated in St1, I calculate the cost of the product (similar to above, next month's data is calculated based on the previous month). To avoid confusion, I call this P1.
Step 3: Then I calculate the product's cost price (P2) based on the cost price in St2 (also based on the previous month's data).

Therefore, the computational performance of PBI becomes very slow and causes RAM overflow.

 

Is there any solution that can save data at each step? Or can anyone give me a solution to optimize the problem?

 

Thanks and Best Regards.

5 REPLIES 5
lbendlin
Super User
Super User

Power BI has no memory, you cannot "save data at each step" except inside measures.

 

You will have to find ways to compute the measures more efficiently. Use DAX Studio to evaluate the query plans.

 

If you can post a sample PBIX that illustrates the issue we can help better.

hihi
Frequent Visitor

Hi @lbendlin,

Thanks for your reply. I share my pbix file for our community and hope to get nice ideas.
https://www.dropbox.com/scl/fi/n6s8ou5v64k3pxnod7r1u/Cost_price.pbix?rlkey=x0ta57lr07xo222pz8pdl7v03...  

Thanks,

Your measure [_GV AHTK]  references a staggering 205 other measures.  That is truly astounding.

 

Measures should ideally reference ZERO other measures.  Up to three are ok, beyond that it becomes unmanageable.  I would recommend you refactor your report, cutting it into smaller pieces, and drastically reducing the number of measures.

 

 


EVALUATE
    SUMMARIZECOLUMNS(
        "_SL nhập", 'Hệ số giá thành'[_SL nhập],
        "BTP_6211_NK_1", 'Hệ số giá thành'[BTP_6211_NK_1],
        "_Giá dầu xuất tt", 'Chi phí dầu thô'[_Giá dầu xuất tt],
        "_Tháng đóng kì", 'Chi phí dầu thô'[_Tháng đóng kì],
        "Tháng Value", 'Tháng'[Tháng Value],
        "_Giá Platts", 'Dầu thô'[_Giá Platts],
        "_Giá dầu 1", 'Giá dầu'[_Giá dầu 1],
        "_Giá dầu", 'Dầu thô'[_Giá dầu],
        "_Phụ phí", 'Dầu thô'[_Phụ phí],
        "_Giá dầu FOB", 'Dầu thô'[_Giá dầu FOB],
        "_Tỷ giá", 'Dầu thô'[_Tỷ giá],
        "_Giá dầu vnd", 'Dầu thô'[_Giá dầu vnd],
        "_Giá dầu nhập", 'Chi phí dầu thô'[_Giá dầu nhập],
        "_Giá trị nhập", 'Chi phí dầu thô'[_Giá trị nhập],
        "_Giá dầu quá khứ", 'Chi phí dầu thô'[_Giá dầu quá khứ],
        "_Giá trị Intransit", 'Chi phí dầu thô'[_Giá trị Intransit],
        "_Tồn đầu _1", 'Chi phí dầu thô'[_Tồn đầu _1],
        "_Giá dầu xuất _1", 'Chi phí dầu thô'[_Giá dầu xuất _1],
        "_Tồn cuối _1", 'Chi phí dầu thô'[_Tồn cuối _1],
        "_Tồn đầu _2", 'Chi phí dầu thô'[_Tồn đầu _2],
        "_Giá dầu xuất _2", 'Chi phí dầu thô'[_Giá dầu xuất _2],
        "_Tồn cuối _2", 'Chi phí dầu thô'[_Tồn cuối _2],
        "_Tồn đầu _3", 'Chi phí dầu thô'[_Tồn đầu _3],
        "_Giá dầu xuất _3", 'Chi phí dầu thô'[_Giá dầu xuất _3],
        "_Tồn cuối _3", 'Chi phí dầu thô'[_Tồn cuối _3],
        "_Tồn đầu _4", 'Chi phí dầu thô'[_Tồn đầu _4],
        "_Giá dầu xuất _4", 'Chi phí dầu thô'[_Giá dầu xuất _4],
        "_Tồn cuối _4", 'Chi phí dầu thô'[_Tồn cuối _4],
        "_Tồn đầu _5", 'Chi phí dầu thô'[_Tồn đầu _5],
        "_Giá dầu xuất _5", 'Chi phí dầu thô'[_Giá dầu xuất _5],
        "_Tồn cuối _5", 'Chi phí dầu thô'[_Tồn cuối _5],
        "_Tồn đầu _6", 'Chi phí dầu thô'[_Tồn đầu _6],
        "_Giá dầu xuất _6", 'Chi phí dầu thô'[_Giá dầu xuất _6],
        "_Tồn cuối _6", 'Chi phí dầu thô'[_Tồn cuối _6],
        "_Tồn đầu _7", 'Chi phí dầu thô'[_Tồn đầu _7],
        "_Giá dầu xuất _7", 'Chi phí dầu thô'[_Giá dầu xuất _7],
        "_Tồn cuối _7", 'Chi phí dầu thô'[_Tồn cuối _7],
        "_Tồn đầu _8", 'Chi phí dầu thô'[_Tồn đầu _8],
        "_Giá dầu xuất _8", 'Chi phí dầu thô'[_Giá dầu xuất _8],
        "_Tồn cuối _8", 'Chi phí dầu thô'[_Tồn cuối _8],
        "_Tồn đầu _9", 'Chi phí dầu thô'[_Tồn đầu _9],
        "_Giá dầu xuất _9", 'Chi phí dầu thô'[_Giá dầu xuất _9],
        "_Tồn cuối _9", 'Chi phí dầu thô'[_Tồn cuối _9],
        "_Tồn đầu _10", 'Chi phí dầu thô'[_Tồn đầu _10],
        "_Giá dầu xuất _10", 'Chi phí dầu thô'[_Giá dầu xuất _10],
        "_Tồn cuối _10", 'Chi phí dầu thô'[_Tồn cuối _10],
        "_Tồn đầu _11", 'Chi phí dầu thô'[_Tồn đầu _11],
        "_Giá dầu xuất _11", 'Chi phí dầu thô'[_Giá dầu xuất _11],
        "_Tồn cuối _11", 'Chi phí dầu thô'[_Tồn cuối _11],
        "_Tồn đầu _12", 'Chi phí dầu thô'[_Tồn đầu _12],
        "_Giá dầu xuất _12", 'Chi phí dầu thô'[_Giá dầu xuất _12],
        "_Giá BQGQ", 'Chi phí dầu thô'[_Giá BQGQ],
        "_CP NVL dầu", 'Chi phí dầu thô'[_CP NVL dầu],
        "_CP THNL", 'Chi phí dầu thô'[_CP THNL],
        "BTP cuối kì", 'Chi phí dầu thô'[BTP cuối kì],
        "BTP đầu kì", 'Chi phí dầu thô'[BTP đầu kì],
        "_CP 6211_NK", 'Chi phí dầu thô'[_CP 6211_NK],
        "_CP 6211_NK_total_1", 'Hệ số giá thành'[_CP 6211_NK_total_1],
        "_Plan 6211_NK_1", 'Hệ số giá thành'[_Plan 6211_NK_1],
        "_SL 457", 'Hệ số giá thành'[_SL 457],
        "_GT 6211_NK_1", 'Hệ số giá thành'[_GT 6211_NK_1],
        "_GV 6211_NK_1", 'Hệ số giá thành'[_GV 6211_NK_1],
        "BTP_6211_TN_1", 'Hệ số giá thành'[BTP_6211_TN_1],
        "_CP 6211_TN", 'Chi phí dầu thô'[_CP 6211_TN],
        "_CP 6211_TN_total_1", 'Hệ số giá thành'[_CP 6211_TN_total_1],
        "_Plan 6211_TN_1", 'Hệ số giá thành'[_Plan 6211_TN_1],
        "_GT 6211_TN_1", 'Hệ số giá thành'[_GT 6211_TN_1],
        "_GV 6211_TN_1", 'Hệ số giá thành'[_GV 6211_TN_1],
        "BTP_6212_1", 'Hệ số giá thành'[BTP_6212_1],
        "_CP 6212_total_1", 'Hệ số giá thành'[_CP 6212_total_1],
        "_Plan 6212_1", 'Hệ số giá thành'[_Plan 6212_1],
        "_GT 6212_1", 'Hệ số giá thành'[_GT 6212_1],
        "_GV 6212_1", 'Hệ số giá thành'[_GV 6212_1],
        "BTP_622_1", 'Hệ số giá thành'[BTP_622_1],
        "_CP 622_total_1", 'Hệ số giá thành'[_CP 622_total_1],
        "_Plan 622_1", 'Hệ số giá thành'[_Plan 622_1],
        "_GT 622_1", 'Hệ số giá thành'[_GT 622_1],
        "_GV 622_1", 'Hệ số giá thành'[_GV 622_1],
        "BTP_627_1", 'Hệ số giá thành'[BTP_627_1],
        "_CP 627_total_1", 'Hệ số giá thành'[_CP 627_total_1],
        "_Plan 627_1", 'Hệ số giá thành'[_Plan 627_1],
        "_GT 627_1", 'Hệ số giá thành'[_GT 627_1],
        "_GV 627_1", 'Hệ số giá thành'[_GV 627_1],
        "BTP_THNL_NK_1", 'Hệ số giá thành'[BTP_THNL_NK_1],
        "_CP THNL_NK", 'Chi phí dầu thô'[_CP THNL_NK],
        "_CP THNL_NK_total_1", 'Hệ số giá thành'[_CP THNL_NK_total_1],
        "_Plan THNL_NK_1", 'Hệ số giá thành'[_Plan THNL_NK_1],
        "_GT THNL_NK_1", 'Hệ số giá thành'[_GT THNL_NK_1],
        "_GV THNL_NK_1", 'Hệ số giá thành'[_GV THNL_NK_1],
        "BTP_THNL_TN_1", 'Hệ số giá thành'[BTP_THNL_TN_1],
        "_CP THNL_TN", 'Chi phí dầu thô'[_CP THNL_TN],
        "_CP THNL_TN_total_1", 'Hệ số giá thành'[_CP THNL_TN_total_1],
        "_Plan THNL_TN_1", 'Hệ số giá thành'[_Plan THNL_TN_1],
        "_GT THNL_TN_1", 'Hệ số giá thành'[_GT THNL_TN_1],
        "_GV THNL_TN_1", 'Hệ số giá thành'[_GV THNL_TN_1],
        "_GV_1", 'Hệ số giá thành'[_GV_1],
        "_SL xuất", 'Hệ số giá thành'[_SL xuất],
        "_Plan NMPP_6211_NK_1", 'Hệ số giá thành'[_Plan NMPP_6211_NK_1],
        "_GT PP_6211_NK_1", 'Hệ số giá thành'[_GT PP_6211_NK_1],
        "_GV PP_6211_NK_1", 'Hệ số giá thành'[_GV PP_6211_NK_1],
        "_GT_1", 'Hệ số giá thành'[_GT_1],
        "_CP 6211_TN_NMPP_1", 'Hệ số giá thành'[_CP 6211_TN_NMPP_1],
        "_Plan NMPP_6211_TN_1", 'Hệ số giá thành'[_Plan NMPP_6211_TN_1],
        "_GT PP_6211_TN_1", 'Hệ số giá thành'[_GT PP_6211_TN_1],
        "_GV PP_6211_TN_1", 'Hệ số giá thành'[_GV PP_6211_TN_1],
        "_Plan NMPP_6212_1", 'Hệ số giá thành'[_Plan NMPP_6212_1],
        "_GT PP_6212_1", 'Hệ số giá thành'[_GT PP_6212_1],
        "_GV PP_6212_1", 'Hệ số giá thành'[_GV PP_6212_1],
        "_Plan NMPP_622_1", 'Hệ số giá thành'[_Plan NMPP_622_1],
        "_GT PP_622_1", 'Hệ số giá thành'[_GT PP_622_1],
        "_GV PP_622_1", 'Hệ số giá thành'[_GV PP_622_1],
        "_Plan NMPP_627_1", 'Hệ số giá thành'[_Plan NMPP_627_1],
        "_GT PP_627_1", 'Hệ số giá thành'[_GT PP_627_1],
        "_GV PP_627_1", 'Hệ số giá thành'[_GV PP_627_1],
        "_Plan NMPP_THNL_NK_1", 'Hệ số giá thành'[_Plan NMPP_THNL_NK_1],
        "_GT PP_THNL_NK_1", 'Hệ số giá thành'[_GT PP_THNL_NK_1],
        "_GV PP_THNL_NK_1", 'Hệ số giá thành'[_GV PP_THNL_NK_1],
        "_Plan NMPP_THNL_TN_1", 'Hệ số giá thành'[_Plan NMPP_THNL_TN_1],
        "_GT PP_THNL_TN_1", 'Hệ số giá thành'[_GT PP_THNL_TN_1],
        "_GV PP_THNL_TN_1", 'Hệ số giá thành'[_GV PP_THNL_TN_1],
        "_GV PP_1", 'Hệ số giá thành'[_GV PP_1],
        "_GT 30000 6211_NK_1", 'Hệ số giá thành'[_GT 30000 6211_NK_1],
        "_GT 30000 6211_TN_1", 'Hệ số giá thành'[_GT 30000 6211_TN_1],
        "_GT 30000 6212_1", 'Hệ số giá thành'[_GT 30000 6212_1],
        "_GT 30000 622_1", 'Hệ số giá thành'[_GT 30000 622_1],
        "_GT 30000 627_1", 'Hệ số giá thành'[_GT 30000 627_1],
        "_GT 30000 THNL_NK_1", 'Hệ số giá thành'[_GT 30000 THNL_NK_1],
        "_GT 30000 THNL_TN_1", 'Hệ số giá thành'[_GT 30000 THNL_TN_1],
        "_GT 30000_1", 'Hệ số giá thành'[_GT 30000_1],
        "_SL 30000", 'Hệ số giá thành'[_SL 30000],
        "1. Chi phí giá vốn AHTK_1", 'Hệ số giá thành'[1. Chi phí giá vốn AHTK_1],
        "BTP_6211_NK_2", 'Hệ số giá thành'[BTP_6211_NK_2],
        "_CP 6211_NK_total_2", 'Hệ số giá thành'[_CP 6211_NK_total_2],
        "_Plan 6211_NK_2", 'Hệ số giá thành'[_Plan 6211_NK_2],
        "_GT 6211_NK_2", 'Hệ số giá thành'[_GT 6211_NK_2],
        "_GV 6211_NK_2", 'Hệ số giá thành'[_GV 6211_NK_2],
        "BTP_6211_TN_2", 'Hệ số giá thành'[BTP_6211_TN_2],
        "_CP 6211_TN_total_2", 'Hệ số giá thành'[_CP 6211_TN_total_2],
        "_Plan 6211_TN_2", 'Hệ số giá thành'[_Plan 6211_TN_2],
        "_GT 6211_TN_2", 'Hệ số giá thành'[_GT 6211_TN_2],
        "_GV 6211_TN_2", 'Hệ số giá thành'[_GV 6211_TN_2],
        "BTP_6212_2", 'Hệ số giá thành'[BTP_6212_2],
        "_CP 6212_total_2", 'Hệ số giá thành'[_CP 6212_total_2],
        "_Plan 6212_2", 'Hệ số giá thành'[_Plan 6212_2],
        "_GT 6212_2", 'Hệ số giá thành'[_GT 6212_2],
        "_GV 6212_2", 'Hệ số giá thành'[_GV 6212_2],
        "BTP_622_2", 'Hệ số giá thành'[BTP_622_2],
        "_CP 622_total_2", 'Hệ số giá thành'[_CP 622_total_2],
        "_Plan 622_2", 'Hệ số giá thành'[_Plan 622_2],
        "_GT 622_2", 'Hệ số giá thành'[_GT 622_2],
        "_GV 622_2", 'Hệ số giá thành'[_GV 622_2],
        "BTP_627_2", 'Hệ số giá thành'[BTP_627_2],
        "_CP 627_total_2", 'Hệ số giá thành'[_CP 627_total_2],
        "_Plan 627_2", 'Hệ số giá thành'[_Plan 627_2],
        "_GT 627_2", 'Hệ số giá thành'[_GT 627_2],
        "_GV 627_2", 'Hệ số giá thành'[_GV 627_2],
        "BTP_THNL_NK_2", 'Hệ số giá thành'[BTP_THNL_NK_2],
        "_CP THNL_NK_total_2", 'Hệ số giá thành'[_CP THNL_NK_total_2],
        "_Plan THNL_NK_2", 'Hệ số giá thành'[_Plan THNL_NK_2],
        "_GT THNL_NK_2", 'Hệ số giá thành'[_GT THNL_NK_2],
        "_GV THNL_NK_2", 'Hệ số giá thành'[_GV THNL_NK_2],
        "BTP_THNL_TN_2", 'Hệ số giá thành'[BTP_THNL_TN_2],
        "_CP THNL_TN_total_2", 'Hệ số giá thành'[_CP THNL_TN_total_2],
        "_Plan THNL_TN_2", 'Hệ số giá thành'[_Plan THNL_TN_2],
        "_GT THNL_TN_2", 'Hệ số giá thành'[_GT THNL_TN_2],
        "_GV THNL_TN_2", 'Hệ số giá thành'[_GV THNL_TN_2],
        "_GV_2", 'Hệ số giá thành'[_GV_2],
        "_Plan NMPP_6211_NK_2", 'Hệ số giá thành'[_Plan NMPP_6211_NK_2],
        "_GT PP_6211_NK_2", 'Hệ số giá thành'[_GT PP_6211_NK_2],
        "_GV PP_6211_NK_2", 'Hệ số giá thành'[_GV PP_6211_NK_2],
        "_GT_2", 'Hệ số giá thành'[_GT_2],
        "_CP 6211_TN_NMPP_2", 'Hệ số giá thành'[_CP 6211_TN_NMPP_2],
        "_Plan NMPP_6211_TN_2", 'Hệ số giá thành'[_Plan NMPP_6211_TN_2],
        "_GT PP_6211_TN_2", 'Hệ số giá thành'[_GT PP_6211_TN_2],
        "_GV PP_6211_TN_2", 'Hệ số giá thành'[_GV PP_6211_TN_2],
        "_Plan NMPP_6212_2", 'Hệ số giá thành'[_Plan NMPP_6212_2],
        "_GT PP_6212_2", 'Hệ số giá thành'[_GT PP_6212_2],
        "_GV PP_6212_2", 'Hệ số giá thành'[_GV PP_6212_2],
        "_Plan NMPP_622_2", 'Hệ số giá thành'[_Plan NMPP_622_2],
        "_GT PP_622_2", 'Hệ số giá thành'[_GT PP_622_2],
        "_GV PP_622_2", 'Hệ số giá thành'[_GV PP_622_2],
        "_Plan NMPP_627_2", 'Hệ số giá thành'[_Plan NMPP_627_2],
        "_GT PP_627_2", 'Hệ số giá thành'[_GT PP_627_2],
        "_GV PP_627_2", 'Hệ số giá thành'[_GV PP_627_2],
        "_Plan NMPP_THNL_NK_2", 'Hệ số giá thành'[_Plan NMPP_THNL_NK_2],
        "_GT PP_THNL_NK_2", 'Hệ số giá thành'[_GT PP_THNL_NK_2],
        "_GV PP_THNL_NK_2", 'Hệ số giá thành'[_GV PP_THNL_NK_2],
        "_Plan NMPP_THNL_TN_2", 'Hệ số giá thành'[_Plan NMPP_THNL_TN_2],
        "_GT PP_THNL_TN_2", 'Hệ số giá thành'[_GT PP_THNL_TN_2],
        "_GV PP_THNL_TN_2", 'Hệ số giá thành'[_GV PP_THNL_TN_2],
        "_GV PP_2", 'Hệ số giá thành'[_GV PP_2],
        "_GT 30000 6211_NK_2", 'Hệ số giá thành'[_GT 30000 6211_NK_2],
        "_GV 30000 6211_NK_2", 'Hệ số giá thành'[_GV 30000 6211_NK_2],
        "_GT 30000 6211_TN_2", 'Hệ số giá thành'[_GT 30000 6211_TN_2],
        "_GV 30000 6211_TN_2", 'Hệ số giá thành'[_GV 30000 6211_TN_2],
        "_GT 30000 6212_2", 'Hệ số giá thành'[_GT 30000 6212_2],
        "_GV 30000 6212_2", 'Hệ số giá thành'[_GV 30000 6212_2],
        "_GT 30000 622_2", 'Hệ số giá thành'[_GT 30000 622_2],
        "_GV 30000 622_2", 'Hệ số giá thành'[_GV 30000 622_2],
        "_GT 30000 627_2", 'Hệ số giá thành'[_GT 30000 627_2],
        "_GV 30000 627_2", 'Hệ số giá thành'[_GV 30000 627_2],
        "_GT 30000 THNL_NK_2", 'Hệ số giá thành'[_GT 30000 THNL_NK_2],
        "_GV 30000 THNL_NK_2", 'Hệ số giá thành'[_GV 30000 THNL_NK_2],
        "_GT 30000 THNL_TN_2", 'Hệ số giá thành'[_GT 30000 THNL_TN_2],
        "_GV 30000 THNL_TN_2", 'Hệ số giá thành'[_GV 30000 THNL_TN_2],
        "_GV 30000_2", 'Hệ số giá thành'[_GV 30000_2],
        "1. Chi phí giá vốn AHTK_2", 'Hệ số giá thành'[1. Chi phí giá vốn AHTK_2],
        "_GV AHTK", 'KH_SUM'[_GV AHTK]
    )

 

hihi
Frequent Visitor

Because my report has a very complex set of logic, as described at the beginning of the article. Must take from previous steps and last month's data to calculate. Do you have any ideas for this problem?

Thanks.

Unpivot your source data. Use (far) fewer measures. Consider using Calculation Groups or Field Parameters.  Conduct research with your users to observe which parts of the report they actually use. Refactor your report.

Helpful resources

Announcements
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

Check out the October 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

Find out what's new and trending in the Fabric Community.