Problems displaying this newsletter? View online.
SQL Server Central
Featured Contents
Question of the Day
The Voice of the DBA
 

What is a Failed Deployment?

When talking about DevOps, the goal is to produce better software over time. Both better quality as well as a smoother process of getting bits to your clients. There are a number of metrics typically used to measure how well a software team is performing, and one of the things is Change fail percentage. This is the percentage of deployments that causes a failure in production, which means a hotfix or rollback is needed. Essentially we need to fail forward or roll back to get things working.

For most people, a failed deployment means downtime. I've caused a service to be down (or a page or an app) because of a code change I made. This includes the database, as a schema change could cause the application to fail. Maybe we've renamed something (always a bad idea) and the app hasn't updated. Maybe we added a new column to a table and some other code has an insert statement without a column list that won't run. There are any number of database changes that might require a hotfix or rollback and could be considered a failure.

However, some people see an expanded definition. If a service is degraded (slower), is that a failure? Some people think so. If we change code in a database (or indexes) and see performance slow down. In that case, is this a failed deployment? Customers would think so. Developers might not like this idea, at least not without some sort of SLA that might allow for some things to be a little slower. After all, slow is still working, right?

What if I don't notice a problem? Imagine I add a new table/column, and the app starts accepting data and storing it. What if we are supposed to use this data downstream, and we don't notice it is being aggregated incorrectly by a process until many days later. Perhaps we've performed some manipulation or calculation on our data and the result isn't what we wanted. It might not be incorrect, but maybe it's ignoring NULLs when we want NULLs treated as 0s.

Is that a failure? If I deploy today and Bob or Sue notices next week that the data isn't correct, that's a failure. I don't know I'd count downtime from today until next week, but from when Bob/Sue files a ticket, the clock starts on calculating the MTTR (mean time to recovery).

I don't often see database deployments failing from the "will it compile on the production server" standpoint. Most code gets tested on at least one other system, and with any sort of process, we catch those simple errors. More often than not, we find performance slowdowns or misunderstood requirements/specifications. In those cases, some of you might consider this a failure and some may not. I suppose it depends on whether these issues get triaged as important enough to fix.

While I might have a wide definition of deployment failures for most coding problems, I don't for a performance slowdown. Far too few people really pay attention to code performance and are happy to let bad code live in their production systems for years.

Steve Jones - SSC Editor

Join the debate, and respond to today's editorial on the forums

 
  Featured Contents
SQLServerCentral Article

Dimensional Modeling Case Study Part 3 - Dynamic Days Dimension

Hang Liu from SQLServerCentral

In this next installment of the date dimension series, learn how to create a table that supports different types of banding.

External Article

Real-time Data Streaming in Snowflake

Additional Articles from SimpleTalk

Real-time data ingestion has become essential for modern analytics and operational intelligence. Organizations across industries need to process data streams from IoT sensors, financial transactions, and application events with minimal latency. Snowflake offers two robust approaches to meet these real-time data needs: Snowpipe for near-real-time file-based streaming and Direct Streaming via Snowpark API for true real-time data integration.

Blog Post

From the SQL Server Central Blogs - The Book of Redgate: Ingeniously Simple

Steve Jones - SSC Editor from The Voice of the DBA

Redgate has been known for many useful tools that are easy to use. We’ve tried to do that in all our point tools. We talk about simplicity all the...

Blog Post

From the SQL Server Central Blogs - Vertically scaling SQL Server online in Kubernetes

[email protected] from The DBA Who Came In From The Cold

One of the new features in Kubernetes v1.33 is the ability to resize CPU and memory resources for containers online, aka without having to recreate the pod the container...

SQL Server 2022 Query Performance Tuning

Grant Fritchey from SQLServerCentral

Troubleshoot slow-performing queries and make them run faster. Database administrators and SQL developers are constantly under pressure to provide more speed. This new edition has been redesigned and rewritten from scratch based on the last 15 years of learning, knowledge, and experience accumulated by the author. The book Includes expanded information on using extended events, automatic execution plan correction, and other advanced features now available in SQL Server.

 

  Question of the Day

Today's question (by Steve Jones - SSC Editor):

 

Generating a Series I

What is returned by this code in SQL Server 2022?
SELECT value FROM GENERATE_SERIES(4, 1);

Think you know the answer? Click here, and find out if you are right.

 

 

  Yesterday's Question of the Day (by Steve Jones - SSC Editor)

The Trigger Updated Column(s)

In a trigger, I can use UPDATE() or UPDATED_COLUMNS() to determine which columns were changed. For these functions, which one accepts a column name as a parameter?

Answer: Only the UPDATE() function

Explanation: Only the update function accepts a parameter. It is the column to check. Ref:

Discuss this question and answer on the forums

 

 

 

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.


