Azure SQL DW Performance: CTAS/Partition Switching VS UPDATE/DELETE

DML operations can be resource intensive and harmful to CCI indexes in Azure SQL Data Warehouse. The main performance benefit comes from UPDATE & DELETE operations being fully logged and CTAS is minimally logged. There is also advantages to recreating the CCI index VS modifying it with a DML statement. The preferred method is to…


APS AU7 Performance Enhancements

Appliance Update 7 (AU7) for Microsoft’s Analytic Platform System (APS) brings with it a couple of much anticipated performance enhancements. The first is through new functionality by enabling AUTO UPDATE and AUTO CREATE statistics for appliance level stats objects. We always had auto stats on the compute nodes for the local SQL instances to utilize,…


SET IMPLICIT_TRANSACTIONS Behavior On Azure SQL Data Warehouse and APS

Working with transactions in Azure SQL Data Warehouse (ADW) and the Analytics Platform System (APS, aka PDW) is a bit different than one would expect. Though most of us tend to operate under the default behavior with IMPLICIT_TRANSACTIONS OFF, developers that interact with ADW/APS using other languages may find transaction handling using their language constructs…


Performance: Investigate Inconsistent Query Execution Times

This post applies to both APS and Azure SQL DW   There is a reasonable expectation that if a query is executed in a controlled environment multiple times it will have minimal variance in total execution time when no changes are made to the system, data or query.  When a variance is experienced it should…


APS Monitoring solutions

APS features an out of the box monitoring portal which allows users to review APS components health state as well as monitor resources consumption and workload executions. We’re talking about the Admin Console. You can check out more on how to Monitor the appliance using Admin Console from the official documentation page. Amongst the monitoring…


APS / PDW Best Practices: Linked Server: OpenQuery VS EXEC

Many users utilize Linked Server functionality in order to issue queries to PDW using SSMS.  This is completely supported and a practical way of processing.  However it is important to pay attention to how you are issuing the queries through PDW.  There are two popular methods, either using OPENQUERY or EXEC.   The latter is the…


PDW Execution Plans: Why are you shuffling my data?!

One of the objectives when architecting a database on a PDW system is to do so with the goal of  minimizing  data movement.  Some data movement is unavailable.  It is important to be able to read an execution plan to be able to determine why a shuffle move, or any data movement for that matter,…


Loading performance – DWLoader, distribution keys and source files

There are several ways to load data in PDW: SSIS, DWLoader client, and with the latest release BCP also(*) In this post I will discuss a specific performance scenario when loading data with DWLoader. You can refer to .CHM for all details on DWLoader client, parameters, syntax, remarks… The first thing to check when looking…


APS / PDW DMVs Explained

In this post we are going to discuss different types of DMV’s in PDW and where the data comes from.   The concept of DMV’s is not new and is taken straight out of SMP SQL Server.  In the appliance though, you don’t need information from just a single instance.  You need it from multiple…


APS/PDW Query Performance: Lock Status

A common scenario customers report is queries which ran quickly yesterday, are taking longer today.  Today I want to cover one aspect that may be causing this behavior: locks.   Most appliances out there have a combination of ETL, ELT, and ad hoc queries.  It is possible one of those ad hoc queries is blocking the…

6