Power BI Visuals Slow? Complete Guide to Optimize Your DAX & Report Performance (Tamil)


⭐ Power BI Visuals Slow? How to Diagnose & Optimize Your Measures (Tamil Guide)

Power BI demo கொடுக்கும்போது சில visuals load ஆக நிறைய நேரம் எடுத்துக் கொள்கின்றனவா?
அது ஒரு measure problem ஆ? அல்லது heavy model காரணமா?
இல்லைனா visual-ஐ render பண்ணுறது itself slow ஆ இருக்குதா?

பல பேரும் guess பண்ணி troubleshoot பண்ண முயற்சிப்பாங்க. ஆனால் Power BIல slowness-க்கு காரணம் என்னன்னு கண்டுபிடிக்க exact method இருக்குது. இந்த blog-ல அது பற்றி சரியான முறையில் step-by-step பார்க்கலாம்.


🔍 1. Performance Analyzer — Slow Visuals கண்டுபிடிக்க First Step

Power BI-யில் Performance Analyzer என்பது எந்த visual எவ்வளவு milliseconds எடுக்குது என்பதை சரியாக காட்டும் ஒரு tool.

எப்படி பயன்படுத்துவது?

  1. Optimize tab → Performance Analyzer open செய்யுங்கள்
  2. Start Recording கிளிக் பண்ணுங்க
  3. Page-ல் Refresh visuals
  4. ஒவ்வொரு visual-க்கும் எவ்வளவு நேரம் எடுத்தது என்று descending order-ல் sort பண்ணி பாருங்கள்

இவ்வளவு பண்ணினாலே, எந்த visual அதிகமாக time எடுக்குது என்று identify பண்ணிடலாம்.

எடுத்துக்காட்டு:
ஒரு demo-வில் “Repeat Customers & Returning Customers” measure தான் அதிக நேரம் எடுத்துக்கொண்டிருந்தது.

ஆனா இது symptom, root cause இல்லை.
அதாவது slowness-க்கு காரணம் என்னன்னு இன்னும் கண்டுபிடிக்கணும்.


🔍 2. Query Diagnostics — Slow Measure-க்கு காரணம் என்ன?

Performance Analyzer time மட்டும் காட்டும்.
ஆனா “ஏன் slow?” என்று complete explanation குடாது.

அதனால visual detailsல் Copy DAX Query கிளிக் பண்ணி அந்த measure-ஐ DAX Studio-ல் analyze பண்ணணும்.

DAX Studio-ல் செய்ய வேண்டியது:

  1. Query-ஐ paste பண்ணுங்க
  2. Server Timings enable செய்யுங்கள்
  3. Query Plan enable செய்யுங்கள்
  4. Query run பண்ணுங்க


⚙ Server Timings — Formula Engine vs Storage Engine

Power BI engine இரண்டாக பிரியும்:

  • Formula Engine (FE) – Calculations
  • Storage Engine (SE) – Data scanning

DAX Studio server timings காட்டும்:

  • 80–90% time Storage Engine-ல் இருந்தால்
  • → table முழுக்க row-by-row scan ஆகுது → measure inefficient

  • அதிகமாக Formula Engine-ல் time எடுத்தால்
  • → logic பாத்து optimize பண்ண வேண்டும்

உங்க subtitle example-க்குள் 80% time storage engine-ல் இருந்தது.
அதாவது row-by-row scan.

அதே measure 9,000 rows வரைக்கும் scan பண்ணியது — அதனால தான் slowness.


⚠ Root Cause: Row-by-Row Calculation

Original measure-ல்:

  • COUNTROWS
  • CALCULATETABLE
  • COUNTX-like row operations
  • இவற்றைப் பயன்படுத்தியதால் முழு Sales table scan ஆயிற்று.

இதனால் storage engine work அதிகம் → slowness அதிகம்.


✔ Optimized Measure — எப்படி வேகம் அதிகரிக்கிறது?

Measure-ஐ 3 step logic-ஆ simplify பண்ணி optimize பண்ணலாம்:

✔ Step 1: Summarize Table Create

Customer Name + Total Orders count மட்டும் summarize செய்து variable-ஆ save பண்ணுதல்.

✔ Step 2: Current Customer List

Current period customers மட்டும் variable-ஆ எடுத்துக்கொள்வது.

✔ Step 3: INTERSECT Function

இரு customer lists-ஐ compare பண்ணி repeated customers கண்டுபிடிக்க:

INTERSECT(TableA, TableB)

இது duplicate values (i.e., repeated customers) மட்டும் output ஆகக் கொடுக்கும்.

✔ Step 4: COUNTROWS for Final Result

INTERSECT output count = repeated customers count.

இதன் மேல் percentage calculation.

🎉 Result?

Old measure = 1000+ ms
Optimized measure = ~130 ms


🔍 3. Customer Retention Measure — Formula Engine Slowness

திரும்ப Performance Analyzer run பண்ணும் போது “Customer Retention by Month” measure தான் அதிகமான time எடுத்தது.

இதையும் DAX Studio-ல் check பண்ணும்போது:

  • 99.8% formula engine
  • 2% storage engine

இதன் meaning:
Slowness formula logic-ன் காரணம்.

Issue in Logic

Original formula-ல் unnecessary filter இருந்தது:

Amount > 0

Dataset-ல் purchase பண்ணாத customers இல்லை;
அதனால இந்த filter தேவையே இல்லை.

Filter remove பண்ணியதும் calculation time மிகக் குறைந்தது.


🧩 4. Table Visuals — Slow ஆகாதபடி Default Filters Set பண்ணுவது

Clients எப்போதும் table visuals கேட்பது common.
அது full dataset load செய்கிறது → visual naturally slow ஆகும்.

Example:
5 years data இருந்தால் visual load time 450ms.

✔ Fix

Default filter on table visuals:

  • Last 1 Month
  • Last 3 Months
  • MTD (Month-to-Date) using a proper Date Dimension

Filtering rows = faster loading.
Rows குறைந்தால் visuals naturally வேகமாக load ஆகும்.




கருத்துரையிடுக

0 கருத்துகள்