Mike Byrd

Former rocket scientist and USAF Fighter Pilot -- now a SQL Server geek. Past opportunities include free-lance technical writer for PC Magazine, Senior Software Manager for government sponsored munitions effectiveness committee, and IT Director for Texas Windstorm Insurance Association (9 years), Currently senior database consultant for several companies. Presenter at many SQL Saturdays in US, Europe, and Australia. Ideal job is sproc and query performance tuning or TSQL instruction

Specialties
SQL Server performance tuning; database (OLTP & OLAP) architecture; trouble-shooting; teaching TSQL (Basic through Advanced).

Video presentations (for local SQL Server user groups or SQL Saturdays) can be found at http://usergroup.tv/videos/category/speaker/mike-byrd

Looking only for part-time or short-time opportunities -- either performance tuning or TSQL training.
  • Interests: Water skiing, boating, tennis, Sudoku and KenKen puzzles

SQLServerCentral Article

Indexes: When Column Selectivity Is Not Always A Requirement

While preparing for my SQL Saturday Salt Lake City presentation, Climbing the B-Tree, I ran into one of the “word of mouth” facts that the first column of an index should be highly selective, i.e., it should only point to one or a few rows. This is not always the case and I’ll show you […]

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

(6)

You rated this post out of 5. Change rating

2023-01-02 (first published: )

5,683 reads

SQLServerCentral Article

More on Column Choice and Order for Multi-column Non-Clustered Indexes

In the last year I’ve published articles on indexes to include Indexes: When Column Selectivity Is Not Always A Requirement – SQLServerCentral and Query Optimizer Suggests Wrong Index and Query Plan -- Why? – SQLServerCentral. This article is a continuation of just how the optimizer interacts with the index wizard. We’ve all heard and read […]

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

(2)

You rated this post out of 5. Change rating

2021-07-07

3,885 reads

SQLServerCentral Article

How Bad are Bad Page Splits – The Rest of the Story

In Part 1 of this article we looked at a specific use case (probably exaggerated) that gave us an idea about how CPU and IO performance might be affected by a bad page split. We continue this analysis looking at what really happens to the data on the leaf pages of a clustered index with […]

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

(3)

You rated this post out of 5. Change rating

2020-07-02

4,554 reads

SQLServerCentral Article

A Self-Tuning Fill Factor Technique for SQL Server – Part 2

Introduction Fill Factor is a parameter most of us have ignored because there is no definitive way to calculate what the correct value should be. Part 1 of this series describes a new technique to dynamically determine index fill factors for all indexes within a database. Part 2 covers an analysis of the data collection […]

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

(3)

You rated this post out of 5. Change rating

2019-08-27

4,024 reads

SQLServerCentral Article

A Self-Tuning Fill Factor Technique for SQL Server – Part 1

Introduction So what’s all the fuss about Fill Factor? It is a SQL Server parameter I’ve ignored for 20+ years. The main reason was/is I’ve had no idea about what value to use. There is just no documented definitive guidance. Back in April at SQL Saturday #830 - Colorado Springs, I attended two sessions by […]

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

(7)

You rated this post out of 5. Change rating

2019-08-20

9,153 reads

Blogs

T-SQL Tuesday #203: Risk and Reward

By

This is timely, as I’m currently on a boat in the Adriatic taking a...

dataMinds Connect 2026 – Slides & Scripts

By

You can find the slides and SQL scripts for my session “Spice up your...

How to Clear the SSMS Cache (SSMS 21 and Later)

By

How to Clear the SSMS Cache (SSMS 21 and Later) Updated...

Read the latest Blogs

Forums

Using CHOOSE()

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Using CHOOSE()

Re-Seeding a Broken Log Shipping Secondary (Without Touching the Primary)

By LukaMK

Comments posted to this topic are about the item Re-Seeding a Broken Log Shipping...

The DBA is Dead! Long Live the !

By Grant Fritchey

Comments posted to this topic are about the item The DBA is Dead! Long...

Visit the forum

Question of the Day

Using CHOOSE()

We have this code that sets some status values and then queries them using the CHOOSE() function in SQL Server 2025.

CREATE TABLE Status
(
    StatusID INT,
    StatusDescription VARCHAR(20)
);
GO
INSERT dbo.Status
(
    StatusID,
    StatusDescription
)
VALUES
(0, 'Uncategorized'),
(1, 'Active'),
(2, 'Inactive'),
(3, 'Temp');

GO
SELECT CHOOSE(StatusID, 'Unknown', 'Active', 'Inactive', 'Temporary')
FROM Status;
When the SELECT runs, what is returned?

See possible answers