Hi there.

I'm Ben. I'm a product manager at Redgate Software, spending most of my time working on performance tooling for .NET and SQL Server. I like learning new things, especially about technology or space (bonus points for both). I play piano and violin, and Bananagrams is my sport of choice. I currently live in Cambridge, UK.

Twitter Twitter      LinkedIn LinkedIn      GitHub GitHub

Ben Emmett

Things I've enjoyed

SurveyMonkey API

An open source .NET library I built for consuming SurveyMonkey's v3 API. This is a ground-up rewrite of my previous library for their v2 API.

SurveyImport & SurveySearch

These tools make it easy to import data from SurveyMonkey into SQL Server, and to search it for long-lost customer insight.

Entity Framework performance

A pretty long article talking through all the ways Entity Framework's performance can go wrong, and how you can make it un-wrong.

.NET memory internals

A talk I did at the awesome NDC conference, discussing how memory management works in .NET, as well as how it might break.

Competitor comparisons

A blog post about why getting vendors to do your competitor comparisons for you probably isn't the best idea.

Recent Posts

Word Guesser game 25th March 2018

A small game for two people, where you take it in turns to guess as many words as possible in 60 seconds. I mainly built this to learn a few things about Azure SQL Database and Azure App Service, but it was fun too. Best played on a phone.


Redgate's support for Managed Instances 8th March 2018

Azure SQL Database Managed Instances are a new PaaS database offering from Microsoft, taking care of many operational aspects like ensuring high availability, backups, and applying patches, which makes them simpler and less time-consuming to administer. This article describes Redgate's support for the new service.


How Great DBAs Manage Their Day 28th February 2018

A session I did with Kathi Kellenberger for Redgate's SQL in the City, where we discussed some of the ways a great DBA finds to manage their day, as well as some new capabilities we've introduced to SQL Monitor 8 aiming to help with this.


First Experience Migrating a .NET App to Core 27th February 2018

An account of migrating a .NET Framework application to .NET Core 2.0, with advice on what worked well and where the sticking points were.


Unearthing Bad Deployments with SQL Monitor and Redgate’s Database DevOps Tools 5th September 2017

To provide contextual information about deployments when investigation performance issues in SQL Monitor, we built a really helpful integration with Redgate's deployment tools.


SQL Monitor plans for the second half of 2017 24th July 2017

An overview of my team's plans for the second half of 2017. My view is always that the benefits of being open and transparent about our plans (enabling more and better feedback from users, helping customers plan for the future, and keeping us honest) overwhelmingly outweigh any concerns about competitors seeing what's coming up.


SurveyImport and SurveySearch 24th June 2017

This new tool, built of my earlier .NET library for SurveyMonkey, imports entire SurveyMonkey accounts to a SQL Server instance and then searches that data by keyword, making it easy to uncover gems of information locked away in historic survey responses.


SQL Monitor Review of 2016 13th December 2016

A recap of what my team shipped in 2016, and laying out our roadmap for the first half of 2017.


Using SQL Monitor with SCOM 21st November 2016

SQL Monitor's SNMP support makes it possible to pass information about SQL Server incidents into System Center Operations Manager. SCOM doesn't make this easy, so this walkthrough shows how you can set it up to ingest alert data from SQL Monitor.


Integrating SQL Monitor Alerts with Other Systems 11th November 2016

SQL Monitor raises configurable alerts whenever SQL Server incidents occur. Now, as well as sending those notifications by email, they can be posted to Slack, or sent as SNMP traps to allow integration with other system.


Azure Database and Query Store support in ANTS Performance Profiler 3rd May 2016

Azure SQL DB v12 and SQL Server 2016 introduce a new feature called Query Store, which Microsoft present as a "Flight data recorder for your database". We look at how you can retrieve and view execution plans.


Why you have to do your own competitor comparison 19th April 2016

People evaluating our software often ask us to send them an analysis document showing how we stack up against our competitors. It’s a very reasonable request, but because it’s one I always turn down I thought it would be worth sharing why I don’t think they’re meaningful.


ANTS Performance Profiler 9.5 and ANTS Memory Profiler 8.10 released 3rd March 2016

We've just shipped updates to both our profilers with some pretty significant performance improvements. I wanted to talk through how that was possible.


Betas of Performance Improvements in the ANTS Profilers 14th January 2016

A note that we've been doing some work on the performance of our profilers.


Entity Framework Performance and What You Can Do About It 16th December 2015

I love Entity Framework, but I often see it used in ways that cause poor performance. This is a writeup of the most common and important ways that things go wrong, as well as how to fix those problems. It was originally going to be a short post, but 6000 words later...


Stop your application killing database performance 16th October 2015

I just had loads of fun speaking at Redgate's SQL in the City conference! I talked about overly chatty applications, greedy code which prevents SQL Server doing its job efficiently, as well as looking at the performance challenges which ORMs like Entity Framework present for developers and DBAs alike. Here's the recording.


