A computer implemented method for profiling data stored in at least one data storage system, the method including: accessing at least one collection of records (201, 300, 800, 1000) stored in the data storage system (112, 114) over an interface coupled to the data storage system and processing the collection of records to generate result information (330, 340, 615, 880, 890, 1040) characterizing values appearing in one or more specified fields of the collection of records, wherein processing the collection of records includes: generating, for a first set of distinct values appearing in a first set of one or more fields of the records in the collection, corresponding location information that identifies, for each distinct value in the first set of distinct values, every record in which the distinct value appears, based on each entry from a first corresponding list of entries including a first set of distinct values, identifying a distinct value from the first set of distinct values, a count of the number of occurrences of the distinct value in the first set of one or more fields, and the location information for the distinct value from the first set of distinct values, said corresponding first list of entries having been generated for the first set of one or more fields, based on a corresponding second list of entries including a second set of distinct values, identifying a distinct value from the second set of distinct values appearing in the second set of one or more fields, a count of the number of occurrences of the distinct value in the second set of one or more fields, and location information for the distinct value from the second set of distinct values, said corresponding second list of entries having been generated for a second set of one or more fields of the records in the collection different from the first set of one or more fields, locating at least one record of the collection of records using the location information for at least one value appearing in the first set of one or more fields, determining at least one value appearing in the second set of one or more fields of the located record, and generating the result information, wherein the result information comprises a set of distinct pairs of values, wherein a first value in each pair appears in the first set of one or more fields of the records and a second value in each pair appears in the second set of one or more fields of the records, wherein one of the distinct pairs of values comprises the at least one value appearing in the first set of one or more fields and the at least one value appearing in the second set of one or more fields of the located record; wherein processing the collection of records (201, 300, 800, 1000) further includes generating, for the set of distinct pairs of values, corresponding location information that identifies, for each distinct pair of values, every record in which the distinct pair of values appears. generating, for a first set of distinct values appearing in a first set of one or more fields of the records in the collection, corresponding location information that identifies, for each distinct value in the first set of distinct values, every record in which the distinct value appears, based on each entry from a first corresponding list of entries including a first set of distinct values, identifying a distinct value from the first set of distinct values, a count of the number of occurrences of the distinct value in the first set of one or more fields, and the location information for the distinct value from the first set of distinct values, said corresponding first list of entries having been generated for the first set of one or more fields, based on a corresponding second list of entries including a second set of distinct values, identifying a distinct value from the second set of distinct values appearing in the second set of one or more fields, a count of the number of occurrences of the distinct value in the second set of one or more fields, and location information for the distinct value from the second set of distinct values, said corresponding second list of entries having been generated for a second set of one or more fields of the records in the collection different from the first set of one or more fields, locating at least one record of the collection of records using the location information for at least one value appearing in the first set of one or more fields, determining at least one value appearing in the second set of one or more fields of the located record, and generating the result information, wherein the result information comprises a set of distinct pairs of values, wherein a first value in each pair appears in the first set of one or more fields of the records and a second value in each pair appears in the second set of one or more fields of the records, wherein one of the distinct pairs of values comprises the at least one value appearing in the first set of one or more fields and the at least one value appearing in the second set of one or more fields of the located record; wherein processing the collection of records (201, 300, 800, 1000) further includes generating, for the set of distinct pairs of values, corresponding location information that identifies, for each distinct pair of values, every record in which the distinct pair of values appears.