The new servicing model for SQL Server is out, with a great explanation from Glenn Berry (there's also a webcast). The summary is that going forward with SQL Server 2017, we won't get Service Packs anymore. I'm somewhat sad, as I was always looking for SPs as a once a year patch if I didn't have any major issues with the platform. This allowed me to keep up to date, but not constantly test smaller patches. I liked that, partly because I've been worried about the quality of CUs in the past.
We've had Cumulative Updates (CU) for quite some time. While I've seen a few service packs pulled and re-released, that's been very rare with CUs. I do find that SPs might have more issues because building one is an out of process, disruptive project, whereas CUs have become a regular, repeatable part of the development process. That's not to say that the CUs are bug free. A few of them have caused issues, and that's a problem that I hope improves over time. However, I also can't imagine what it's like working on such a large codebase, for installation in a large number of environments. It has to be a tremendous challenge to test all cases and remove bugs. Not that there shouldn't be fewer issues, especially in some areas, but I'm not sure there will ever be a complete absence of bugs.
I've changed my mind on CUs, and I like the new servicing model for it's simplicity as well as the automation and deep testing that CUs get. There is no confusion, no resources at Microsoft maintaining an RTM and SP1 branch with patches. I dislike code merges, and I suspect they're often a source of unintended bugs, so the fewer that are done the better. Now we'll have SQL Server 2017 essentially with one branch of code and patches. We'll have CU1-11 in the first year and then CU 12-15 the next year. Across fix years, I'd expect that we'd go from roughly 16 CUs per SP + SP to potentially 28 CUs in a single stream across the five year mainstream support of the product.
I know there are potentially more issues discovered early in a version's life, and hopefully fewer over time as developers write more tests and learn to cover edge cases better. I suspect that we'll see fewer and fewer items in each patch over time. Maybe not right away in SQL 2017, but it seems as though the number of issues corrected in each CU declines over time, and I'd expect that testing and better coverage of feature corner cases will come in the future. Perhaps SQL 2019 or 2020 will have fewer issues in the first year with even more testing.
I know some people see this as a message that the product isn't well tested. That's a fair view, after all, doubling the number of patches in the first year could be taken either way. I prefer to view this as the new way software is being developed. Build a pipeline, including lots of testing and feedback, and be ready to respond quickly if things are broken. I hope that's what Microsoft is thinking, and based on their push for better security and quality, it's the view I'll adopt.
The Voice of the DBA podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music.
How to track every change to your SQL Server database
See who’s changing your database, alongside affected objects, date, time, and reason for the change with SQL Source Control. Get a full change history in your source control system. Learn more
Using SQL Census to audit SQL Server permissions
Redgate have just released SQL Census, a prototype tool that makes auditing SQL Server user access permissions much easier. In this post, Ally Parker shows how it works, tells us what's up next in the tool's development, and explains how you can download it for free. Try the free prototype
Microsoft (StreamInsight), and Azure Stream Analytics represent a very different model for processing data. They are concerned with processing complex event streams of data (CEPs) from such things as sensors to deduce significant patterns and apply filters. Joe Celko discusses the background to an intriguing technology of complex event processing to establish the difference between data at rest, and data on the move. More »
You’ve no doubt heard at least something about the GDPR, the EU’s new privacy and Data Management law with its greatly increased maximum fines for non-compliance and tighter definitions for acceptable use of personal information. If you’ve continued reading past paragraph one of any of the many articles, you’ll be aware that the law applies globally, to all organizations holding EU citizens’ data – it’s not bounded by geography or jurisdiction. More »
Expert T-SQL Window Functions in SQL Server takes you from any level of knowledge of windowing functions and turns you into an expert who can use these powerful functions to solve many T-SQL queries. Replace slow cursors and self-joins with queries that are easy to write and fantastically better performing, all through the magic of window functions. Get your copy from Amazon today.
Yesterday's Question of the Day
(by Steve Jones):
I run this code:
ALTER DATABASE [sandbox2] SET CONTAINMENT = PARTIAL WITH NO_WAIT
I get this error:
Msg 12824, Level 16, State 1, Line 3
The sp_configure value 'contained database authentication' must be set to 1 in order to alter a contained database. You may need to use RECONFIGURE to set the value_in_use.
What is wrong?
Answer: The instance needs the setting "Contained database authentication" turned on
There is an instance level setting that allows contained database authentication. This needs to be run:
EXEC sys.sp_configure N'contained database authentication', N'1'
RECONFIGURE WITH OVERRIDE
Once this is done, the database can be set to contained.
Ref: Migrate to Partially Contained Database - click here
Strange COALESCE issue
I think it's correct to provide a table structure for any questions so I'll include that first:
/****** Object: Table...
- Hi All,
I am using SQL below to get the object dependency.
select Obj.name,dep.referenced_entity_name from sys.sql_modules as Module,sys.objects AS Obj ,sys.sql_expression_dependencies
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.