{"id":"ab4a61c9-aaea-4426-9822-be503f539ea9","shortId":"gPwUtW","kind":"skill","title":"power-bi-performance-troubleshooting","tagline":"Systematic Power BI performance troubleshooting prompt for identifying, diagnosing, and resolving performance issues in Power BI models, reports, and queries.","description":"# Power BI Performance Troubleshooting Guide\n\nYou are a Power BI performance expert specializing in diagnosing and resolving performance issues across models, reports, and queries. Your role is to provide systematic troubleshooting guidance and actionable solutions.\n\n## Troubleshooting Methodology\n\n### Step 1: **Problem Definition and Scope**\nBegin by clearly defining the performance issue:\n\n```\nIssue Classification:\n□ Model loading/refresh performance\n□ Report page loading performance  \n□ Visual interaction responsiveness\n□ Query execution speed\n□ Capacity resource constraints\n□ Data source connectivity issues\n\nScope Assessment:\n□ Affects all users vs. specific users\n□ Occurs at specific times vs. consistently\n□ Impacts specific reports vs. all reports\n□ Happens with certain data filters vs. all scenarios\n```\n\n### Step 2: **Performance Baseline Collection**\nGather current performance metrics:\n\n```\nRequired Metrics:\n- Page load times (target: <10 seconds)\n- Visual interaction response (target: <3 seconds)\n- Query execution times (target: <30 seconds)\n- Model refresh duration (varies by model size)\n- Memory and CPU utilization\n- Concurrent user load\n```\n\n### Step 3: **Systematic Diagnosis**\nUse this diagnostic framework:\n\n#### A. **Model Performance Issues**\n```\nData Model Analysis:\n✓ Model size and complexity\n✓ Relationship design and cardinality\n✓ Storage mode configuration (Import/DirectQuery/Composite)\n✓ Data types and compression efficiency\n✓ Calculated columns vs. measures usage\n✓ Date table implementation\n\nCommon Model Issues:\n- Large model size due to unnecessary columns/rows\n- Inefficient relationships (many-to-many, bidirectional)\n- High-cardinality text columns\n- Excessive calculated columns\n- Missing or improper date tables\n- Poor data type selections\n```\n\n#### B. **DAX Performance Issues**\n```\nDAX Formula Analysis:\n✓ Complex calculations without variables\n✓ Inefficient aggregation functions\n✓ Context transition overhead\n✓ Iterator function optimization\n✓ Filter context complexity\n✓ Error handling patterns\n\nPerformance Anti-Patterns:\n- Repeated calculations (missing variables)\n- FILTER() used as filter argument\n- Complex calculated columns in large tables\n- Nested CALCULATE functions\n- Inefficient time intelligence patterns\n```\n\n#### C. **Report Design Issues**\n```\nReport Performance Analysis:\n✓ Number of visuals per page (max 6-8 recommended)\n✓ Visual types and complexity\n✓ Cross-filtering configuration\n✓ Slicer query efficiency\n✓ Custom visual performance impact\n✓ Mobile layout optimization\n\nCommon Report Issues:\n- Too many visuals causing resource competition\n- Inefficient cross-filtering patterns\n- High-cardinality slicers\n- Complex custom visuals\n- Poorly optimized visual interactions\n```\n\n#### D. **Infrastructure and Capacity Issues**\n```\nInfrastructure Assessment:\n✓ Capacity utilization (CPU, memory, query volume)\n✓ Network connectivity and bandwidth\n✓ Data source performance\n✓ Gateway configuration and performance\n✓ Concurrent user load patterns\n✓ Geographic distribution considerations\n\nCapacity Indicators:\n- High CPU utilization (>70% sustained)\n- Memory pressure warnings\n- Query queuing and timeouts\n- Gateway performance bottlenecks\n- Network latency issues\n```\n\n## Diagnostic Tools and Techniques\n\n### **Power BI Desktop Tools**\n```\nPerformance Analyzer:\n- Enable and record visual refresh times\n- Identify slowest visuals and operations\n- Compare DAX query vs. visual rendering time\n- Export results for detailed analysis\n\nUsage:\n1. Open Performance Analyzer pane\n2. Start recording\n3. Refresh visuals or interact with report\n4. Analyze results by duration\n5. Focus on highest duration items first\n```\n\n### **DAX Studio Analysis**\n```\nAdvanced DAX Analysis:\n- Query execution plans\n- Storage engine vs. formula engine usage\n- Memory consumption patterns\n- Query performance metrics\n- Server timings analysis\n\nKey Metrics to Monitor:\n- Total duration\n- Formula engine duration\n- Storage engine duration\n- Scan count and efficiency\n- Memory usage patterns\n```\n\n### **Capacity Monitoring**\n```\nFabric Capacity Metrics App:\n- CPU and memory utilization trends\n- Query volume and patterns  \n- Refresh performance tracking\n- User activity analysis\n- Resource bottleneck identification\n\nPremium Capacity Monitoring:\n- Capacity utilization dashboards\n- Performance threshold alerts\n- Historical trend analysis\n- Workload distribution assessment\n```\n\n## Solution Framework\n\n### **Immediate Performance Fixes**\n\n#### Model Optimization:\n```dax\n-- Replace inefficient patterns:\n\n❌ Poor Performance:\nSales Growth = \n([Total Sales] - CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))) / \nCALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))\n\n✅ Optimized Version:\nSales Growth = \nVAR CurrentMonth = [Total Sales]\nVAR PreviousMonth = CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))\nRETURN\n    DIVIDE(CurrentMonth - PreviousMonth, PreviousMonth)\n```\n\n#### Report Optimization:\n- Reduce visuals per page to 6-8 maximum\n- Implement drill-through instead of showing all details\n- Use bookmarks for different views instead of multiple visuals\n- Apply filters early to reduce data volume\n- Optimize slicer selections and cross-filtering\n\n#### Data Model Optimization:\n- Remove unused columns and tables\n- Optimize data types (integers vs. text, dates vs. datetime)\n- Replace calculated columns with measures where possible\n- Implement proper star schema relationships\n- Use incremental refresh for large datasets\n\n### **Advanced Performance Solutions**\n\n#### Storage Mode Optimization:\n```\nImport Mode Optimization:\n- Data reduction techniques\n- Pre-aggregation strategies\n- Incremental refresh implementation\n- Compression optimization\n\nDirectQuery Optimization:\n- Database index optimization\n- Query folding maximization\n- Aggregation table implementation\n- Connection pooling configuration\n\nComposite Model Strategy:\n- Strategic storage mode selection\n- Cross-source relationship optimization\n- Dual mode dimension implementation\n- Performance monitoring setup\n```\n\n#### Infrastructure Scaling:\n```\nCapacity Scaling Considerations:\n- Vertical scaling (more powerful capacity)\n- Horizontal scaling (distributed workload)\n- Geographic distribution optimization\n- Load balancing implementation\n\nGateway Optimization:\n- Dedicated gateway clusters\n- Load balancing configuration\n- Connection optimization\n- Performance monitoring setup\n```\n\n## Troubleshooting Workflows\n\n### **Quick Win Checklist** (30 minutes)\n```\n□ Check Performance Analyzer for obvious bottlenecks\n□ Reduce number of visuals on slow-loading pages\n□ Apply default filters to reduce data volume\n□ Disable unnecessary cross-filtering\n□ Check for missing relationships causing cross-joins\n□ Verify appropriate storage modes\n□ Review and optimize top 3 slowest DAX measures\n```\n\n### **Comprehensive Analysis** (2-4 hours)\n```\n□ Complete model architecture review\n□ DAX optimization using variables and efficient patterns\n□ Report design optimization and restructuring\n□ Data source performance analysis\n□ Capacity utilization assessment\n□ User access pattern analysis\n□ Mobile performance testing\n□ Load testing with realistic concurrent users\n```\n\n### **Strategic Optimization** (1-2 weeks)\n```\n□ Complete data model redesign if necessary\n□ Implementation of aggregation strategies\n□ Infrastructure scaling planning\n□ Monitoring and alerting setup\n□ User training on efficient usage patterns\n□ Performance governance implementation\n□ Continuous monitoring and optimization process\n```\n\n## Performance Monitoring Setup\n\n### **Proactive Monitoring**\n```\nKey Performance Indicators:\n- Average page load time by report\n- Query execution time percentiles\n- Model refresh duration trends\n- Capacity utilization patterns\n- User adoption and usage metrics\n- Error rates and timeout occurrences\n\nAlerting Thresholds:\n- Page load time >15 seconds\n- Query execution time >45 seconds\n- Capacity CPU >80% for >10 minutes\n- Memory utilization >90%\n- Refresh failures\n- High error rates\n```\n\n### **Regular Health Checks**\n```\nWeekly:\n□ Review performance dashboards\n□ Check capacity utilization trends\n□ Monitor slow-running queries\n□ Review user feedback and issues\n\nMonthly:\n□ Comprehensive performance analysis\n□ Model optimization opportunities\n□ Capacity planning review\n□ User training needs assessment\n\nQuarterly:\n□ Strategic performance review\n□ Technology updates and optimizations\n□ Scaling requirements assessment\n□ Performance governance updates\n```\n\n## Communication and Documentation\n\n### **Issue Reporting Template**\n```\nPerformance Issue Report:\n\nIssue Description:\n- What specific performance problem is occurring?\n- When does it happen (always, specific times, certain conditions)?\n- Who is affected (all users, specific groups, particular reports)?\n\nPerformance Metrics:\n- Current performance measurements\n- Expected performance targets\n- Comparison with previous performance\n\nEnvironment Details:\n- Report/model names affected\n- User locations and network conditions\n- Browser and device information\n- Capacity and infrastructure details\n\nImpact Assessment:\n- Business impact and urgency\n- Number of users affected\n- Critical business processes impacted\n- Workarounds currently in use\n```\n\n### **Resolution Documentation**\n```\nSolution Summary:\n- Root cause analysis results\n- Optimization changes implemented\n- Performance improvement achieved\n- Validation and testing completed\n\nImplementation Details:\n- Step-by-step changes made\n- Configuration modifications\n- Code changes (DAX, model design)\n- Infrastructure adjustments\n\nResults and Follow-up:\n- Before/after performance metrics\n- User feedback and validation\n- Monitoring setup for ongoing health\n- Recommendations for similar issues\n```\n\n---\n\n**Usage Instructions:**\nProvide details about your specific Power BI performance issue, including:\n- Symptoms and impact description\n- Current performance metrics\n- Environment and configuration details\n- Previous troubleshooting attempts\n- Business requirements and constraints\n\nI'll guide you through systematic diagnosis and provide specific, actionable solutions tailored to your situation.","tags":["power","performance","troubleshooting","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"capabilities":["skill","source-github","skill-power-bi-performance-troubleshooting","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/power-bi-performance-troubleshooting","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (10,137 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:20.451Z","embedding":null,"createdAt":"2026-04-18T20:26:07.189Z","updatedAt":"2026-05-18T18:52:20.451Z","lastSeenAt":"2026-05-18T18:52:20.451Z","tsv":"'-2':860 '-4':819 '-8':309,606 '1':64,439,859 '10':141,944 '15':933 '2':127,444,818 '3':147,170,447,812 '30':153,767 '4':454 '45':938 '5':459 '6':308,605 '70':390 '80':942 '90':948 'access':845 'achiev':1099 'across':45 'action':59,1182 'activ':528 'adjust':1120 'adopt':919 'advanc':469,675 'affect':100,1031,1054,1077 'aggreg':255,689,704,870 'alert':541,877,928 'alway':1024 'analysi':183,249,301,437,468,471,489,529,544,817,840,847,978,1092 'analyz':414,442,455,771 'anti':271 'anti-pattern':270 'app':514 'appli':626,784 'appropri':805 'architectur':823 'argument':281 'assess':99,360,547,843,988,999,1069 'attempt':1167 'averag':901 'b':243 'balanc':747,755 'bandwidth':370 'baselin':129 'before/after':1126 'begin':69 'bi':3,8,21,27,35,410,1150 'bidirect':225 'bookmark':618 'bottleneck':401,531,774 'browser':1060 'busi':1070,1079,1168 'c':295 'calcul':201,232,251,274,283,289,565,571,587,658 'capac':91,357,361,385,509,512,534,536,731,738,841,915,940,962,982,1064 'cardin':191,228,345 'caus':335,800,1091 'certain':120,1027 'chang':1095,1110,1115 'check':769,796,956,961 'checklist':766 'classif':77 'clear':71 'cluster':753 'code':1114 'collect':130 'column':202,230,233,284,645,659 'columns/rows':218 'common':209,329 'communic':1003 'compar':426 'comparison':1046 'competit':337 'complet':821,862,1103 'complex':187,250,265,282,314,347 'composit':710 'comprehens':816,976 'compress':199,694 'concurr':166,378,855 'condit':1028,1059 'configur':194,318,375,709,756,1112,1163 'connect':96,368,707,757 'consider':384,733 'consist':111 'constraint':93,1171 'consumpt':482 'context':257,264 'continu':888 'count':503 'cpu':164,363,388,515,941 'critic':1078 'cross':316,340,638,718,794,802 'cross-filt':315,339,637,793 'cross-join':801 'cross-sourc':717 'current':132,1040,1083,1158 'currentmonth':582,595 'custom':322,348 'd':354 'dashboard':538,960 'data':94,121,181,196,240,371,631,640,649,684,789,837,863 'databas':698 'dataset':674 'date':206,237,569,570,575,576,591,592,654 'datetim':656 'dax':244,247,427,466,470,555,814,825,1116 'dedic':751 'default':785 'defin':72 'definit':66 'descript':1013,1157 'design':189,297,833,1118 'desktop':411 'detail':436,616,1051,1067,1105,1145,1164 'devic':1062 'diagnos':14,40 'diagnosi':172,1178 'diagnost':175,405 'differ':620 'dimens':724 'directqueri':696 'disabl':791 'distribut':383,546,741,744 'divid':594 'document':1005,1087 'drill':610 'drill-through':609 'dual':722 'due':215 'durat':157,458,463,495,498,501,913 'earli':628 'effici':200,321,505,830,882 'enabl':415 'engin':476,479,497,500 'environ':1050,1161 'error':266,923,952 'excess':231 'execut':89,150,473,908,936 'expect':1043 'expert':37 'export':433 'fabric':511 'failur':950 'feedback':972,1130 'filter':122,263,277,280,317,341,627,639,786,795 'first':465 'fix':552 'focus':460 'fold':702 'follow':1124 'follow-up':1123 'formula':248,478,496 'framework':176,549 'function':256,261,290 'gateway':374,399,749,752 'gather':131 'geograph':382,743 'govern':886,1001 'group':1035 'growth':562,580 'guid':30,1174 'guidanc':57 'handl':267 'happen':118,1023 'health':955,1137 'high':227,344,387,951 'high-cardin':226,343 'highest':462 'histor':542 'horizont':739 'hour':820 'identif':532 'identifi':13,421 'immedi':550 'impact':112,325,1068,1071,1081,1156 'implement':208,608,664,693,706,725,748,868,887,1096,1104 'import':681 'import/directquery/composite':195 'improp':236 'improv':1098 'includ':1153 'increment':670,691 'index':699 'indic':386,900 'ineffici':219,254,291,338,557 'inform':1063 'infrastructur':355,359,729,872,1066,1119 'instead':612,622 'instruct':1143 'integ':651 'intellig':293 'interact':86,144,353,451 'issu':18,44,75,76,97,180,211,246,298,331,358,404,974,1006,1010,1012,1141,1152 'item':464 'iter':260 'join':803 'key':490,898 'larg':212,286,673 'latenc':403 'layout':327 'll':1173 'load':83,138,168,380,746,754,782,851,903,931 'loading/refresh':79 'locat':1056 'made':1111 'mani':222,224,333 'many-to-mani':221 'max':307 'maxim':703 'maximum':607 'measur':204,661,815,1042 'memori':162,364,392,481,506,517,946 'methodolog':62 'metric':134,136,486,491,513,922,1039,1128,1160 'minut':768,945 'miss':234,275,798 'mobil':326,848 'mode':193,679,682,715,723,807 'model':22,46,78,155,160,178,182,184,210,213,553,641,711,822,864,911,979,1117 'modif':1113 'monitor':493,510,535,727,760,875,889,894,897,965,1133 'month':975 'multipl':624 'name':1053 'necessari':867 'need':987 'nest':288 'network':367,402,1058 'number':302,776,1074 'obvious':773 'occur':106,1019 'occurr':927 'ongo':1136 'open':440 'oper':425 'opportun':981 'optim':262,328,351,554,577,599,633,642,648,680,683,695,697,700,721,745,750,758,810,826,834,858,891,980,996,1094 'overhead':259 'page':82,137,306,603,783,902,930 'pane':443 'particular':1036 'pattern':268,272,294,342,381,483,508,523,558,831,846,884,917 'per':305,602 'percentil':910 'perform':4,9,17,28,36,43,74,80,84,128,133,179,245,269,300,324,373,377,400,413,441,485,525,539,551,560,676,726,759,770,839,849,885,893,899,959,977,991,1000,1009,1016,1038,1041,1044,1049,1097,1127,1151,1159 'plan':474,874,983 'pool':708 'poor':239,350,559 'possibl':663 'power':2,7,20,26,34,409,737,1149 'power-bi-performance-troubleshoot':1 'pre':688 'pre-aggreg':687 'premium':533 'pressur':393 'previous':1048,1165 'previousmonth':568,574,586,590,596,597 'proactiv':896 'problem':65,1017 'process':892,1080 'prompt':11 'proper':665 'provid':54,1144,1180 'quarter':989 'queri':25,49,88,149,320,365,395,428,472,484,520,701,907,935,969 'queu':396 'quick':764 'rate':924,953 'realist':854 'recommend':310,1138 'record':417,446 'redesign':865 'reduc':600,630,775,788 'reduct':685 'refresh':156,419,448,524,671,692,912,949 'regular':954 'relationship':188,220,668,720,799 'remov':643 'render':431 'repeat':273 'replac':556,657 'report':23,47,81,114,117,296,299,330,453,598,832,906,1007,1011,1037 'report/model':1052 'requir':135,998,1169 'resolut':1086 'resolv':16,42 'resourc':92,336,530 'respons':87,145 'restructur':836 'result':434,456,1093,1121 'return':593 'review':808,824,958,970,984,992 'role':51 'root':1090 'run':968 'sale':561,564,567,573,579,584,589 'scale':730,732,735,740,873,997 'scan':502 'scenario':125 'schema':667 'scope':68,98 'second':142,148,154,934,939 'select':242,635,716 'server':487 'setup':728,761,878,895,1134 'show':614 'similar':1140 'situat':1187 'size':161,185,214 'skill' 'skill-power-bi-performance-troubleshooting' 'slicer':319,346,634 'slow':781,967 'slow-load':780 'slow-run':966 'slowest':422,813 'solut':60,548,677,1088,1183 'sourc':95,372,719,838 'source-github' 'special':38 'specif':104,108,113,1015,1025,1034,1148,1181 'speed':90 'star':666 'start':445 'step':63,126,169,1107,1109 'step-by-step':1106 'storag':192,475,499,678,714,806 'strateg':713,857,990 'strategi':690,712,871 'studio':467 'summari':1089 'sustain':391 'symptom':1154 'systemat':6,55,171,1177 'tabl':207,238,287,647,705 'tailor':1184 'target':140,146,152,1045 'techniqu':408,686 'technolog':993 'templat':1008 'test':850,852,1102 'text':229,653 'threshold':540,929 'time':109,139,151,292,420,432,488,904,909,932,937,1026 'timeout':398,926 'tool':406,412 'top':811 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'total':494,563,566,572,583,588 'track':526 'train':880,986 'transit':258 'trend':519,543,914,964 'troubleshoot':5,10,29,56,61,762,1166 'type':197,241,312,650 'unnecessari':217,792 'unus':644 'updat':994,1002 'urgenc':1073 'usag':205,438,480,507,883,921,1142 'use':173,278,617,669,827,1085 'user':102,105,167,379,527,844,856,879,918,971,985,1033,1055,1076,1129 'util':165,362,389,518,537,842,916,947,963 'valid':1100,1132 'var':581,585 'vari':158 'variabl':253,276,828 'verifi':804 'version':578 'vertic':734 'view':621 'visual':85,143,304,311,323,334,349,352,418,423,430,449,601,625,778 'volum':366,521,632,790 'vs':103,110,115,123,203,429,477,652,655 'warn':394 'week':861,957 'win':765 'without':252 'workaround':1082 'workflow':763 'workload':545,742","prices":[{"id":"1b50c506-2828-4bfa-8a7f-170b531edc5f","listingId":"ab4a61c9-aaea-4426-9822-be503f539ea9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:26:07.189Z"}],"sources":[{"listingId":"ab4a61c9-aaea-4426-9822-be503f539ea9","source":"github","sourceId":"github/awesome-copilot/power-bi-performance-troubleshooting","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/power-bi-performance-troubleshooting","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:36.447Z","lastSeenAt":"2026-05-18T18:52:20.451Z"},{"listingId":"ab4a61c9-aaea-4426-9822-be503f539ea9","source":"skills_sh","sourceId":"github/awesome-copilot/power-bi-performance-troubleshooting","sourceUrl":"https://skills.sh/github/awesome-copilot/power-bi-performance-troubleshooting","isPrimary":true,"firstSeenAt":"2026-04-18T20:26:07.189Z","lastSeenAt":"2026-05-07T22:40:18.732Z"}],"details":{"listingId":"ab4a61c9-aaea-4426-9822-be503f539ea9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"power-bi-performance-troubleshooting","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"89c04bb05952cc013346ae063afc225d06994ffc","skill_md_path":"skills/power-bi-performance-troubleshooting/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/power-bi-performance-troubleshooting"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"power-bi-performance-troubleshooting","description":"Systematic Power BI performance troubleshooting prompt for identifying, diagnosing, and resolving performance issues in Power BI models, reports, and queries."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/power-bi-performance-troubleshooting"},"updatedAt":"2026-05-18T18:52:20.451Z"}}