Why I Use AdventureWorks for Demos

SQL Server 2005, SQL Server 2008, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017
I know that when some people see AdventureWorks, their vision turns all red around the edges, their blood pressure spikes and they begin to foam at the mouth. I do understand. AdventureWorks, Microsoft's very old, near ubiquitous, sample database suffers from a lot off issues. What's The Matter With AdventureWorks? Let's start off with the general design of the schemas. It's broken up in odd ways. Production has a TransactionHistory and a TransactionHistoryArchive instead of Sales? That doesn't make any sense. What the heck is up with the general database design anyway? I mean, pick on one example. A person can have more than one phone number. Fine. But, what about people who share phone numbers like that ancient land line in my house that is only EVER used by…
Read More

Automating T-SQL Code Analysis

Red Gate Software
With all the options available within T-SQL these days, it's more and more imperative that our code be clear and consistent. For example, there are clustered indexes and nonclustered indexes. Oh, but those are rowstore indexes. You also have clustered columnstore and nonclustered columnstore indexes. When you write T-SQL that says "CREATE INDEX MakeMyQueriesFast ON dbo.MySlowTable" which one do you mean? Well, the default there will be a nonclustered rowstore index. How do I know that? I checked the documentation. Oh, same thing will work with a columnstore index. You don't have to specify that it's nonclustered, but doesn't that seem unclear to you? It does to me. Clarity and Understanding You can write T-SQL a bunch of ways. Further, you can do some pretty crazy stuff with it that…
Read More

Database Fundamentals #15: Modifying Data With T-SQL

Database Fundamentals, SQL Server 2005, SQL Server 2008, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017
The preferred method for modifying your data within a database is T-SQL. While the last Fundamentals post showed how to use the GUI to get that done, it's not a very efficient mechanism. T-SQL is efficient. UPDATE The command for updating information in your tables is UPDATE. This command doesn’t work the same way as the INSERT statement. Instead of listing all the columns that are required, meaning columns that don’t allow for NULL values, you can pick and choose the individual columns that you want to update. The operation over-writes the information that was stored in the column with new information. In addition to defining the table and columns you want to update, you have to tell SQL Server which rows you’re interested in updating. This introduces the WHERE…
Read More

I May Never Be a Data Scientist

Data Science
Chances are extremely high that I'll never put down Data Scientist as my job. Considering what you do and what you know, I'll bet a healthy percentage of you are in a similar situation. That's OK. You know why? You know a lot about data, data movement and data processing that a Data Scientist doesn't. They Also Serve I don't know about you, but I'm not standing around waiting to serve. Instead, I'd be actively chasing after any and all Data Scientists within my organization offering to serve. If you can't be the Data Scientist who do you want to be? The Data Scientist's go-to technician. That's me handing over a new data set to the Data Scientist I'm working with: OK, really it's the best James Bond and the…
Read More

Get That Profiler Feel in Extended Events

SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017
I know. You love Profiler. I hear you. You're wrong, but that's OK. Kidding... mostly. Unfortunately though, I think a lot of what passes for issues and problems with Extended Events is actually a lack of knowledge about how they work. Let's take an example and run with it. No Grid in Extended Events One of the pushbacks I hear about using Extended Events is that the Live Data GUI just doesn't have that neat Profiler grid output. Instead you see a list of events in the top pane and then you have to look at the details in the bottom pane. It looks like this out of the gate: You're right. That's a royal pain. That's it. Toss Extended Events. Back to Profiler. Well, hang on a second. Let's…
Read More

Presenting Azure Vs. Working With Azure

I have a real infatuation with Azure. I'm especially interested in the Platform as a Service (PaaS) offerings in and around the Data Platform. I truly believe that these are the subversive elements that are going to change how a lot of us get our jobs done with data. I've worked with Azure SQL Database within my organization and I do lots of experimentation and testing. Any chance I get, I like to present sessions on Azure. Funny thing though, my presentations are never as easy as work, and I think I ought to discuss why. Connectivity, Connectivity, Connectivity In case you can't tell, I'm starting off talking about connectivity. However, this is an important topic. When I'm working on Azure, I'm usually hooked up to my home office or…
Read More

The GDPR and You

Professional Development
Ever heard of the General Data Protection Regulation? If not, go and read the Wiki. I'll wait. I can already hear what you're thinking. "Grant, this doesn't apply to me because my company is in the <insert non-EU country here>." How do I know you're thinking that? Because every single person with whom I've brought this up has had the same response. You might want to go back and re-read it. Data Subject There are three terms from the GDPR that you need to know. The first is Data Controller. This is any organization or individual that collects data from the Data Subject. If the Data Controller is located in the EU, then you're subject to the new regulations. Yes, I know, this means you don't have to worry. Hang…
Read More

Extended Events and Profiler: XE Profiler

SQL Server 2017
There's a war on in the SQL Server world. On the one side is Profiler (although, really, everyone uses Trace Events). On the other, the "new" (they came out in 2008 with a full GUI in 2012, so...) Extended Events. Lots of people have picked sides on this, including Microsoft. New Trace Events There are none. All the new functionality of every sort from Availability Groups to Query Store to R & Python, have Extended Events created for them. Trace Events, and the technologies supporting them in the form of Profiler, are a dead end. Don't fear. While Trace is on the deprecation list, there doesn't appear to be any fear of that technology being removed completely. At least it won't be removed in the foreseeable future. A future which,…
Read More

Inside My PASS Summit

As you read this, I'm in Seattle for the PASS Summit 2017. I have four roles that I satisfy at Summit; Vendor through my glorious employer Redgate Software, Board Member of the PASS organization, Speaker, and Attendee. Let me tell you about my Summit that's coming up. What is PASS? But first, a word from... well, they're not a sponsor of this blog in any way, but PASS and the community that creates and runs it made my career what it is today. PASS is the single largest organization in the world today supporting training, networking and knowledge sharing in and around the Microsoft Data Platform. The organization runs Local Groups around the world that offer free training all year round. PASS supports SQLSaturday events globally. There are also Virtual…
Read More