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

Hire Well

In the last few years, I've noticed that the quality of technical workers can vary quite a bit in many organizations. I think most people get things done, but often not at a high-quality level. It's one reason that I write, speak, and try to motivate more of you to work on your skills and your career. I want to see better software being built.

I tend to work with more database developers than application developers and I tend to see more SQL code than C#/Java/etc. And I see a lot of poorly written SQL Code and poor data models that seem to have been built without a lot of thought put into them. Whether this is because of ignorance or just poor skills is hard to know, but I see a lot of code that makes me slightly cringe.

Over time, many of us see that this technical debt limits our ability to improve things or make changes. Often these systemic issues linger because the development staff a) doesn't know how to fix them, b) has other, higher priorities, or c) is afraid to try and make changes. Often it's a combination of all three, which further limits the agility of the database and application teams. We end up struggling to keep up with customer demands, or we may pile on more and more technical debt. Often this leads to increased performance problems in the database.

I was reading about development and staffing in this piece, which had an interesting quote: "I currently believe that there's only one way to buy yourself out of technical issues and bad data models, and that's buying a really talented engineer whose sole focus is fixing the problem." Essentially, you need to do two things here. First, hire a smart engineer, and second, empower them to effect change. In many cases, I think you actually need two smart engineers: one database engineer and one application software engineer. Those people have to focus on improvements, refactoring bad data models and the code that depends on them, and slowly raising the level of quality.

The piece gets a little sidetracked with the way vendors promise their products will fix your problems. In general, that's not true, at least not without you adapting your process to their software. In my role, I'm careful not to promise more than I can deliver, and not try to minimize the effort required to change. I know it's somewhere between using 10% time and a major overhaul, and I hope I convey that to clients.

Ultimately, I think that we haven't commoditized lots of software development, which is the point of the piece and the quote above. We need to get talented people, or we need to train them, or both. We need people that enjoy their jobs and find some purpose or satisfaction. Part of that is making their jobs more interesting and enjoyable.

That also means there are many opportunities if you learn to be good at your job. Learn to build good data models. Keep up your skills that write efficient code, learn how to troubleshoot, and learn how to work well with others. None of those are easy skills to develop, nor are they quick to learn, but they can be learned with some effort. Document your progress, blog/write/speak, and I bet you'll find your career prospects improving.

Steve Jones - SSC Editor

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

 
 Featured Contents
SQLServerCentral Article

Configuration of Azure SQL Database Auditing

Almighty from SQLServerCentral

This article shows how you can configure auditing on your Azure SQL Database.

External Article

Understanding the Importance of Data Lineage in Modern Data Management

Additional Articles from Redgate

Data lineage is a component of modern data management that helps organizations understand the origins, transformations, and movement of their data. It is like a road map that shows us where our data has been, how it has changed, and where it is going, just like tracking the journey of a package:

Blog Post

From the SQL Server Central Blogs - Using AI to create test data

Daniel Janik from Confessions of a Microsoft Addict

Have you ever been tasked with creating test data for an application and then ran into performance problems once the application moves to production? Many of us manage databases...

Blog Post

From the SQL Server Central Blogs - Common Data Mesh exceptions

James Serra from James Serra's Blog

When it comes to data meshes that have been constructed or are currently under development, I have not observed any instances where the four core data mesh principles have...

Big Data Analytics cover

Big Data Analytics with Spark: A Practitioner's Guide to Using Spark for Large Scale Data Analysis

Site Owners from SQLServerCentral

Big Data Analytics with Spark is a step-by-step guide for learning Spark, which is an open-source fast and general-purpose cluster computing framework for large-scale data analysis. You will learn how to use Spark for different types of big data analytics projects, including batch, interactive, graph, and stream data analysis as well as machine learning. In addition, this book will help you become a much sought-after Spark expert.

SQL Server 2022 Query Performance Tuning

SQL Server 2022 Query Performance Tuning: Troubleshoot and Optimize Query Performance

Additional Articles 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):

 

The Certificate User

I want to run this on my SQL Server 2022 instance.  I have a master key in the database that is open and the ETL schema exists. What happens with this code?
CREATE CERTIFICATE ETLUserCert 
    WITH SUBJECT = 'ETL User',  
    EXPIRY_DATE = '11/11/2024';  
GO  
CREATE USER ETLUser FOR CERTIFICATE ETLUserCert
 WITH DEFAULT_SCHEMA = ETL;
GO

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)

What is the rounded result?

What is the result from this code on SQL Server 2019?

SET NUMERIC_ROUNDABORT OFF;  
SET ARITHABORT ON;  
GO  
DECLARE @result DECIMAL(5, 2),  
   @value_1 DECIMAL(5, 4),   
   @value_2 DECIMAL(5, 4);  
SET @value_1 = 1.1234;  
SET @value_2 = 1.1234 ;  
SELECT @result = @value_1 + @value_2;  
SELECT @result;  
GO

Answer: 2.25

Explanation: The result is 2.25. There is a loss of precision from rounding, but the SET NUMERIC_ROUNDABORT prevents the error. Ref: NUMERIC_ROUNABORT - https://learn.microsoft.com/en-us/sql/t-sql/statements/set-numeric-roundabort-transact-sql?view=sql-server-ver16

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 2017 - Administration
Security port scanning triggering Event ID 9642 only few servers - Hello SQL experts, We have several always on servers & mirroring servers (in lower versions). we are seeing below alerts in sql logs every day at same time on only few of them An error occurred in a Service broker/Database Mirroring transport connection endpoint, Error: 8474, State 11. (Near endpoint role: Target, far endpoint address:”) […]
SQL Server 2016 - Development and T-SQL
Issue with Change Tracking - Hi, I would like to use change tracking to determine the changes to a table. But it seems that data gets lost. Is this a known problem? Microsoft SQL Server 2016 (SP1-CU15) (KB4495257) - 13.0.4574.0 Setting of change tracking (sys.change_tracking_databases) is_auto_cleanup_on: 0 retention_period: 100 retention_period_units: 3 retention_period_units_desc: DAYS max_cleanup_version: NULL After a while I get […]
Administration - SQL Server 2014
DB with MDF and multiple NDFs vs a single large MDF - all on same Logical Drive. - Hello. We have a couple of databases, that were novated as part of an acquisition, that have multiple NDF files as well as an MDF. This is not something that we have ever done deliberately,  and the application vendor does not supply the starter DB in this form. All of our Data files reside on […]
FTS Catalogs Set to Case Sensitive True/False - I understand what the setting means for Collation Sequences and the impact it has on Indexes and in Search. We have a number of FTS catalogs with some set to TRUE and some set to False. What I am looking for is a way to query the Indexed Table Columns in the catalogs  to see […]
SQL Server 2012 - T-SQL
The data types xml and varchar are incompatible in the equal to operator. - Hi I'm trying to return all rows where the field DocumentXML equals 'Document' The data in the field starts like this.  The field has other XML data that starts with
 
RSS Feed
Twitter
This email has been sent to {email}. To be removed from this list, please click here. If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com. 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.
webmaster@sqlservercentral.com

 

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