How to optimize a slow power BI report?
-Reduce visuals on page.
-use star schema
-remove unnecessary rows and columns.
-push transformations to power query or source.
-disable auto date/time , reduce cardinality
-use dax variables for better performance
How to implement incremental refresh ?
Define RangeStart and RangeEnd parameters ->apply filters in power query ->enable incremental
refresh in model settings ->publish to powerbi service(premium/ppu)
What are bookmarks ,how do you use them ?
Bookmarks capture the current state of [Link] for page navigation,storytelling,showing/hiding
visuals,building custom buttons.
5. DAX to calculate Top 3 customers based on sales
Top3Customers =
TOPN(3, SUMMARIZE(Customer, Customer[Name], "Sales", SUM(Sales[Amount])),
[Sales], DESC)
6. How do you handle missing data?
Replace nulls using Power Query
Use default values or conditional columns
Apply data validation rules
Highlight missing values using conditional formatting
Communicate data-quality issues to source owners
7. Worked on Decomposition Tree? Why is it used?
Yes - it helps break down a metric (Revenue, CSAT, Complaints, etc.) across multiple
dimensions to find the root cause. It's mainly used for AI-driven drill-down analysis.
8. How do you change the X-axis order as per requirement? DAX?
Create a Sort Order column and sort the main column by this column.
Example:
SortOrder = SWITCH(MonthName,
"Jan",1,"Feb",2,"Mar",3, ... )
Then → Column Tools → Sort by Column.
9. PBIX file not getting published — reasons?
File bigger than 1 GB (PBIX)
Dataset uses unsupported connectors
Gateway not configured
RLS issues
Workspace permissions
Using features unsupported in Pro (needs Premium)
10. Types of Power BI Subscriptions
Free – Limited features
Pro – Sharing, collaboration
Premium Per User (PPU) – Advanced capabilities, AI, large models
Premium Capacity – Enterprise-level dedicated capacity
1️⃣What are the different types of modes you have worked on?
I have worked on Import mode, DirectQuery, and Live Connection.
Most of my projects were in Import mode for better performance. I’ve also used
DirectQuery when real-time data was required, and Live Connection while working
with centralized semantic models.
2️⃣What is the difference between DirectQuery and Live Connection?
DirectQuery: Power BI sends a query to the database every time a user interacts
with a visual. Data stays in the source.
Live Connection: Power BI directly connects to an existing dataset or Analysis
Services model. No data is stored in the report, and modeling is mostly restricted.
👉 In short: DirectQuery = direct database queries, Live Connection = reuse of an
existing semantic model.
3️⃣Have you ever worked with Live Connection? Give examples.
Yes. I have used Live Connection with Power BI Service datasets and SSAS Tabular
models, where the data model was already built by the central BI team. We only
created reports and dashboards on top of that shared dataset.
4️⃣Define a Composite Model.
A Composite Model is when we use multiple storage modes together in a single
report-
for example:
Some tables in Import,
Some in DirectQuery,
And sometimes a Live Connection dataset combined with imported tables.
This helps in balancing performance + real-time requirements.
5️⃣If you have to import an Excel file from a server that multiple users update, how
will you do it?
Instead of loading from a local machine, I connect to the shared network folder or
SharePoint location.
Then I:
✅ Use Folder or SharePoint connector
✅ Set up Scheduled Refresh
✅ Ensure the file format and structure remain consistent
So every time the file is updated, Power BI refreshes the latest data automatically.
Userrelationship: activates an inactive relationship inside a calculation
DAX: DAX for sales by shipdate
Sales by shipdate=calculate(sum(sales[amount]),userrelationship(sales[shipdate],date[date])
Power query M language:
Where it exists: transform data -> Advanced Editor
Filter rows
M [Link](source,each[sales]>1000)
M [Link](source,eac[sales]>1000)
Add conditional column
M [Link](source,”category” , each if [sales] > 5000 then “HIGH” else “LOW”)
M [Link](source,”category”, each if [sales] > 5000 then “HIGH” else “LOW”)
Crossfilter: controls relationship direction
=calculate(sum(sales[amount]),crossfilter(sales[productid],product[productid],both)
Treatas: applies values from one table as filters on another table without relationships
=calculate(sum(sales[amount]),treatas(values(region[region]),sales[region])
Difference between referencing and duplicating a query (power query)
Aspect Duplicate Reference
Dependency Independent Dependent
Performance Lower Better
Use case Separate logic Reusable logic
Q1️⃣ Create a Sales Dashboard from Scratch (Step-by-Step)
Step1:data connection
Powerbi desktop- home ->getdata
Step2:data cleaning (power query)
transform data
->remove duplicates
->fix data types
->handle nulls
Step3: data modelling
Model view:
->star schema
->factsales + dimensions
->single direction relationship
Step4:dax meaures
Totalsales = sum(factsales[salesamount])
Ytdsales=calculate([total sales],datesytd(date[date]))
Step5:visualization
->report view:
Kpi cards
Line chart
Bar chart
Slicers
Step6:publish and share
Home->publish->workspace