Dictionary compression stores duplicate values once in a page dictionary and replaces row occurrences with pointers. It compares binary representations, so matching values can be identified across data types. section 10.9
Page compression applies row compression first, then prefix compression, and finally dictionary compression. A CI record near the page header anchors prefix data and stores the dictionary; its change count helps SQL Server decide whether rebuilding is worthwhile. section 10.9
Enable dictionary compression through page compression
ALTER TABLE ImpressionsArchive REBUILD WITH (DATA_COMPRESSION = PAGE);
