SQL

My thoughts on SQL Server on Linux

Well yesterday was a big day in the SQL Community, Microsoft announced that they will be developing a version of SQL Server for Linux. Check out the announcement here.

SQL Server <3's Linux

Image Source – Microsoft – http://bit.ly/1U8Afd3

This leaves us with a lot of questions, in talking with one of my customers this morning he asked some pretty cool questions. Here’s how the conversation went…

Friend of Redgate 2016

I’m excited to announce that I have been named a Friend of Redgate for 2016. The program targets influential people in their respective technical communities such as SQL,.NET and ALM and enables us to participate in the conversation around product and community development.

Last year was my first year in the program and the value that it provides to the community is immeasurable. I got to see first hand the dedication Redgate has to the SQL community and to making great software. I met a ton of really cool, very dedicated people along the way. Thanks for the recognition and I look forward to another great year!

Speaking at SQLSaturday Chicago

I’m proud to announce that I will be speaking at SQLSaturday Chicago on March 5th 2016! This will be my first SQLSaturday event and I’m really excited that I get to do it as a speaker. I look forward to seeing you there!

My presentation is “Performance Monitoring AlwaysOn Availability Groups”

Here’s the abstract for the talk

Have you deployed Availability Groups in your data center? Are you monitoring your Availability Groups to ensure you can meet your recovery objectives? If you haven’t this is the session for you. We will discuss the importance of monitoring and trending Availability Group Replication, how AGs move data between replicas and the impact replication latency can have on the availability of your systems. We’ll also give you the tools and techniques to go back to the office and get started monitoring and trending right away!

Public Speaking – The First Time

Update for T-SQL Tuesday #84

Well, this year I was challenged with the goal of speaking publicly three times, well I blew that out of the water and have spoken 8 times (one of which was a major IT conference) this year with one more on deck for Friday at the Albuquerque SQL Server User Group. I never thought it would have gone this far, but it certainly is fun and exciting. I encourage you to set a goal, even if it’s speaking only one time…set the goal and do it! You’ll be surprised where it takes you, the great people you meet along the way and the support those same folks give you!

Thanks Paul!

What I’ve noticed this year is that there’s really not another group of people like the SQL Community.  Earlier this year Paul Randal ( b | t ), in the name of community, offered his services to mentor to a small group of people. Check it out here. Crazy as it may sound he went ahead and offered mentoring to everyone that submitted here and I was on that list. Here’s my blog post submission

Load Testing Your Storage Subsystem with Diskspd – Part III

In our final post in our “Load Testing Your Storage Subsystem with Diskspd” series, we’re going to look at output from Diskspd and run some tests and interpret results. In our first post we showed how performance can vary based on access pattern and IO size. In our second post we showed how to design a test to highlight those performance characteristics and in this post we’ll execute those tests and review the results.  First let’s walk through the output from Diskspd, for now don’t focus on the actual results.

Load Testing Your Storage Subsystem with Diskspd – Part II

In this post we’re going discuss how to implement load testing of your storage subsystem with DiskSpd. We’re going to craft tests to measure bandwidth and latency for specific access patterns and IO sizes. In the last post “Load Testing Your Storage Subsystem with Diskspd”  we looked closely at access patterns and I/O size and discussed the impact each has on key performance attributes.

Diskspd command options

Let’s start with some common command options, don’t get caught up on the syntax. Diskspd’s documentation is fantastic. It’s included with the program download here. Here I’m going to tell you why I set these settings this way, so you can adjust them as needed for your environments.

Encrypting Connections To SQL Server Using Certificates

Encrypting Connections To SQL Server Using Certificates

In this post we’re going to cover configuring a connection string in.NET applications for encrypting connections to SQL Server using certificates. The audience for this document is a developer that needs to configure encrypted connections from applications to a database server.

Encrypting connections with SQL Server using Certificates consists of two parts:

  • An appropriately configured connection string
  • A server certificate installed on the Database Engine (not covered in this post)

Configuring a Connection String

Load Testing Your Storage Subsystem with Diskspd

One of the primary activities I do before bringing SQL Server into production is load testing the storage subsystem. On a new system this is critical because I want to ensure that we’re “getting what we’ve paid for” when it comes to the disk subsystem. All too often there’s a configuration issue, component mismatch, a fundamental misunderstanding of the technology or worse an insufficient disk subsystem…these all can lead to poor disk performance. Even if it’s the simplest test, its imperative to measure performance as it’s significantly harder to make changes to a SQL Server once a database is in production. So do your testing. This is especially an important topic if your disks are not direct attached or in a shared storage environment such as a SAN or VMware data store. Storage networks, controllers, shelves…it gets complicated fast!

Monitoring Availability Groups with Redgate SQL Monitor

In previous posts here and here we discussed AlwaysOn Availability Group replication latency and monitoring concepts, specifically the importance of monitoring the send_queue and redo_queue. In this post I’m going to show you a technique for monitoring Availability Group replication latency with Redgate SQL Monitor and its Custom Metric functionality.

Here’s the rub, monitoring AGs is a little interesting for the following reasons

  1. We’re interested in trending and monitoring and that isn’t built into SQL Server or SSMS’s AlwaysOn Dashboard.  Both provide only point in time values.
  2. We’ll need to monitor the health of the Availability Group as a whole. So we want to track performance data on all replicas in the AG. But interestingly the redo queue and send queue values in the DMVs on the primary are always NULL. So we need to get those values from the secondary replicas.
  3. Further, to work this into SQL Monitor’s Custom Metric framework we’ll need to limit our query’s result set to a single row and value.

Redo Queue

The redo queue is the amount of log records that haven’t been sent to a secondary replica in an AG. We want to track this as it is a measure of the amount of data on a secondary that is not yet redone into the database and can impact operations offloaded to secondaries