-
1. Introduction
2-
1.1 IntroductionLecture1.1
-
1.2 PrerequisitesLecture1.2
-
-
2. Download software, demos, and book
0No items in this section -
3 .Introducing optimization with examples
6-
3.1 Introducing optimization with examplesLecture3.1
-
3.2 IntroductionLecture3.2
-
3.3 Optimizing DAXLecture3.3
-
3.4 Optimizing the modelLecture3.4
-
3.5 ConclusionsLecture3.5
-
3.6 Links to external contentLecture3.6
-
-
4. Introducing the Tabular query architecture
9-
4.1 .Introducing the Tabular query architectureLecture4.1
-
4.2 IntroductionLecture4.2
-
4.3 Introducing the formula engineLecture4.3
-
4.4 Introducing VertiPaq and DirectQuery architecturesLecture4.4
-
4.5 Introducing the VertiPaq storage engineLecture4.5
-
4.6 Introducing the DirectQuery over SQL storage engineLecture4.6
-
4.7 Introducing DirectQuery over ASLecture4.7
-
4.8 Introducing data islands and cross-island query resolutionLecture4.8
-
4.9 Different types of modelsLecture4.9
-
-
5. Using the Power BI Desktop performance analyzer
8-
5.1 Using the Power BI Desktop performance analyzerLecture5.1
-
5.2 IntroductionLecture5.2
-
5.3 Running Performance AnalyzerLecture5.3
-
5.4 Understanding the numbers reported by Performance AnalyzerLecture5.4
-
5.5 Optimizing queries or measures?Lecture5.5
-
5.6 What can be optimizedLecture5.6
-
5.7 Saving performance dataLecture5.7
-
5.8 ConclusionsLecture5.8
-
-
6. Using DAX Studio
9-
6.1 Using DAX StudioLecture6.1
-
6.2 IntroductionLecture6.2
-
6.3 Installing DAX StudioLecture6.3
-
6.4 Introducing the metrics of a databaseLecture6.4
-
6.5 Introducing All QueriesLecture6.5
-
6.6 Capturing Excel queries (MDX)Lecture6.6
-
6.7 Introducing Load Performance DataLecture6.7
-
6.8 Introducing Query Plan and Server TimingsLecture6.8
-
6.9 Links to external contentLecture6.9
-
-
7. Introducing query plans
7-
7.1 Introducing query plansLecture7.1
-
7.2 IntroductionLecture7.2
-
7.3 Introducing the logical query planLecture7.3
-
7.4 Introducing the physical query planLecture7.4
-
7.5 Introducing storage engine queriesLecture7.5
-
7.6 Query plans in DirectQueryLecture7.6
-
7.7 ConclusionsLecture7.7
-
-
8. Understanding the DAX Formula Engine
14-
8.1 Understanding the DAX Formula EngineLecture8.1
-
8.2 IntroductionLecture8.2
-
8.3 Understanding datacachesLecture8.3
-
8.4 Understanding materializationLecture8.4
-
8.5 Understanding callbacksLecture8.5
-
8.6 Formula engine with different storage enginesLecture8.6
-
8.7 Understanding vertical fusionLecture8.7
-
8.8 Understanding horizontal fusionLecture8.8
-
8.9A Sales of best productsLecture8.9
-
8.9B Top three colorsLecture8.10
-
8.10 Measuring performanceLecture8.11
-
8.11 Gathering important timings from the query planLecture8.12
-
8.12 Analyzing query plans and timingsLecture8.13
-
8.13 ConclusionsLecture8.14
-
-
9. Understanding query plans
11-
9.1 Understanding query plansLecture9.1
-
9.2 IntroductionLecture9.2
-
9.3 Query plan structureLecture9.3
-
9.4 Query plan operator typesLecture9.4
-
9.5 Interactions between the formula engine and the storage engineLecture9.5
-
9.6 Common query plan operatorsLecture9.6
-
9.7A Comparing SUM versus SUMXLecture9.7
-
9.7B IF versus IF.EAGERLecture9.8
-
9.7C Filtering with DAX versus using relationshipsLecture9.9
-
9.7D Understanding SWITCH optimizationLecture9.10
-
9.8 ConclusionsLecture9.11
-
-
10. Optimizing the formula engine
7-
10.1 Optimizing the formula engineLecture10.1
-
10.2 IntroductionLecture10.2
-
10.3 Optimizing datacache useLecture10.3
-
10.4 Sales of best productsLecture10.4
-
10.5 Running total of sales and ABC analysisLecture10.5
-
10.6 Year-over-year customer growth as a percentageLecture10.6
-
10.7 ConclusionsLecture10.7
-
-
11. Understanding the VertiPaq engine
14-
11.1 Understanding the VertiPaq engineLecture11.1
-
11.2 IntroductionLecture11.2
-
11.3 Using VertiPaq AnalyzerLecture11.3
-
11.4 Tabular data typesLecture11.4
-
11.5 Introduction to the VertiPaq columnar databaseLecture11.5
-
11.6 Understanding VertiPaq compressionLecture11.6
-
11.7 Understanding segmentation and partitioningLecture11.7
-
11.8 Understanding the importance of sortingLecture11.8
-
11.9 Understanding VertiPaq relationshipsLecture11.9
-
11.10 Understanding attribute hierarchiesLecture11.10
-
11.11A Sales amount versus quantity and net priceLecture11.11
-
11.11B Storing currency conversion dataLecture11.12
-
11.11C Date time versus date and timeLecture11.13
-
11.12 ConclusionsLecture11.14
-
-
12. Understanding VertiPaq relationships
7-
12.1 Understanding VertiPaq relationshipsLecture12.1
-
12.2 IntroductionLecture12.2
-
12.3 Regular, unidirectional one-to-many relationshipsLecture12.3
-
12.4 Regular, bidirectional one-to-many relationshipsLecture12.4
-
12.5 Regular, one-to-one relationshipsLecture12.5
-
12.6 Limited, many-to-many cardinality relationshipsLecture12.6
-
12.7 ConclusionsLecture12.7
-
-
13. Analyzing VertiPaq storage engine queries
20-
13.1 Analyzing VertiPaq storage engine queriesLecture13.1
-
13.2 IntroductionLecture13.2
-
13.3 Analyzing simple xmSQL queriesLecture13.3
-
13.4 Introducing basic VertiPaq functionalitiesLecture13.4
-
13.5 Introducing batchesLecture13.5
-
13.6 Understanding internal and external SE queriesLecture13.6
-
13.7 Understanding distinct count in xmSQLLecture13.7
-
13.8A Introducing VertiPaq joinsLecture13.8
-
13.8B Introducing bitmap indexesLecture13.9
-
13.8C Introducing reverse joinsLecture13.10
-
13.9A Understanding VertiCalc and callbacksLecture13.11
-
13.9B Understanding CallbackDataIDLecture13.12
-
13.9C Understanding EncodeCallbackLecture13.13
-
13.9D Understanding LogAbsValueCallbackLecture13.14
-
13.9E Understanding RoundValueCallbackLecture13.15
-
13.9F Understanding MinMaxColumnPositionCallbackLecture13.16
-
13.9G Understanding CondLecture13.17
-
13.10 Understanding the VertiPaq cacheLecture13.18
-
13.11 Choosing the correct data type for VertiPaq calculationsLecture13.19
-
13.12 ConclusionsLecture13.20
-
-
14. Moving and applying filters to tables
14-
14.1 Optimizing common DAX constructsLecture14.1
-
14.2 IntroductionLecture14.2
-
14.3A Different filters in CALCULATELecture14.3
-
14.3B Analyzing single-column filtersLecture14.4
-
14.3C Analyzing multiple-column filtersLecture14.5
-
14.3D Analyzing filters over multiple tablesLecture14.6
-
14.4 Understanding sparse or dense filtersLecture14.7
-
14.5 Filter columns, not tablesLecture14.8
-
14.6A Modeling many-to-many relationshipsLecture14.9
-
14.6B Testing the bidirectional modelLecture14.10
-
14.6C Testing the star modelLecture14.11
-
14.6D Testing the snake modelLecture14.12
-
14.6E Testing the advanced snake modelLecture14.13
-
14.7 ConclusionsLecture14.14
-
-
15. Optimization examples for VertiPaq
12-
15.1 Optimization examples for VertiPaqLecture15.1
-
15.2 IntroductionLecture15.2
-
15.3 Optimizing nested iterationsLecture15.3
-
15.4 Understanding the effect of context transitionLecture15.4
-
15.5 Different ways of performing a distinct countLecture15.5
-
15.6 Optimizing LASTDATE calculationsLecture15.6
-
15.7 Avoid using SUMMARIZE and clusteringLecture15.7
-
15.8 Optimizing division by checking for zeroesLecture15.8
-
15.9 Reducing the extent of the search by removing blanksLecture15.9
-
15.10 Optimizing time intelligence calculationsLecture15.10
-
15.11 Distinct count over large cardinality columns’Lecture15.11
-
15.12 ConclusionsLecture15.12
-
-
16. Understanding security optimizations
9-
16.1 Understanding security optimizationsLecture16.1
-
16.2 IntroductionLecture16.2
-
16.3 Testing security conditions and their performance impactLecture16.3
-
16.4 Understanding when and where security is enforcedLecture16.4
-
16.5 Understanding cached bitmap indexes and embedded filtersLecture16.5
-
16.6 Optimizing dynamic securityLecture16.6
-
16.7 Optimizing static security on the fact tableLecture16.7
-
16.8 Optimizing dynamic security on the fact tableLecture16.8
-
16.9 ConclusionsLecture16.9
-
-
17. Understanding DirectQuery over SQL
16-
17.1 IntroductionLecture17.1
-
17.2 Reading SQL code in this courseLecture17.2
-
17.3 Reading the numbers in DAX StudioLecture17.3
-
17.4 Callback operationsLecture17.4
-
17.5 Calculated tablesLecture17.5
-
17.6 Calculated columnsLecture17.6
-
17.7 How caching works in DirectQuery over SQLLecture17.7
-
17.8 Understanding latency to send queries to the remote serverLecture17.8
-
17.9 Max number of rows in a data cacheLecture17.9
-
17.10A Regular one-to-many relationshipsLecture17.10
-
17.10B Limited many-to-many relationshipsLecture17.11
-
17.10C One-to-one relationshipsLecture17.12
-
17.11 DirectQuery over SQL max parallel queriesLecture17.13
-
17.12 Using different data islandsLecture17.14
-
17.13 Introducing aggregations and hybrid tablesLecture17.15
-
17.14 ConclusionsLecture17.16
-
-
18. Optimizing DirectQuery over SQL
21-
18.1 IntroductionLecture18.1
-
18.1A IntroductionLecture18.2
-
18.1B Designing indexesLecture18.3
-
18.1C Using columnstore indexesLecture18.4
-
18.1D Choosing column data typesLecture18.5
-
18.1E Do not use Power Query transformationsLecture18.6
-
18.2A Choosing the best data type for relationshipsLecture18.7
-
18.2B Relying on referential integrityLecture18.8
-
18.2C Using COMBINEVALUES to implement multi-column relationshipsLecture18.9
-
18.3A Introducing aggregationsLecture18.10
-
18.3B Introducing VertiPaq aggregation and Dual storage modeLecture18.11
-
18.3C Designing aggregations for simple calculationsLecture18.12
-
18.3D Designing aggregations for row-level calculationLecture18.13
-
18.3E Designing aggregations for distinct countLecture18.14
-
18.3F Aggregations are not VertiPaq aliases of DirectQuery tablesLecture18.15
-
18.3G Manually activating aggregations in DAXLecture18.16
-
18.3H Using automatic aggregationsLecture18.17
-
18.4A Introducing hybrid tablesLecture18.18
-
18.4B Hybrid tables and distinct countLecture18.19
-
18.4C Creating hybrid tables with incremental refreshLecture18.20
-
18.5 ConclusionsLecture18.21
-
-
19. Optimization examples for DirectQuery
6-
19.1 IntroductionLecture19.1
-
19.2 Optimizing LASTDATE calculationsLecture19.2
-
19.3 Optimizing division by checking for zeroesLecture19.3
-
19.4 Optimizing time intelligence calculationsLecture19.4
-
19.5 Computing distinct countsLecture19.5
-
19.6 ConclusionsLecture19.6
-
-
20. Conclusion
0No items in this section
This content is protected, please login and enroll course to view this content!
Prev
11.12 Conclusions
Next
12.2 Introduction
