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

A Tool is Better than a Script

While working with a customer recently, I heard this sentence: a tool is better than a script. The reference was that this customer preferred a known, tested, approved tool for most of their staff rather than a script built, lightly tested, and perhaps changeable by anyone in their organization.

I was surprised, because in many ways, I've depended way more on scripts, more often, than "tools" in my career. Often I struggled to find tools that actually worked in the way I wanted them to and built them myself with Unix shell utilities, VB Script, PowerShell, or some combination of those or other technologies.

I asked them if they wouldn't prefer to customize things and let one of their senior people write their tools. They said that it wasn't necessarily a problem for a few people, but too many people might edit and change the script, even the senior people, and then others couldn't depend on them. They weren't sure if they were reliable if a known script wasn't being run. Even among their senior people, someone would edit a script then they thought something wasn't quite right, or there was a new requirement and then the script would return unpredictable results.

I felt they didn't completely trust their staff, but I also understand. I've changed my own "tools" and broken them or gotten back incorrect results. Depending on what the script did, and how busy I was, I might not even notice the problems. That might cause me problems if I expect data or actions to occur one way and they work differently.

Scripts can be changed by anyone.  The results might not be what's expected on a team. I get that. At some point in my career, I put all our DBA "scripts" or "tools" into a version control system and we had a path to the trunk (main) branch of them that was read-only, so that we knew what was being executed. If we wanted to change the script, we had to open an branch in the repo, make our edits, and then have another DBA approve the change before it would be merged into the main, and subsequently pulled into the folder in our path. This didn't prevent changes, but it did give us some versions and history of changes.

There's a balance between flexibility and customization that is challenging to tread amongst team members. Sometimes a known, reliable execution is better than one that changes too quickly. We've been asked at Redgate Software to ensure people using Redgate Monitor can audit what actions are taken in the tool. Sometimes a team member changes a setting, such as an alert threshold, and other team members aren't aware. That can impact their ability to diagnose problems when they assume the tool works one way, but it's actually working another way.

Tools we decide to use, whether purchased or OSS, won't always do what we need. There is a requirement to build our own, but we also need some expectation and assumption of how they work. Especially in a team. I don't want to have to re-read the code every time I run a tool; I should know how it works.

At the same time, I can't have every tool change each time someone wants something new. I love sp_whoisactive, but I depend on it working a certain way and wouldn't want Grant to change how it reports data unless I know about the change.

Working in a team requires teamwork, which means that whatever type of tools we buy/download/build, we need to ensure we all are aware of how they work.

Steve Jones - SSC Editor

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

 
 Featured Contents
SQLServerCentral Article

Understanding Deadlock Victim Selection in SQL Server

john.martin from SQLServerCentral

A short introduction to how deadlocks work and how you can affect their behavior inside your system.

External Article

Net Present Value and Internal Rate of Return in SQL Server

Additional Articles from SimpleTalk

Many organizations store cash-flow data inside SQL Server and decision-makers often need metrics like Net Present Value (NPV) and Internal Rate of Return (IRR) to evaluate those cash flows. Is it possible to calculate NPV and IIR values in SQL Server without the use of external tools?

Blog Post

From the SQL Server Central Blogs - Beware of Generic SQL Server License Keys (What to Use Instead)

SQLPals from Mission: SQL Homeostasis

Beware of Generic SQL Server License Keys (What to Use Instead)

I (think) realize that content here is probably more applicable to mid-to-large organizations than small...

Blog Post

From the SQL Server Central Blogs - On Speaking Well

K. Brian Kelley from Databases – Infrastructure – Security

Professor Patrick Winston of MIT used to give a one-hour talk about how to speak. Though Professor Winston is no longer with us, his talk still is. If you...

Learn Microsoft Fabric: A practical guide to performing data analytics in the era of artificial intelligence

Site Owners from SQLServerCentral

A step-by-step guide to harness the power of Microsoft Fabric in developing data analytics solutions for various use cases

 

 Question of the Day

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

 

Increase Deadlock Detection

How can I alter the deadlock detection interval to 2 seconds instead of 5 seconds on my SQL Server 2025 instance?

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)

How Long is a Long I/O?

In SQL Server 2025, a long I/O is recorded in the error log with message 833. How long much an I/O request be outstanding before this message is written to the log?

Answer: 15s

Explanation: The interval is 15 seconds. Ref: Disk I/O - https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-storage-guide?view=sql-server-ver17

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 2019 - Administration
Having Issue deploying a report to an on prem server from PowerBI desktop - Using PowerBI Version1.25.9508.3237(January 2026). Installed Microsoft Power BI Desktop (Optimized for Power BI Report Server - January 2026). I get an error when I try to deploy a simple report to the on prem server. 2026-04-29 14:31:28.5398|ERROR|8|library|Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ItemNotFoundException: , Microsoft.ReportingServices.Diagnostics.Utilities.ItemNotFoundException: The item '/PowerBI/Test2.pbix' cannot be found.;| RequestID = s_472c98e1-fc0d-4ad1-adce-43f79272dbe9 All other aspects of the server […]
SQL 2019 instance with AG, across 2 Windows 2016 OS servers - OSin-place upgrade - Hi all Can I get some perspective from the community please on performing in-place OS upgrades on Windows servers, where there is a SQL instance layered on top. I have 2 Servers, Windows 2016 ones, that need upgrading to Windows 2022\Windows 2025 by end of year. There are 20 DB's on this instance, SQL 2019, […]
SQL Server 2019 - Development
Warning: Could not open global shared memory to communicate with performance DLL - Hi everyone I am getting below warning when I run SSIS: Warning: 0x80049304 at Update Table, SSIS.Pipeline: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console. It gives the solution.  It works.  […]
that one limitation in replication - Hi as shown below a replication target requires a primary key.  if we want to replicate from the db level, how do we deal with target tables whose source has no pk?
General
A question about how to store the address in the database - I have an app that has an address field on the customer and the users. The address information on the users is informational and it is not used anyplace. The address used by the customer has only one purpose. It is one of the ways for the application administrator to determine that when they get […]
Integration Services
SSIS package failing intermittently on last Excel Component - Good Afternoon, I have a Job which "fires" off an SSIS package (that is sitting on SSMS Integration Services Catalog). The package simply contains a series of components which pick up data from various SQL tables and places it into corresponding sheets in the same Excel File. Now the package fails intermittently on the last […]
Editorials
Half of All Engineers - Comments posted to this topic are about the item Half of All Engineers
Spring Connections and Learning at PASS On Tour - Comments posted to this topic are about the item Spring Connections and Learning at PASS On Tour
Let's Talk Community Events! - Comments posted to this topic are about the item Let's Talk Community Events!
Local Agents - Comments posted to this topic are about the item Local Agents
Article Discussions by Author
How Long is a Long I/O? - Comments posted to this topic are about the item How Long is a Long I/O?
T-SQL Trigonometric Functions in SQL Server - Comments posted to this topic are about the item T-SQL Trigonometric Functions in SQL Server
T-SQL in SQL Server 2025: JSON_ARRAYAGG - Comments posted to this topic are about the item T-SQL in SQL Server 2025: JSON_ARRAYAGG
Multiple Sequence Values - Comments posted to this topic are about the item Multiple Sequence Values
Detecting Deadlocks - Comments posted to this topic are about the item Detecting Deadlocks
 

 

RSS FeedTwitter

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

 

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