SQL Server 2016 - Development and T-SQL
Insert bulk fails when Online Index Rebuild is done - Hi, We are getting issue of Insert bulk failed due to schema change of target table. We had created a job to check if fragmentation of table > 30% then to rebuild index online whilst bulk insert is happening in that table. We have around 3 transaction tables in which bulk insert happens and at […]
SQL Server 2019 - Administration
Urgent, Please Help. Named Instance Question - Hello all, I just installed a new named instance on SQL Server 2019 RTM-CU32.  The installation was successful but when I connected to the new named instance, it had all the databases and data from the default instance.  I looked at the properties of a couple databases and both instances (default and named) point to […]
Best/easiest way to import an SSIS package... - Folks, Looking for advice on the best way to import a package. I hope I'm in the right location! Apologies if I'm not. I inherited a system (Sql Server 2019) with an existing SSIS package. The installation notes indicate that you have to be on the server using SSMS v18. The installation notes indicate: 1. […]
balancing numa nodes - Can anybody advise on how i go about balancing threads to each node. As you can see from the below screen shot node_id 2 & 3 and 6 & 7 are offline (another query i ran shows them as OFFLINE VISIBLE). This is sql2019 STANDARD so limited to 48 online schedulers which are currently spread […]
Question about updating statistics - We have very large tables in our database, some even more 1 B records, so updating statistics will take many hours. Would it be a good idea to skip those tables that have ratio of modified records to total number of records less than 0.5 percent? That's because number of buckets in statistics histogram is […]
SQL Server 2019 - Development
SSIS raw file conversion - Hi, Does anyone know how to handle a raw data file where some rows contain carriage return characters? The problem is that certain rows, which should be treated as a single line, are being split into multiple lines due to embedded carriage returns in the file. The file was exported using isql from Sybase, not […]
Error converting data type varchar to float - Hi everyone I have a bunch of CSV files that I need to import into SS using BULK INSERT.  One file works fine.  The other fails.  Both have the same setup...there is one column that has no data in it so there is only a column header.  I used the logic from the CSV file […]
How to convert this to datetime format? - hi everyone I have a CSV that is storing date as "20180919T201400+0000".  I am using BULK INSERT to import the file.  How do I convert varchar "20180919T201400+0000" to a datetime format that SS can understand? My attempt: CONVERT(VARCHAR(25),REPLACE(ANNOUNCE_DATETIME,'"',''),126) AS ANNOUNCE_DATETIME Error: Conversion failed when converting date and/or time from character string. Thank you
telephones and sql - hi im pretty sure i could trigger a page on a pager if i had to from t-sql. but triggering a phone call doesnt appear to be as easy.   does the community know for sure?   perhaps of an approach that doesnt require i bring python , 3rd party software , maybe clr etc into the […]
Problem with CASE statement - Hi Everyone I have used CASE many times but not sure what I am doing wrong here.  SS won't accept it.  What am I doing wrong?  How can I fix it? SQL ALTER PROCEDURE [dbo].[WIP_UpdateEvents] (@FILENAME varchar(200), @RECORD_ADD_DATE datetime) AS DECLARE @FILEPATH VARCHAR(200) SET @FILEPATH = @FILENAME DECLARE @RECORD_ADD_DT varchar(26) SET @RECORD_ADD_DT = convert(varchar(26),@RECORD_ADD_DATE,121) DROP […]
Strategies and Ideas
Measure duplicating its value when non-conformed dimension attribute is included - Hi,   I have two fact tables (say FactA, and FactB), that are joined/shared by three dimensions (dimA/B/C) in-between the two fact tables (conformed dimensions). Fact A contains a list of finance agreements. FactB contains budgeted sales figures, so we have a figure for each month, for each product, for each sales channel. There is […]
T-SQL
T-SQL - except - add date column - SELECT         [A]       --,[Date]       ,       ,[C]       ,[D]       ,[E]          FROM [Database].[dbo].[Table]   where B = getdate()-4 AND      CheckDate
T-SQL - except - add date column - .
SQL Server 2022 - Administration
Force Strict Encryption - SQL Agent fails - Hi, On my SQL 2022 (16.0.4195.2) test environment, I tried to enable Force Strict Encryption. To do this: - I generated a certificate using ps script :    $newCertificate = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName "DEV-SERVER.domain.local","DEV-SERVER" -FriendlyName "Cert_Test" -KeySpec KeyExchange -Provider "Microsoft RSA SChannel    Cryptographic Provider" -TextExtension "2.5.29.37={text}1.3.6.1.5.5.7.3.1" # Convert the report server password to […]
SQL Server 2022 - Development
High Availability Reversed - Force secondary unless failure - Hi I have sql2022 in H/A with a primary and a secondary server. My problem is that I have a query that I need to force it to run the secondary. But I need to point to the listener in case of failover, which is always pointed at the primary. Is there any kinda of […]
 

 

RSS FeedTwitter

This email has been sent to [email protected]. To be removed from this list, please click here. If you have any problems leaving the list, please contact the [email protected]. This newsletter was sent to you because you signed up at SQLServerCentral.com.
©2019 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
[email protected]

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -