Skip to content

Compression eligibility changes#549

Merged
erikdarlingdata merged 2 commits intoerikdarlingdata:devfrom
FirstCall42:compression-eligibility
Apr 3, 2025
Merged

Compression eligibility changes#549
erikdarlingdata merged 2 commits intoerikdarlingdata:devfrom
FirstCall42:compression-eligibility

Conversation

@FirstCall42
Copy link
Contributor

When checking for compression eligibility, indexes on tables with sparse columns should be flagged as ineligible.
Additionally, clustered indexes which contain columns with ineligible data types should also be flagged as ineligible.
Otherwise, the compression eligibility of each index will be based on the server and compatibility checks.

@erikdarlingdata
Copy link
Owner

erikdarlingdata commented Apr 3, 2025

@FirstCall42 nice work! Thanks for taking care of this one. I assume this is tested and ready for merging now?

@erikdarlingdata erikdarlingdata added enhancement New feature or request sp_IndexCleanup Review unused and duplicative indexes labels Apr 3, 2025
@FirstCall42
Copy link
Contributor Author

I tested against sparse columns and text, ntext, and image columns.

DROP TABLE IF EXISTS dbo.TableWithText;
CREATE TABLE dbo.TableWithText (
	[Id] int CONSTRAINT PK_TableWithText PRIMARY KEY,
	[Value1] int,
	[TextValue] [text] NULL,
	[NTextValue] [ntext],
	[ImageValue] [image],
)

CREATE INDEX IX_Value1 ON dbo.TableWithText (Value1);

-- Some data
INSERT INTO dbo.TableWithText
SELECT TOP 100000
	ROW_NUMBER() OVER (ORDER BY x.id),
	CHECKSUM(NEWID()) % 10000,
	CONCAT('magic text', x.id),
	CASE WHEN x.id % 5 = 1 THEN CONCAT(N'magic ntext', x.id) ELSE NULL END,
	CONCAT('magic image', x.id)
FROM sys.sysobjects x
CROSS JOIN sys.all_objects y

-- Queries to use the index
SELECT * FROM TableWithText WHERE Value1 = 8508

SELECT * FROM TableWithText WHERE Value1 > 0

EXEC sp_IndexCleanup @table_name = 'TableWithText'

@erikdarlingdata
Copy link
Owner

@FirstCall42 good enough for me! Thank you again for the contribution.

@erikdarlingdata erikdarlingdata merged commit e9b23e3 into erikdarlingdata:dev Apr 3, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request sp_IndexCleanup Review unused and duplicative indexes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants