Occasionally, I have the DBA-equivalent of the tidy-nest instinct, the urge to remove clutter from my servers. Whenever I've installed SQL Server over recent years, for example, my subconscious mind signals to my right index finger to de-select the checkbox that opts in to sending SQL Server error reports to Microsoft. Their "Customer Experience Improvement Program (CEIP)" wants this data in order to understand what features we use and how, and so improve them. A laudable goal, but I'm a DBA who likes a SQL Server that focuses all of its attention on my user databases and processes, rather than spending valuable time gathering and sending data about my usage of them.
During a recent SQL Server 2016 installation, however, I couldn't find the familiar checkbox. Hmm, I mused, maybe all of that previous telemetry had taught Microsoft hat 98.9% of DBAs opt out of sending this data, so they gave up on the idea of collecting it!
Whether or not that 98.9% statistic is true (I made it up), it turns out that CEIP is far from gone. I was deep into a failover cluster installation when I noticed a "cluster resource" that was failing to start. I blinked a few times in disbelief; this "resource", sitting right there in my new Windows 2016 SQL cluster, turned out to be "SQL Server CEIP". It was failing to start because of a dependency on SQL Server itself, which in turn could not start because of a misconfigured TempDB location. As soon as I fixed SQL Server, CEIP fired right up and presumably began phoning home its telemetry data.
Later, during a spot of query tuning, I noticed, in the Query Store charts, a lot of "internal" queries cluttering up the usual list of user database queries. They looked suspiciously like extended events queries. Sure enough, when I opened up SSMS object explorer, there was a brand new built-in session called telemetry_xevents. While reviewing my wait statistics, I saw a lot more of these types of queries, all related, as it turns out, to CEIP.
I love the sound of telemetry, mainly because it reminds me of the movie Apollo 13, but what was all this doing here on my SQL Server 2016 server? I felt sure that I hadn't missed the opt-in checkbox, even if it was lurking in some different part of the installation. No, this telemetric data gathering is now on by default. For Standard and Enterprise Editions, you can turn it off by subsequently setting a registry-based policy. For Developer, Express and Evaluation Editions, you can't turn it off.
This gave me pause for thought. I like the way that Microsoft has gifted us, in Standard Edition of SQL Server 2016 SP1, many Enterprise Edition features. Was this decision the result of analyzing the data from CEIP? After all, much of the telemetry_xevents session is collecting data about these features. Could this data also have helped Microsoft understand the need, for example, to bring Power BI to SSRS on premises? If so, then I am grateful, and for now at least will try forget about it chugging along in the background, telemetrically sending its data to the space cloud.
Rodney Landrum (guest editor)