Beta release of C#6 support in .NET Reflector 5th August 2015

C#6 has a lot of nice capabilities which should make people's lives easier. We've been working on decompilation support for those features in .NET Reflector, available now in version 9.0 beta.


ANTS Performance Profiler 9.2 and ANTS Memory Profiler 8.7 Released 20th July 2015

We just shipped DNX support in both our performance and memory profilers, as well as several other smaller improvements.


Redgate's support for Visual Studio 2015 30th June 2015

Visual Studio 2015's release date is now public, and Redgate has been ensuring all our tools will have support. As several people have asked about it, here are the details.


Beta support for ASP.NET 5 DNX projects in ANTS profilers 4th June 2015

With the recent discussion of DNX and the future of ASP.NET, I wanted to share new betas of the support for profiling these project types in ANTS.


Setting up Windows 10 IoT Core on Raspberry Pi from a VM 3rd May 2015

Following Build last week, I wanted to try running Universal Apps on a Raspberry Pi 2, but the setup instructions mention having to provision the SD card from a physical Windows 10 machine. Until Microsoft make an image available, here's how you can avoid the need for a physical Windows 10 machine.


Understand SQL Server's impact on .NET performance with ANTS Performance Profiler 9 20th November 2014

For some time, ANTS has shown you information about database queries, and even how the code you wrote is responsible for them running. This has been useful for identifying slow queries or overly-chatty applications making too many database requests, which is particularly common when misusing ORMs. Unfortunately until now, once a slow query was identified it could still be difficult to understand why it was slow. This big new release lets you go much further by showing you execution plans.


Picks for NDC London 2014 2nd November 2014

I'm speaking at NDC London in a few weeks. It's an awesome conference which I'm really excited to be a part of. The agenda's looking great, so I thought I'd share the sessions I'm particularly looking forward to.


ANTS Performance Profiler v8.6 release, and what's coming next 4th September 2014

Some notes about upcoming behind-the-scenes changes we've made to ANTS, as well as what we'll be working on next.


New .NET Library for Accessing the Survey Monkey API 10th August 2014

I've used Survey Monkey’s API for a while, and though it's pretty powerful, there's a lot of boilerplate each time it's used in a new project, and the json it returns needs a bunch of processing to be able to use the raw information. So I've finally got around to releasing a .NET library you can use to consume the API more easily.


Killing memory usage with dynamically generated assemblies 20th December 2013

There’s a nasty memory leak which the .NET Framework can suffer from when using certain classes - in particular XmlSerializer - when assemblies are repeatedly loaded into memory and not reused correctly. Here's a look at that problem and how you can detect it happening in your own code.


Saving your agile project: proper Post-it peeling 29th November 2013

Many's the time post-its have gone missing from a scrum board, leading to problems down the road. Here's my top tip for avoiding that.


Getting people the right information at the right time 19th November 2013

It's frustrating speaking to someone about your product and for them to say "I really with it did x", where x is a thing it already does. Bottom line though - if the capability's not discoverable, you almost might as well not have bothered.


Clever memory usage through the years 24th October 2013

A friend and I were recently talking about the really clever tricks people have used to get the most out of memory. I thought I'd share my favourites, and would love to hear yours too!


New database profiling support in ANTS Performance Profiler 7th October 2013

Since ANTS shipped database profiling support, one of the most frequent requests is to support additional database connectors. This is the list of new ones we support as of version 8.3.


ANTS Memory Profiler 8 released! 2nd October 2013

With ANTS Memory Profiler 8 shipping this week, I wanted to walk through how the new version can help diagnose problems to do with .NET's usage of unmanaged memory.


ANTS Memory Profiler 8 Beta Available! 7th August 2013

A quick note to say that we've just released a beta of ANTS Memory Profiler 8.


ANTS Performance Profiler 8 released 17th April 2013

My team just released version 8 of ANTS Performance Profiler :-) This post is a quick walk through the new functionality.


Join us for a bug hunt – there are prizes! 5th March 2013

When we launch major new versions of products, we often run internal 'bug hunts', giving people from across the company who don't work on that product a chance to break it. This time we're going to try doing this process publicly. Join us - we'll even order a pizza to your office!


Doh! This is why we run beta programs 6th February 2013

It's taken us weeks to understand why many of our beta users haven't been able to do anything with recent builds. Having made the headdesk realisation of what was going on, we wanted to share the story...


Web Request Profiling in ANTS Performance Profiler 1st February 2013

Web request profiling lets you see any requests made by your application out to other web services. A quick look at this new feature.


Announcing the Beta of ANTS Performance Profiler 8 24th January 2013

After several months of development effort we're ready to share a first beta of ANTS Performance Profiler 8. Here are the details.