For years working with blobs in Azure storage, my go to favorite tool has been Clumsyleaf’s CloudXplorer.

For 20% off, please use the code: RANDY20OFF

They’ve actually done an amazing job keeping the app updated as it supports:

Azure Blobs Office 365 Sharepoint Box Oracle Cloud Storage Rackspace Cloud Files Amazon Cloud Drive Google Drive Microsoft OneDrive etc

It’s my favorite because of the drag and drop capability. Some of the utilities out there are more FTP like, but this one works like Windows Explorer.

read more

Blogging Again

Blogging Again

Every now and then I keep promising myself I’m going to start blogging again. So here’s yet another attempt.

This time I’ve decided to use GitHub Pages to host the blog. It took a little bit of work, but I’ve pulled all the old blog posts from the past and they are now all hosted by GitHub and using Jekyll and Markdown.

I’m currently using Typora to write the new pages but it’ll be interesting to see how it works long term, as there have traditionally been some amazing blog writing tools. Oddly enough I switched over to Visual Studio Code to finish this post.

read more

VSTS with code signed PFX certificates

VSTS with code signed PFX certificates

While using VSTS, one of the most common questions is how to code sign your application.  It’s extremely problematic, because there’s no easy way to import a PFX with a password.

Step 1: Add a PowerShell Script and put the following as inline code.

String $(CertPassword) -AsPlainText -Force Write-Output (“$(System.DefaultWorkingDirectory)” + “\Resources\Harvest.pfx”) Import-PfxCertificate -FilePath $(System.DefaultWorkingDirectory)\Resources\mycert.pfx -Password $Secure -CertStoreLocation cert:\CurrentUser\My

Step 2: Add a Variable named CertPassword, put your password into it, then click the lock icon

read more

Performance Tuning in Azure SQL Data Warehouse

Performance Tuning in Azure SQL Data Warehouse

(This was originally posted on 01/09/2016 on another site and has been moved here)

Yesterday I spent over an hour with John Huang (Azure SQL Data Warehouse team) and Martin Lee (MCS – Microsoft Consulting Services).  They were extremely graceful in helping me try to performance tune a very difficult query.  Since SQLDW is so new, they are looking to see how to help the community as a whole in how to tune performance.

So there are two different ways to tune

  1. Tune the table
  2. Tune the query

First we need to tune the table regardless.  This code will write statements that create statistics on all tables.  (Credit of this code goes to John Huang)  If you’d like to only specify one table, then uncomment the commented line and put in the table name in single quotes.  Don’t forget to execute the resulting text.

-- This will create stat for all columns on all objects  SELECT 'CREATE STATISTICS [' + + '_' + + '_stat] ON dbo.[' + + '] ([' + + ']);' AS '--CREATE STATS'
FROM sys.tables, sys.columns
WHERE sys.tables.object_id = sys.columns.object_id
		SELECT NULL  FROM sys.stats_columns  WHERE object_id IN (
			SELECT object_id  FROM sys.stats_columns  GROUP BY object_id  HAVING Count(*) = 1)
		AND object_id = sys.columns.object_id
	AND column_id = sys.columns.column_id)

This is an extremely important step.  Without it, your query will not run efficiently.  One adjustment to the statistics is to create them on columns where you would typically join other tables.  By no means am I a DBA, so you’ll likely need more information from those more qualified on the best methods on statistic creation.

You next want to look at the execution plan for your query

FROM myTable

This will give you an xml document.  Bad things we noticed were things like “BROADCAST_MOVE” which means it’s doing data movement.  Data movement = bad.  Data skew is also bad.

I highly recommend looking at this document:

To make things a little more simple, the first thing I would do is the last item on the list.  Take a look at the skew.

-- Find data skew for a distributed table
DBCC PDW_SHOWSPACEUSED("dbo.FactInternetSales");

Make sure that it’s as even as possible.  The next thing is run the query.  While it’s running you need to find the request id of the query you’re running.

SELECT * FROM sys.dm_pdw_exec_requests WHERE status = 'Running';

Then start watching the execution steps that it’s going through.

SELECT DATEDIFF(SECOND, start_time, end_time) Time_In_Seconds, * FROM sys.dm_pdw_request_steps
WHERE request_id = 'QID247206'  --change this to the request id from the previous query
ORDER BY step_index;

In the first column, you’ll see how much time the query is taking in seconds.  You can look at the other fields for more details.

For now this is all I have but I’ll try to follow up with some actual ways to help tune in the future.  Again a huge thanks to the SQLDW team for helping out.

read more

Power Pivot & Power BI training in Bentonville at Walmart Intl Building

Power Pivot & Power BI training in Bentonville at Walmart Intl Building

Here are Harvest, we’re proud of our partnerships.  Last year we were fortunate to help Walmart International bring in Rob Collie who wrote the book on PowerPivot for training.  We’re very fortunate he’s back here this year again for private on-site training that we are making available to our readers and customers.

What is Power Pivot?

PowerPivot is a built-in Microsoft EXCEL Add In (2013 & 2016 versions, 2010 needs a download).  It works almost exactly like your normal Pivot tables except it allows you to use powerful DAX programming to handle millions of lines worth of data.  Yes, that’s right, you can now exceed your Excel line limits with Power Pivot and you’ve likely had the functionality all this time.

Who’s providing the training?

Rob Collie is both an author and Microsoft awarded professional on PowerPivot.  You can view his blog here at

What’s the cost of the training?

Early Bird prices: $999

After March 8: $1,249

What do I get for being an avid Harvest customer?

15% off!  RW15OFF

What’s the link to register?

read more