THWACK logo
THWACK
  • Sign In
  • Search
  • Community
    Community

    Find all you need to begin your THWACK journey, including documentation, missions, blogs, community groups, events, and media.

    Command Central
    • Getting Started
    MVP Program
    • MVP Program
    Monthly Mission
    • AI Foundations
    Blogs
    • Community Announcements
    • Product Blog
    Groups
    • DevOps Discourse
    • Data Driven
    • See All Groups
    Events
    • Global Events
    • SolarWinds User Group
    • THWACKcamp
      • ↪ 2024: On Demand
    • Bracket Battle
    Media Vault
    • Movies & Mainframes
    • TechPod
    • THWACK Tech Tips
    • THWACK Livecast
    • SolarWinds Lab Archive
    • THWACKcamp Archive
    • See All Media
  • Products
    Products

    Find the best place to learn and ask questions about your SolarWinds products.

    Observability
    • Observability Solutions
    • SolarWinds Observability SaaS
    • SolarWinds Observability Self-Hosted
    • SolarWinds Platform
    Network Management
    • Network Performance Monitoring
    • NetFlow Traffic Analyzer
    • Network Configuration Manager
    • IP Address Manager
    • User Device Tracker
    • VoIP & Network Quality Manager
    • Log Analyzer
    • Engineer's Toolset
    • Network Topology Mapper
    • Kiwi CatTools
    • Kiwi Syslog Server
    • ipMonitor
    Application Management
    • AppOptics
    • Loggly
    • Papertrail
    • Pingdom
    • DevOps
    IT Security
    • Access Rights Manager
    • Identity Monitor
    • Security Event Manager
    • Patch Manager
    • Serv-U FTP & MFT
    IT Service Management
    • SolarWinds Service Desk
    • Web Help Desk
    • DameWare Remote Support
    • DameWare Remote Everywhere
    • DameWare Mini Remote Control
    System Management
    • Server & Application Monitor
    • Virtualization Manager
    • Storage Resource Monitor
    • Server Configuration Monitor
    • SolarWinds Backup
    • Web Performance Monitor
    Database Management
    • Database Performance Analyzer
    • SQL Sentry
    • Database Performance Monitor
    • Database Mapper
    • Task Factory
  • Content Exchange
    Content Exchange

    Find downloadable files and templates other users have built and found useful to share with others.

    SolarWinds Platform
    • Alerts
    • Custom HTML
    • Custom Queries
    • Modern Dashboards
    • Reports
    • Scripts
    Server & Application Monitor
    • API Pollers
    • Application Monitor Templates
    Database Performance Analyzer
    • Custom Alerts
    • Custom Metrics
    • Custom Queries
    Server Configuration Monitor
    • Policies
    • Profiles
    Network Performance Monitor
    • Device Pollers
    • Universal Device Pollers
    Network Configuration Manager
    • Config Change Scripts
    • Device Templates
    • Firmware Upgrade Templates
    • Policy Documents
    SQL Sentry
    • Advisory Conditions
    Web Help Desk
    • Style Sheets
  • Resources
    SolarWinds Customer Portal Customer Portal

    Create individual user accounts for your team, manage your licenses, download your SolarWinds software, create and track support tickets, and more.

    SolarWinds Academy Academy

    A one-stop-shop for world-class training for SolarWinds products through on-demand videos, and instructor-led classes. All SolarWinds Academy content is included with every software purchase.

    SolarWinds Customer Success Support

    Get help when you need it from a world-class support team, available to assist with technical product issues 24 hours a day, seven days a week, 365 days a year.

    SolarWinds Partner Portal Partner Portal

    Accelerate SolarWinds Partners’ ability to drive digital and IT transformation for customers with powerful tools, resources, and increased profit potential.

  • Free Tools & Trials
  • Store
Data Driven
  • Community Groups
Data Driven

Data Driven Blog

  • Blogs
  • Forums
  • Members
  • More
  • Cancel
  • New
“Data Driven” requires membership for participation - click to join
Tag Cloud
  • .NET (2)
  • Azure (8)
  • BackToBasics (10)
  • Backups (6)
  • Bad Habits (9)
  • Data Compression (2)
  • database administrators (5)
  • Database Performance (7)
  • DataOps (2)
  • dba (2)
  • DBAs (2)
  • Entry Level (2)
  • Functions (3)
  • Linux (2)
  • optimization (2)
  • Performance (6)
  • PostgreSQL (8)
  • PowerShell (2)
  • Query Tuning (3)
  • Recovery (5)
  • Security (3)
  • SQL Server (49)
  • System Configuration (4)
  • TempDB (2)
  • T-SQL (25)
Options
  • Subscribe by email
  • Posts RSS
  • More
  • Cancel
  • Join me for Optimizing Database Performance—SQL Best Practices, a Webcast on LinkedIn

    Join me for Optimizing Database Performance—SQL Best Practices, a Webcast on LinkedIn

    kekline
    kekline
    We started the webcast series Optimizing Database Performance with a bang last month on LinkedIn on Feb 26 at 10:00 a.m., U.S. CT. Our next session in the series covers the important topic of SQL coding best practices.   A Gentle Introduction&nb...
    • 19 Mar 2025
  • IT Management in the Era of AI

    IT Management in the Era of AI

    TheSurfingDBA
    TheSurfingDBA
    Throughout my 26-year professional journey, I've had the unique opportunity to experience leadership from multiple perspectives across two distinct careers. My first chapter spanned 11 years in education, where I served as a teacher and department he...
    • 4 Mar 2025
  • Automate Testing Your Backups with DBATools

    Automate Testing Your Backups with DBATools

    TheSurfingDBA
    TheSurfingDBA
    We’ve all heard, "You need to test your backups!" To be honest, in any of the shops I’ve worked in, we never tested our backups. It wasn’t high on the priority list, until I came across a situation where compression was added to a f...
    • 25 Feb 2025
  • Database Monitoring - From SysAdmins to Database Zen Masters Part Three

    Database Monitoring - From SysAdmins to Database Zen Masters Part Three

    m_roberts
    m_roberts
    Mastering Database Management: The Role of the Full DBA Time for the big boys and girls! Those who have mastered their craft and are responsible for the crown jewels of an organisation – its data. In modern enterprises, Full DBAs stand as the p...
    • 18 Feb 2025
  • Join me for Optimizing Database Performance—a Webcast on LinkedIn

    Join me for Optimizing Database Performance—a Webcast on LinkedIn

    kekline
    kekline
    Allow me to take a moment to introduce you to the upcoming Optimizing Database Performance webcast on LinkedIn, Feb 26, 10:00 a.m., U.S. CT. This is the first in a planned multi-part series.   A Gentle Introduction  Episode one featur...
    • 14 Feb 2025
  • Database Monitoring - From SysAdmins to Database Zen Masters Part Two

    Database Monitoring - From SysAdmins to Database Zen Masters Part Two

    m_roberts
    m_roberts
    The Role of a Junior DBA The reason that organisation have dedicated engineers to manage their database estate, is they know the vital importance of data to their organisation. How the data is used by applications, accessed by internal and external p...
    • 13 Feb 2025
  • Database Monitoring - From SysAdmins to Database Zen Masters Part One

    Database Monitoring - From SysAdmins to Database Zen Masters Part One

    m_roberts
    m_roberts
    In 2022, I had the pleasure of hosting a series of webinars on the subject of how different IT technologist persona’s can best utilise tooling to monitor business critical database applications. I was joined by the inimitable Kevin Kline and de...
    • 11 Feb 2025
  • Automate testing your Backups with Dbatools

    Automate testing your Backups with Dbatools

    TheSurfingDBA
    TheSurfingDBA
    We’ve all heard, "You need to test your backups!" To be honest, in any of the shops I’ve worked in, we never tested our backups. It wasn’t high on the priority list, until I came across a situation where compression was added to a f...
    • 4 Feb 2025
  • Do You Consider SQL Server a High Priority in Your Environment?

    Do You Consider SQL Server a High Priority in Your Environment?

    TheSurfingDBA
    TheSurfingDBA
    Is your SQL Server estate virtualized on VMware? More than likely, the answer is yes, unless you have already moved on to the cloud. How often do DBAs get input into how SQL Server is virtualized? In my experience, I never had input into how SQL VMs ...
    • 29 Jan 2025
  • Pester is my Co-Pilot

    Pester is my Co-Pilot

    TheSurfingDBA
    TheSurfingDBA
    When I was a senior in high school, I got my pilot’s license. One of the things I remember about my flight training was the preflight checklist. Before we started up the engine, we did a walk-around of the aircraft, checked the landing gear, ai...
    • 28 Jan 2025
  • SolarWinds Database Observability Self-Hosted: 2024 Updates

    SolarWinds Database Observability Self-Hosted: 2024 Updates

    owenmurf
    owenmurf
    This year, we’ve been hard at work bringing you a lineup of new features and enhancements across our database observability solutions. Each release in 2024 was designed with a clear goal: to make database monitoring, troubleshooting, and opti...
    • 27 Nov 2024
  • The Role of the DBA in AI

    The Role of the DBA in AI

    owenmurf
    owenmurf
    In our recent paper, “Tuning In to AI,” we examine the role of DBAs and database monitoring tools in AI.  How your company systematically stores and manages its corporate data, including the vast datasets needed for complex AI syst...
    • 7 Nov 2024
  • Multi-Tasking in the Modern Database Environment

    Multi-Tasking in the Modern Database Environment

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Note: This is an edited version of an article on SolarWinds Orange Matter. Every database manager understands the complexities involved in maintaining and optimizing multiple enterprise databases. Businesses today use a wide range of database system...
    • 7 Aug 2024
  • PostgreSQL: Turning the Tables on Poor Database Performance

    PostgreSQL: Turning the Tables on Poor Database Performance

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    In our webcast “Turn the Tables on Poor Database Performance”, SolarWinds database expert, Kevin Kline, met with Kellyn Gorman, director of data and AI at Silk. Together they discussed one of the most popular opensource databases on the...
    • 23 Jul 2024
  • Comprehensive PostgreSQL Monitoring with a Unified Vendor Approach: Part 2

    Comprehensive PostgreSQL Monitoring with a Unified Vendor Approach: Part 2

    owenmurf
    owenmurf
    SolarWinds Observability  In Comprehensive PostgreSQL Monitoring with a Unified Vendor Approach: Part 1 we delved into the capabilities of SolarWinds® Database Performance Analyzer (DPA).  We looked at DPA integration with our self-hos...
    • 3 Jun 2024
  • Using Wait Time Analysis to Troubleshoot Oracle-to-PostgreSQL Migration

    Using Wait Time Analysis to Troubleshoot Oracle-to-PostgreSQL Migration

    paul.randal
    paul.randal
    If you have a cost-saving strategy to replace legacy Oracle databases with open-source PostgreSQL, you’re likely asking yourself questions such as: How do I pinpoint where (and why) my PostgreSQL workload is performing better or worse than it...
    • 25 May 2024
  • Comprehensive PostgreSQL Monitoring with a Unified Vendor Approach: Part 1

    Comprehensive PostgreSQL Monitoring with a Unified Vendor Approach: Part 1

    owenmurf
    owenmurf
    Note: This the first of two articles on PostgreSQL problem resolution.  What Is PostgreSQL and Why Is It So Widely Used?  PostgreSQL is an advanced open-source relational database management system (RDBMS) known for its robustness and flex...
    • 23 May 2024
  • From DataOps to Database Pros

    From DataOps to Database Pros

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Another year, another THWACKcamp. Our resident database expert, Kevin Kline, met with some of the brightest lights in the DB world for two fascinating webcasts. Both are available for viewing right now. DataOps: An Overview In “Shift-Left: A B...
    • 16 May 2024
  • Using SolarWinds Database Tools to Optimize PostgreSQL Tables

    Using SolarWinds Database Tools to Optimize PostgreSQL Tables

    xchampion91
    xchampion91
    In my first blog on THWACK, I wanted to write a little about PostgreSQL instance optimization and how a monitoring solution (like the products that SolarWinds produces ) can make the process of table tuning and optimizing your PostgreSQL operati...
    • 29 Apr 2024
  • Database Monitoring in Healthcare

    Blythe.Morrow
    Blythe.Morrow
    Database teams across healthcare industries must maintain consistent access to their applications and prevent interruptions that could affect the front line. There are unique challenges database professionals in healthcare industries encounter. Serve...
    • 8 Apr 2024
  • THWACKcamp 2024: See What’s in Store at This Year’s Educational Extravaganza

    THWACKcamp 2024: See What’s in Store at This Year’s Educational Extravaganza

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    The news is out – THWACKcamp is returning April 17 - 18! This year, we're excited to present our most engaging and informative agenda yet, designed to help you decomplexify IT in your organization.  The life of a DBA is one of infinit...
    • 21 Feb 2024
  • Unified Alerting via PowerShell for ServiceNow and Microsoft Teams

    Unified Alerting via PowerShell for ServiceNow and Microsoft Teams

    E-Roc
    E-Roc
    SQL Sentry has traditionally relied on email for alerting going out of the program. This is simple and effective, but it also lacks flexibility if you want to customize the message. It can add undesired (depending on your exchange admin) load to th...
    • 24 Jan 2024
  • A Simplified Introduction to Azure Database for PostgreSQL Flexible Server

    paul.randal
    paul.randal
    I find it amazing how much opportunity and flexibility cloud environments are creating for organizations of all sizes. I’m seeing more and more companies experimenting with open-source software (OSS) relational database systems, which years ago...
    • 20 Oct 2022
  • What To Know About Microsoft Azure PostgreSQL Hyperscale

    paul.randal
    paul.randal
    As organizations adopt cloud technologies and modernize their applications, the data they generate and ingest often grows exponentially, leaving them with difficult choices for storing and using this data. Customers are beginning to explore moving aw...
    • 13 Oct 2022
  • Everything to Know About SQL INNER JOINs

    paul.randal
    paul.randal
    As a follow-up to my introduction to SQL Server joins, in this T-SQL tutorial, I’m going to take a closer look at the most used type of joins in SQL Server – the INNER JOIN. What is an INNER JOIN? An INNER JOIN is a join type used to retu...
    • 20 Sep 2022
  • What is SQL CROSS APPLY? Guide to T-SQL APPLY Operator

    paul.randal
    paul.randal
    Introduced by Microsoft in SQL Server 2005, SQL CROSS APPLY allows values to be passed from a table or view into a user-defined function or subquery. This tutorial will cover the incredibly useful and flexible APPLY operator, such as how the CROSS AP...
    • 14 Sep 2022
  • An Introduction to PostgreSQL Concurrency Control

    paul.randal
    paul.randal
    As a long-time database consultant, I’ve fixed more blocking problems in database systems than I can count. Often this blocking has resulted from conflicts between processes needing to read rows while those rows are being modified. PostgreSQL u...
    • 3 Aug 2022
  • An Introduction to B-Tree and Hash Indexes in PostgreSQL

    paul.randal
    paul.randal
    This article explores the PostgreSQL implementation of the B-Tree (the B stands for Balanced) and hash index data structures. As PostgreSQL grows in popularity as an open-source database system for developers and as a target for migrating from Oracle...
    • 28 Jul 2022
  • An Introduction to the SQL Server T-SQL DATEADD Function

    paul.randal
    paul.randal
    The DATEADD function adds (or subtracts) a whole-number increment to a specified date value. DATEADD is an incredibly useful and flexible built-in function to programmatically generate date values in your Transact-SQL (T-SQL) code. Before I start, I ...
    • 27 Jul 2022
  • An Introduction to SQL Server Logical Joins

    paul.randal
    paul.randal
    The JOIN syntax is an optional part of the FROM statement and is used to specify how to return data from different tables (or views). Generally, when we think of joining tables together, we think of returning data from two tables with an equality mat...
    • 21 Jun 2022
  • An Introduction to SQL Server T-SQL ORDER BY Clause

    paul.randal
    paul.randal
    Like the previous T-SQL SELECT DISTINCT tutorial, the ORDER BY clause is an optional part of the SELECT statement and orders the result set of a query by one or more columns in the ORDER BY list. This post will discuss the ORDER BY clause, including ...
    • 19 Apr 2022
  • SQL Server T-SQL SELECT DISTINCT Clause Tutorial

    paul.randal
    paul.randal
    The DISTINCT clause is an optional part of the SELECT statement and returns a set of unique records based on the columns included in the SELECT list. When it comes to optimizing SQL Server performance, using the DISTINCT clause in queries where it is...
    • 30 Mar 2022
  • T-SQL UNION Operator: A How-To Guide

    paul.randal
    paul.randal
    What exactly is a UNION operator? A UNION operation is defined as concatenating the results of two or more queries into a single result set. I remember a client struggling to bring data from several tables into a single result set using a complex OR ...
    • 23 Mar 2022
  • How to Perform Point-in-Time Recovery of a SQL Server Database

    paul.randal
    paul.randal
    In a previous post in the backup and restore series, How to Restore Databases From Native SQL Server Backups, Tim mentioned some more advanced options when restoring a database backup, including performing point-in-time recovery of a SQL Server datab...
    • 15 Dec 2021
  • How to Restore Databases From Native SQL Server Backups

    tradney
    tradney
    In my previous post, Native SQL Server Backup Types and How-To Guide, I discussed the main types of native SQL Server backups and various backup options. Backups are critical to restoring databases quickly, but there isn’t much benefit to havin...
    • 18 Nov 2021
  • How to Quickly Identify Performance Issues in Azure SQL Database

    SQLEspresso
    SQLEspresso
    Moving your database to the cloud using a PaaS option such as Azure SQL Database or Azure SQL Managed Instance reduces the maintenance overhead required from the database administrator (DBA). The DBA no longer must worry about managing backups or con...
    • 12 Oct 2021
  • Daily SQL Server Performance Checklist for DBAs

    SQLEspresso
    SQLEspresso
    A main focus for database administrators (DBAs) is to ensure server environments are optimized and performance is at its peak. Whether you’re a DBA starting in a new role and are evaluating an existing environment for the first time, or you&rsq...
    • 8 Oct 2021
  • Native SQL Server Backup Types and How To Guide

    tradney
    tradney
    When a disaster occurs, the ability to successfully restore SQL Server databases is fundamental for avoiding data loss. It’s not enough to rely on hardware and software technologies to replicate data because these technologies can go wrong or t...
    • 1 Oct 2021
  • Finding the Gaps in Your Data Causing Data Drift

    jmorehouse
    jmorehouse
    When drift happens within a database, it can occur at a couple of different levels. Drift refers to entities—tables, views, or even data—out of synchronization with each other. This could be a difference in schema structure, data, or even...
    • 7 Sep 2021
  • Investigating the Database Family Tree

    jmorehouse
    jmorehouse
    Investigating your family tree can be an interesting experience. For example, what if you discovered you were related to a famous person who won a Nobel Prize or performed a heroic act? Conversely, what if you realized you had an ancestor who was an ...
    • 2 Sep 2021
  • An Overview of Intelligent Query Processing in SQL Server

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    When you issue a query to SQL Server or Azure SQL, it internally tries to optimize a query plan through calculations such as whether to use an index. Much of SQL Server’s query plans are based on its best guess of what will happen at run time w...
    • 18 Aug 2021
  • How Query Execution Plans Work

    jdanton
    jdanton
    An important skill in database performance tuning is capturing, reading, and understanding query execution plans. The query execution plan is a roadmap of the resources allocated and operations performed when the database engine gathers the results o...
    • 17 Aug 2021
  • Generating DDL Statements to Recreate Single Objects

    SQLEspresso
    SQLEspresso
    Every database administrator (DBA) is—first and foremost—human. And everyone makes mistakes. It’s not the absence of mistakes but rather how you prepare for those mistakes that makes you a great DBA. Luckily, there are many ways to ...
    • 5 Aug 2021
  • Choosing the Right Storage for SQL Server

    mrdenny
    mrdenny
    Storage performance is key to the health and performance of a SQL Server database. When storage performance begins to slow down, queries suffer from more waits on disk. These waits can show up as a variety of SQL Server wait types, including WRITELOG...
    • 20 Jul 2021
  • Overcoming SQL Server Blocking and Locking Challenges

    mrdenny
    mrdenny
    One of the most common performance problems with SQL Server databases in production is the blocking of queries, which happens because database resources are locked. Understanding why locking happens is just half the battle. Being able to resolve lock...
    • 15 Jul 2021
  • Getting Maximum Performance From Always On Availability Groups

    jonathan.kehayias
    jonathan.kehayias
    Since Microsoft first introduced the Always On Availability Groups (AGs) feature in SQL Server 2012, there’s been a lot of interest in using AGs for both high availability and disaster recovery (HADR), as well as for offloading read-only workloads. T...
    • 9 Jun 2021
  • Testing Your Database Backups Using SQL Server on Linux Containers

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    We recently published a blog post by Shand Glenn titled, "Your Disaster Recovery Strategy Is Useless If Your SQL Server Backups Haven’t Been Tested" that discusses the need for testing your backups and outlines a process to assist in automating...
    • 12 Nov 2020
  • Creating a Sales Report Using Dash and Python

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    In a previous blog post, I showed you how to connect to a SQL Server database using Python, and I mentioned other tools that you can leverage. One of those tools is Dash, a Python framework for creating data visualizations that abstracts a lot of the...
    • 31 Oct 2020
  • Azure Table Storage Tips for the RDBMS Developer

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Suppose you only have relational database management system (RDBMS) experience and are new to Azure Table storage. It's common to find yourself "thinking in SQL" and trying to solve database modeling requirements with a SQL approach before translatin...
    • 21 Oct 2020
  • Restoring an AdventureWorks Database on a SQL Server on Linux Container

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    I find myself continually needing a database to execute tests, generate a workload, and more. I typically create an AdventureWorks database since there are plenty of resources for it. This need pushed me to create a container with AdventureWorks prec...
    • 9 Oct 2020
  • Table-Valued Parameters Vs. SqlBulkCopy for Bulk Loading Data Into SQL Server

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    In Using SqlBulkCopy in .NET for Faster Bulk Data Loading , I talked about SqlBulkCopy and how it's been a useful part of my toolbelt as a .NET developer since I first discovered it in 2010. I touched on some other common approaches to...
    • 8 Jul 2020
  • How Does SQL Server 2019 Accelerated Database Recovery Affect TempDB

    jason.hall
    jason.hall
    You might have heard me talk about tempdb parasites in the past, or maybe you've read my blog post on the same topic, Be Mindful of SQL Server TempDB Use (AKA TempDB Parasites) , I know that at least one person did, because they recently as...
    • 24 Jun 2020
  • Finding Available SQL Server Images in the Major Cloud Providers

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    When creating virtual machines (VMs) using the portals provided by the different cloud providers, you are presented with a list of SQL Server image names. However, when you start automating the creation of VMs, you are usually required to provide the...
    • 10 Jun 2020
  • Using SqlBulkCopy in .NET for Faster Bulk Data Loading

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    There are times when .NET developers need to bulk load data into SQL Server. If there's one thing I've learned over the years when it comes to data access patterns, it's that us .NET developers like to make the same kinds of mistakes over...
    • 4 Jun 2020
  • Recovering an Azure SQL Database During a Region Outage

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Today we are going to discuss what to do if the Azure region in which you host your Azure SQL Database suddenly becomes unavailable. Many automatically start thinking about active geo-replication and leveraging fail-over groups for your Azure SQL Dat...
    • 8 May 2020
  • SQL Server DBA Interview Questions and Topics

    jason.hall
    jason.hall
    So, you’ve got an interview lined up for a sweet new gig as a SQL Server DBA. What interview questions will you be asked? How can you make sure you ace the interview? What will make you stand out from the other candidates? There are no concrete...
    • 27 Mar 2020
  • What's the Difference Between INNER JOIN, the OUTER JOINs, and CROSS JOIN?

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Over the course of my career, when interviewing people, I tend to ask questions that locate the edge of a candidate’s knowledge. One of the questions I often ask is about the different types of JOIN, and it’s still relatively rare that so...
    • 24 Feb 2020
  • Keeping DRY in SQL Server With Scalar User‑Defined Functions

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    No one likes to keep repeating themselves. As software engineers, we're often encouraged to follow the DRY principle: Don't Repeat Yourself. We look to refactor repeated blocks of code out into reusable units that encapsulate that logic, and the...
    • 20 Feb 2020
  • Is MAXDOP (Max Degree of Parallelism) Configured Correctly?

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    What is MAXDOP in SQL Server? Max degree of parallelism (MAXDOP)is a setting in SQL Server that controls how many processors may be used for parallel plan execution. Parallel plan execution is good—it lets SQL Server make the best use of all th...
    • 18 Feb 2020
  • Be Mindful of SQL Server TempDB Use (AKA TempDB Parasites)

    jason.hall
    jason.hall
    This post is a refresh of the "tempdb parasites" topic I was covering back in 2014. Microsoft has done a lot over the last several years to help SQL Server professionals with tempdb concerns. The most recent was enabling a shift of tempdb metadata to...
    • 28 Jan 2020
  • Data Loading Azure Synapse Analytics and the New COPY Statement

    Steve_Wright
    Steve_Wright
    For most of my career in data, the conventional process for loading data warehouses was Extract, Transform, and Load (ETL). In the Microsoft world, this process is primarily handled by SQL Server Integration Services (SSIS), with the data warehouse r...
    • 3 Jan 2020
  • How Did I Miss That? T-SQL CHOOSE()

    jason.hall
    jason.hall
    I'm not sure how I missed this when it released in SQL Server 2012, but the CHOOSE function in T-SQL is going to change my life. Here's why. Enums The developer section of my brain loves Enums. They are succinct code structures that define sets of nu...
    • 26 Nov 2019
  • SQL Server Support for TLS 1.2: Read This First!

    AaronBertrand
    AaronBertrand
    In January 2016, Microsoft announced that TLS 1.2 would now be supported in specific builds of SQL Server 2008, 2008 R2, 2012, and 2014. Personally, I was pleasantly surprised to see this support back-ported to 2008 and 2008 R2; I was convinced that...
    • 18 Nov 2018
  • Visualizing Data Compression: See It for Yourself

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    In my previous post on compression, Entry Level: Compression and Data Types, I demonstrated how to get a feel for compression effectiveness based on data types and repeating values. I'll be providing some examples that expand on the information ...
    • 5 Apr 2017
  • My First PowerShell: A Simple Story With Dramatic Flair

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Recently, I needed an automated way to restart remote servers in my test environment for SQL Sentry. I knew that this sounded like a PowerShell-ish thing, but I lack what most people call experience when it comes to PowerShell. Maybe that's what ever...
    • 17 Mar 2017
  • Overview of Columnstore Indexes in SQL Server

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    As Aaron Bertrand has written about recently, SQL Server 2016 SP1 opens up a lot of new possibilities for Standard, Web, and Express editions of SQL Server, including new options for in-memory technologies such as columnstore indexes and memory-optim...
    • 13 Feb 2017
  • BackToBasics: CAST vs. CONVERT

    AaronBertrand
    AaronBertrand
    There are several T-SQL language features where you have a choice of two or more approaches. I've talked before about old-style vs. explicit inner joins, how to express the "not equal to" operator, and whether you should use the newer FORMAT function...
    • 3 Nov 2016
  • BackToBasics: Why I Use Lower Case for Data Type Names (Now)

    AaronBertrand
    AaronBertrand
    This is a continuation of my #BackToBasics series, where I pledged to write an entry-level post at the beginning of each month. I promised the first Wednesday but, well, you'll see. For the longest time, I always considered a data type name to be a T...
    • 5 Oct 2016
  • Hello.  My Name is [dbo].[customer_update] [dbo].[update_customer]

    BackToBasics: Naming Stored Procedures

    AaronBertrand
    AaronBertrand
    Back in January, I responded to an article on naming conventions that I found very sensible on balance, but with a few ideas I didn't quite agree with. I addressed most of my concerns in my previous post, entitled, "Subjectivity: Naming Standards." ...
    • 2 Sep 2016
  • Dynamic Data Masking: My Thoughts

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    Recently I have been exploring Dynamic Data Masking. Looking at ways that it can be used and I thought I would share my thoughts with you. My initial thoughts are that there is a lot of potential with this feature, however, it needs to have some gaps...
    • 26 Aug 2016
  • Entry Level: Compression and Data Types

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    SQL Server Data Compression Earlier this year, I co-presented a webinar with Kevin Kline (b|t) on SQL Server Data Compression. In this post, I'm going to focus on the segment of that webinar which (1) covered the two types of SQL Server Data Compress...
    • 18 Aug 2016
  • BackToBasics: Great Debates: Unicode

    AaronBertrand
    AaronBertrand
    In my Bad Habits session (and my Become a Better Developer pre-con), one of my slides addresses choosing the wrong data type. I have a demo that shows why date or smalldatetime can often be a better choice than datetime (which people tend to use uni...
    • 4 Aug 2016
  • Where Do I Get SQL Server 2016 Developer Edition

    AaronBertrand
    AaronBertrand
    Back in March, Microsoft gleefully announced that Developer Edition would now be free. But in that time, I've seen plenty of confusion around where to get it. More specifically, where to get it with no strings attached, including questions like, "Can...
    • 16 Jul 2016
  • BackToBasics: DATEFROMPARTS()

    AaronBertrand
    AaronBertrand
    Just before 2015 drew to a close, I challenged myself - in response to a tweet from Tim Ford (T) - to publish an entry level post on the first Wednesday of every month. Well, today's July 6th, and I apologize for coming in at the 11th hour,...
    • 7 Jul 2016
  • BackToBasics: An Updated Kitchen Sink Example

    AaronBertrand
    AaronBertrand
    At the beginning of the year, I pledged to publish an entry level post on the first Wednesday of every month throughout 2016. Even when the first Wednesday sneaks up on me as the first day of the month. For June, I wanted to talk about a pattern I se...
    • 2 Jun 2016
  • BackToBasics: Dating Responsibly

    AaronBertrand
    AaronBertrand
    No, this is not going to be a synopsis of the TV series, "8 Simple Rules... for Dating My Teenage Daughter." This is a continuation of my #BackToBasics series, which I pledged after a challenge from Tim Ford. This month, after having yet another conv...
    • 7 Apr 2016
  • Security Nuggets: Encrypting SQL Server Connections

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    In this post we will take a look at how easy it is to see the queries and results that get sent between SQL Server and the applications using it. Simply put, why you should be encrypting your database connections if you are serious about SQL Server S...
    • 17 Mar 2016
  • BackToBasics: The Beauty of the Synonym

    AaronBertrand
    AaronBertrand
    At the end of last year, in response to a challenge from Tim Ford (T), I pledged to contribute an entry-level-ish post per month, where I take less of the reader's existing knowledge for granted. This month, I though I would talk about a SQL Ser...
    • 3 Mar 2016
  • BackToBasics: The "Runaway" Query

    AaronBertrand
    AaronBertrand
    Continuing with the 2016 challenge from Tim Ford (T) that I accepted at the end of last year, this month I wanted to talk about the runaway query - or, more specifically, what you can do before you call your query a runaway query. Make Sure It I...
    • 4 Feb 2016
  • BackToBasics: Common Table Expressions (CTEs)

    AaronBertrand
    AaronBertrand
    At the end of last year, I accepted a challenge for 2016: to publish one post per month that makes fewer assumptions about the reader's knowledge. In the first post, which came up rather quickly I might add, I'm going to talk about a concept in SQL S...
    • 7 Jan 2016
  • Bad Habits: Being CarELesS About cAsE

    AaronBertrand
    AaronBertrand
    As a frequent reviewer of queries, and a regular contributor to our answers site and dba.stackexchange.com, I come across a lot of code that seems to have been written, shall we say, quickly. There are a lot of transgressions of course, but one that ...
    • 8 Aug 2015
  • What I Mess Up Whenever I Install SQL Server On a New VM

    AaronBertrand
    AaronBertrand
    I travel, I present, I set up demos and repros, I solve customer issues, and I blog about a lot of different scenarios. As you can imagine, I have a lot of VMs lying around on external SSDs, and many of them are different versions/editions of operati...
    • 1 Aug 2015
  • I Have an Aversion to @@VERSION

    AaronBertrand
    AaronBertrand
    I've been posting about SQL Server service packs, cumulative updates, and hotfixes for years. One of the things that has been sorely lacking in SQL Server all this time is the ability to quickly determine which specific service pack or cumulative upd...
    • 22 Jul 2015
  • Making SSMS Pretty: My Dark Theme

    AaronBertrand
    AaronBertrand
    Updated November 26, 2019 I've been using a dark theme in SSMS for some time now. For myself, I find it far easier to read light on dark, if you choose the right colors.  Here is a code sample: SELECT GETDATE(), N'hello' FROM sys.all_c...
    • 30 Jun 2015
  • Tracing Usage of Trace Flags

    AaronBertrand
    AaronBertrand
    This morning at SQLintersection, I delivered my session "SQL Server Trace Flags : A Practical Guide" for the first time. I wanted to include the three core links I talked about for getting more information about trace flags (including all o...
    • 22 May 2015
  • SQL Server 2016: JSON Support

    AaronBertrand
    AaronBertrand
    This is not the JSON you're looking for. I was at MS Ignite last week, and attended the Foundational Keynote, entitled "The SQL Server Evolution." In that session they announced a new feature that will be available in the next version of SQL Server (...
    • 11 May 2015
  • Bad Habits: Using MDF/LDF Files as "Backups"

    AaronBertrand
    AaronBertrand
    I come across an alarming number of people who need to take a backup of their database, or restore a copy of it somewhere, or move the data or log file(s) to a different drive, and do so by detaching the database (or shutting down the entire SQL Ser...
    • 8 Apr 2015
  • Best Practices: Properly Referencing Columns

    AaronBertrand
    AaronBertrand
    Several years ago now, I wrote about people not bothering to specify the schema when creating or referencing objects. While I could argue that always specifying the schema makes the code easier to understand and more self-documenting, the major conce...
    • 13 Mar 2015
  • Should I Use NOLOCK Against #temp Tables

    AaronBertrand
    AaronBertrand
    Back in September, I wrote about Bad Habits: Putting NOLOCK Everywhere. I highlighted several of the things that can go wrong with its pervasive use, but admitted that it can have its place - as long as you understand the risks. Recently, Kennet...
    • 27 Feb 2015
  • Patience and sys.dm_exec_requests

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    I’m not always the most patient person in the world. I'm better now, but when I first started as a DBA, I'd have a tendency to think that a process had hung when it was actually processing away. Because of that, I made a lot of those mistakes o...
    • 26 Nov 2014
  • Bad Habits: Another Case for Semi-colons and Schema Prefix

    AaronBertrand
    AaronBertrand
    Over 5 years ago - before I even really started my "Bad habits" series - I gave several reasons why you should start using semi-colons to terminate all eligible statements. It's not really because I believe Microsoft will actually enforce the depreca...
    • 23 Oct 2014
  • Bad Habits: Using AttachDBFileName

    AaronBertrand
    AaronBertrand
    Just about every time I look through SQL Server-related questions on Stack Overflow, I see someone describing a problem that they are blaming on their code, but is likely caused by their connection string. The pattern is usually something like: Man...
    • 9 Oct 2014
  • Bad Habits: Clinging to Old Compatibility Levels

    AaronBertrand
    AaronBertrand
    [See an index of all Bad Habits / Back to Basics posts.] I often see people struggling with inexplicable syntax issues, or behavior that works differently on two different servers running the same version of SQL Server (or even two different database...
    • 1 Oct 2014
  • Bad Habits: Putting NOLOCK Everywhere

    AaronBertrand
    AaronBertrand
    [See an index of all Bad Habits / Back to Basics posts.] I went through the archive above and was quite surprised to discover that I have never blogged explicitly about NOLOCK. Out on the forums, I typically refer to this hint as a "magic, pixie-dust...
    • 25 Sep 2014
  • Bad Habits: Looking for Optimizations in All the Wrong Places

    AaronBertrand
    AaronBertrand
    Over the years I've come across a lot of common scenarios where people are trying to optimize the wrong things. While many of these could probably make "bad habits" blog posts of their own, they all seemed to fit this same theme, so I thought I would...
    • 17 Sep 2014
  • Bad Habits: Using (Certain) Metadata "Helper" Functions

    AaronBertrand
    AaronBertrand
    [See an index of all bad habits / best practices posts] For a long time, I was a big proponent of all the metadata helper functions. These are the little one-liners, like OBJECT_ID(), that let you derive properties of an object, usually based on anot...
    • 4 Sep 2014
  • A SQL_VARIANT Use Case (No Pun Intended)

    AaronBertrand
    AaronBertrand
    I was recently at SQL Bits XII and I attended Itzik Ben-Gan's session, "T-SQL Tips and Tricks." I arrived late, but within about three minutes, I was quickly reminded that no matter how advanced you are in your career, there is always more to learn ...
    • 13 Aug 2014
  • Ensuring Maximum CPU Performance Via Group Policy

    solarwinds_worldwide_llc
    solarwinds_worldwide_llc
    There has been quite a bit of talk recently about a performance issue I see regularly on Windows Server 2008 and 2008 R2 servers, and that's the use of the default Power Plan setting of "Balanced." Glenn Berry posted about the impact of this setting ...
    • 4 Jan 2011

SolarWinds solutions are rooted in our deep connection to our user base in the THWACK® online community. More than 200,000 members are here to solve problems, share technology and best practices, and directly contribute to our product development process.

SolarWinds Customer Success Center Certification SolarWinds Lab Link Customer Portal
About THWACK SolarWinds Blog Federal & Government Edit Settings Free Tools & Trials
Legal Documents Terms of Use Privacy California Privacy Rights Security Information
©2021 SolarWinds Worldwide, LLC. All Rights Reserved.