Category: Editorial

  • 20 Years of Compare

    When we started SQLServerCentral, there were originally 7 of us. We all decided to “invest” $50 to get the site going. With this seed money, we paid for a VM that hosted both SQL Server and IIS. This was enough money to run the site for 6+ months, and we set about building an online educational community and trying to raise some revenue by selling advertising.

    Our first customer was Redgate Software, and the primary reason that we approached them was SQL Compare. At the time, one of my partners was a very happy customer of SQL Compare and thought that others should know about it. The rest is history, with SQLServerCentral, Redgate, and SQL Compare growing and changing across the years.

    That was 18 years ago, and Redgate turns 20 this year, having grown and changed quite a bit in that time. In conjunction with the celebration, we’re releasing SQL Compare v14, with a Linux command line version. That’s something I could never have conceived up in 2001 when we started SQLServerCentral. There are plenty of other features in the new version, and I’m amazed at how useful the SQL Compare technology has become two decades after its first release.

    SQL Compare is the industry standard technology for comparing databases. It powers our Database DevOps automation tools as well as many manual processes that tens of thousands of customers run every day. From synchronizing work between developers to detecting drift to building rollback scripts, SQL Compare ensures that many of us can find out the state of the various instances in our environments. It’s a simple technology, but one that hundreds of thousands of people depend on every day.

    When I first heard of this product, I never imagined that this would be as popular a tool as it has become. The idea of comparing two databases to find the differences was something novel at one point. Today, it’s become an indispensable part of many developers’ workday. Join me today and wish Redgate and SQL Compare a Happy Birthday, and tune into SQL in the City Streamed later on today, where we’ll talk a little about SQL Compare and its history.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Republish: Surfing

    I wish I was surfing, but no, just traveling for work. You get Surfing.

  • Always Check on the Basics

    I’ve been working with SQL Server for a long time, and one of the things I’ve learned is to not assume others view the platform and its administration needs in the same way that I do. I have usually started examining new instances with the same skepticism I’d use if my Mom told me she’d installed the software. I’m sure she could do it, and likely use some wizard and Google to get some backup scheme implemented, but I don’t know that it would be the schema I’d want to use.

    This week I noticed a piece from Lori Brown, of SQLRx, which talked about a few basic settings that I’d always want running on my systems. One of these is the CHECKSUM setting. It’s a checkbox in the SSMS dialog, and an option in T-SQL. Most third party tools, like SQL Backup Pro, include similar settings. To me, this ought not to be a setting, but rather a default that always runs. NO_CHECKSUM is the default, which is silly in 2019.

    In any case, I’ve seen more than a few presentations on the backup process in SQL Server. They always seem to be beginner sessions, always have more people than I expect, and remind me that this process, which is solid and stable, still has a lot that people don’t think about. There are certainly nuances to performing backups, and restores, in a manner that doesn’t generate any RGEs.

    I don’t usually use the VERIFYONLY option, as to me the file isn’t really tested until it’s restore. This is one reason I recommend having a process to regularly restore your backup files on a test system. Not for use, though you can certainly use them, but more just to ensure your file system, your storage network, all the hardware involved hasn’t caused any issues with the backup file. If you build a server for this process, make sure you add enough RAM, as someone recently learned.

    My feeling is that backup and restore is the most critical aspect of managing your SQL Server instances. This is the first thing I get working, and the number one ongoing concern I have to ensuring data is available. Second would be security, and everything else follows from there, but having a solid backup and restore process is the foundation of all other system administration.

    There are lots of ways you can learn more. We have articles, a free ebook, and more at SQLServerCentral. The best way, however, is what Lori has done. Do some testing. Run through some scenarios, check how long things take in your environment, and ensure that your backups are capable of meeting the RTO and RPO needs of your organization.

    Steve Jones

  • Do You Deal with UTF-8?

    Microsoft is adding UTF-8 support in Azure SQL Database, and it will be coming in SQL Server 2019. If you don’t know what this is, perhaps you want to read a bit about it, as it can save space if you have the need to use Unicode characters. This format uses a variable number of bytes to encode characters, and this is often used on the web and email. My question today is:

    Are you looking to store data in UTF-8?

    The way this works with SQL Server can be complex. In fact, not everyone thinks this is really done well, as there are some bugs in the initial versions. As I’ve watched some people try to work with this, it is a very confusing and complex topic. I thought this might be a simple “SQL Server handles everything” collation, but it doesn’t appear that this will be the case. Calculating space needed for data isn’t as simple as I might expect. Not having to prefix strings with N is nice, but I’m not sure that this will actually work in practice.

    I’ve seen some discussions of how to work with this, and it’s complicated. In fact, it’s not easy to tell how much storage you might need for characters. The storage differences can be confusing, depending on the code range you work with. Since most of us know that our users will try to add data we would never expect to our database, and we might run into issues with not enough space. For those of us specifying the size for our columns, we now need to know how many bytes are in use, not characters.

    Likely this is easy for those of us that work in the English world and stick with varchar, but maybe not. I’m curious today how many of you will attempt to work with UTF-8 (or are waiting for it). It would also be good to know about any challenges or issues you’ve had working with the encoding in other systems or languages.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.