1. A method, comprising: building, for a set of data comprising at least one data table comprising two or more rows and two or more columns where each of the two or more columns corresponds to a respective one of a plurality of attributes, a code table for each of the plurality of attributes in the set of data; selecting a first code table corresponding to a first attribute and a second code table corresponding to a second attribute, the first code table comprising a first compression dictionary for compressing attribute values of the first attribute and the second code table comprising a second compression dictionary for compressing attribute values of the second attribute; merging the first code table and the second code table into a merged code table, the merged code table comprising a merged compression dictionary for compressing combinations of attribute values for the first attribute and the second attribute; and determining whether to accept or reject the merged code table based on comparing a first compression cost of compressing the set of data using the first code table and the second code table with a second compression cost of compressing the set of data using the merged code table; wherein at least one of the building, selecting, merging and determining steps are performed by a processor device.