Presentation is loading. Please wait.

Presentation is loading. Please wait.

Power Query & Database Tuning

Similar presentations


Presentation on theme: "Power Query & Database Tuning"— Presentation transcript:

1 Power Query & Database Tuning
Ernest Ostrander Power Query & Database Tuning aka Making Sense of Statistics IO

2 DBA Track

3 Ernest Ostrander About me…
Currently living in Bogota, Colombia Using SQL Server since SQL Server 7.0 Certified in SQL Server 2012/2014. Let’s connect:

4 Sample Tuning Technique: Query Folding
What is Query Folding? Combining This: UPDATE dbo.Customers SET CustomerName = rtrim(ltrim(CustomerName)) SET CustomerCity = rtrim(ltrim(CustomerCity)) Into This: UPDATE dbo.Customers SET CustomerName = rtrim(ltrim(CustomerName)) ,CustomerCity = rtrim(ltrim(CustomerCity)) 2 Table Scans 1 Table Scan

5 Sample Tuning Technique: Refactoring
Refactoring code can mean many things… Use a #temp table to replace commonly used inputs. Use EXISTS() clause to replace more expensive subqueries or outer joins. to store intermediate results and “short circuit” execution.

6 …Tuning Technique: Tracking STATISTICS IO
Characteristics of These Tuning Opportunities? No one query shows up on a hit parade of evil queries. Looking at execution plans won’t help. Adding indexes likely just disguises the core issue. Manual detection is key. This technique is for monitoring progress toward a solution, not detecting opportunities.

7 Tracking STATISTICS IO?
Measurement Technique: Statistics IO Limitations of Statistics IO Does not report statistics for operations inside function calls. Pre-SQL2012 SP2, reports incorrect results unless explicitly declaring MAXDOP = 1

8 Tracking Statistics IO
How does this technique help? It helps interpret this……. Table 'StoredProcAudit'. Scan count 0, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (0 row(s) affected) Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (1 row(s) affected) Table 'PurchaseOrderDetail'. Scan count 5, logical reads 34763, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5245, logical reads 16378, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 0, logical reads 15735, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatusDetail'. Scan count 1, logical reads 57, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 1, logical reads 11283, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatus'. Scan count 1, logical reads 2899, physical reads 1, read-ahead reads 2441, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 4, logical reads 70, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 2, logical reads 5367, physical reads 2, read-ahead reads 16, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (15 row(s) affected) Table 'PurchaseOrder'. Scan count 1, logical reads 2517, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'InvoiceDetail'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Invoice'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 16, logical reads 11346, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatus'. Scan count 1, logical reads 2899, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 0, logical reads , physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count , logical reads , physical reads 471, read-ahead reads 10820, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads 11401, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 5852, read-ahead reads 73125, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'InvoiceDetail'. Scan count 2, logical reads 4, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 4, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 88, logical reads 16816, physical reads 1258, read-ahead reads 15558, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 886, read-ahead reads 24004, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 5, logical reads 2765, physical reads 2, read-ahead reads 732, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (602 row(s) affected) Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 672, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 3, logical reads 2526, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 24, logical reads 12056, physical reads 547, read-ahead reads 11509, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 3, logical reads 10790, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 2, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 5, logical reads 2765, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 4854, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatus'. Scan count 1, logical reads 2905, physical reads 3, read-ahead reads 2345, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (2576 row(s) affected) Table 'PurchaseOrder'. Scan count 1, logical reads 34318, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5245, logical reads 47278, physical reads 3, read-ahead reads 192, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatusDetail'. Scan count 5, logical reads 196, physical reads 2, read-ahead reads 133, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (2 row(s) affected) Table 'Oracle_PurchaseOrder'. Scan count 1, logical reads , physical reads 1, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (3 row(s) affected) Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 14874, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatus'. Scan count 1, logical reads 4, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 5, logical reads 37767, physical reads 0, read-ahead reads 34205, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 3, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 1, logical reads 5, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderExportStatusDetail'. Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Vendor'. Scan count 6, logical reads 1527, physical reads 1, read-ahead reads 381, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'CCluster'. Scan count 2, logical reads 4, physical reads 1, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderStatus'. Scan count 2, logical reads 4, physical reads 1, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Site'. Scan count 5, logical reads 1444, physical reads 3, read-ahead reads 1265, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ShipLocation'. Scan count 3, logical reads 9, physical reads 1, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 4220, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count , logical reads , physical reads 1559, read-ahead reads 34165, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Project'. Scan count 6, logical reads 70737, physical reads 3, read-ahead reads 67549, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 396, logical reads , physical reads 97656, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 48930, logical reads , physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderType'. Scan count 1, logical reads 2, physical reads 1, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads , read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectMaterial'. Scan count , logical reads , physical reads 58967, read-ahead reads 5252, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 0, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. ( row(s) affected) Table 'ProjectDriver'. Scan count 5, logical reads , physical reads 2, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriverVendor'. Scan count , logical reads , physical reads 45127, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count , logical reads , physical reads 91912, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 0, logical reads , physical reads 0, read-ahead reads 39, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 96, logical reads , physical reads 24165, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. ( row(s) affected) Table 'Oracle_PurchaseOrder'. Scan count 1, logical reads , physical reads 1, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 1, logical reads 2517, physical reads 0, read-ahead reads 441, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 0, logical reads 1539, physical reads 3, read-ahead reads 35, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Project'. Scan count 2, logical reads 64696, physical reads 3, read-ahead reads 34561, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 9, logical reads 188, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (99543 row(s) affected) Table 'Vendor'. Scan count 2, logical reads 762, physical reads 1, read-ahead reads 381, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (55 row(s) affected) ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table '#newpos_____________________________________________________________________________________________________________ '. Scan count 1, logical reads 3681, physical reads 0, read- Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 472, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_PurchaseOrder'. Scan count 5, logical reads , physical reads 528, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriverVendor'. Scan count 1, logical reads , physical reads 31058, read-ahead reads 484, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count , logical reads , physical reads 18019, read-ahead reads 7132, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriver'. Scan count 5, logical reads , physical reads 1, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectMaterial'. Scan count 6, logical reads , physical reads 0, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count , logical reads , physical reads 746, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 5, logical reads 3063, physical reads 2, read-ahead reads 2566, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (219 row(s) affected) Table 'Worktable'. Scan count 2, logical reads , physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 4841, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 337, logical reads 29608, physical reads 3087, read-ahead reads 28025, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriver'. Scan count 5, logical reads , physical reads 1, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriverVendor'. Scan count 6, logical reads 78075, physical reads 0, read-ahead reads 43816, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 19317, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 5, logical reads 3063, physical reads 1, read-ahead reads 1059, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. ( row(s) affected) Table 'ProjectMaterial'. Scan count 6, logical reads , physical reads 0, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 6, logical reads , physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 725, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count 5, logical reads 3063, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. ( row(s) affected) Table 'Worktable'. Scan count 2, logical reads 1444, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Oracle_ItemCrossRef'. Scan count 5, logical reads 96, physical reads 0, read-ahead reads 96, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (346 row(s) affected) Table 'ProjectMaterial'. Scan count 6, logical reads , physical reads 0, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrder'. Scan count , logical reads , physical reads 0, read-ahead reads 41, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectMaterial'. Scan count 10, logical reads 28797, physical reads 1, read-ahead reads 8878, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 2, logical reads 11646, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Material'. Scan count 5, logical reads 2326, physical reads 3, read-ahead reads 2118, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 92, logical reads 37912, physical reads 4395, read-ahead reads 33517, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 24, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriverVendor'. Scan count 6, logical reads 39065, physical reads 0, read-ahead reads 39210, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (2802 row(s) affected) Table 'Worktable'. Scan count 2, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectDriver'. Scan count 5, logical reads , physical reads 0, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 18, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 337, logical reads 29248, physical reads 3021, read-ahead reads 27563, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads 40871, physical reads 0, read-ahead reads 17913, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectMaterial'. Scan count 5, logical reads , physical reads 0, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Worktable'. Scan count 3, logical reads , physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'PurchaseOrderDetail'. Scan count 5, logical reads , physical reads 66, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (37 row(s) affected) Table 'Vendor'. Scan count 2, logical reads 760, physical reads 1, read-ahead reads 381, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Workfile'. Scan count 14, logical reads 7224, physical reads 338, read-ahead reads 6886, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'ProjectMaterial'. Scan count 1, logical reads , physical reads 139, read-ahead reads , lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Vendor'. Scan count 2, logical reads 766, physical reads 0, read-ahead reads 3, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. ( row(s) affected) Table 'PurchaseOrder'. Scan count 1, logical reads 2782, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'Vendor'. Scan count 1, logical reads 6113, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. ( row(s) affected) Table 'PurchaseOrderDetail'. Scan count 1, logical reads 31733, physical reads 0, read-ahead reads 10063, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. (2865 row(s) affected) Table 'Oracle_Vendors'. Scan count 1, logical reads 2920, physical reads 0, read-ahead reads 2920, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. Table 'StoredProcAudit'. Scan count 0, logical reads 3, physical reads 3, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

9 Tracking STATISTICS IO
Real World Example: 8 runs of query optimization

10 Tracking STATISTICS IO
DEMO

11 Tracking STATISTICS IO
Power Query…

12 Power Query: Language Flow
Evaluation is like a stored procedure with no body. This Power Query expression (ignore syntax specifics): let Source = Sql.Database("localhost", "AdventureWorksDW2012"), DimEmployee = Source{[Schema="dbo",Item=“DimEmployee"]}[Data], DimRaise = DimEmployee{Salary}*1.05, in DimRaise Translates (ignore syntax specifics) into this: CREATE PROCEDURE PowerQuery @Source = nvarchar(File) = Source{[Salary]} * 1.05

13 Tracking STATISTICS IO
DEMO

14 Tips and Tricks Leverage the UI
4/11/ :43 PM Tips and Tricks Leverage the UI Generate steps using the UI, then tweak the code. Formatting is easier in the UI. Some things only work through the UI (“auto steps”). © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

15 Resources Install the Power Query Add-in (for Excel 2013 / Excel 2010)
4/11/ :43 PM Resources Install the Power Query Add-in (for Excel 2013 / Excel 2010) Dive into the Language and Library Language reference: Library reference: Office help: © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

16 Resources Learning TechNet msdn http://channel9.msdn.com/Events/TechEd
4/11/2019 Resources Sessions on Demand Learning Microsoft Certification & Training Resources TechNet Resources for IT Professionals msdn Resources for Developers © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

17


Download ppt "Power Query & Database Tuning"

Similar presentations


Ads by Google