Patent ID: 9658826
Date: 2017-05-23
CPC Classifications: G06F

Claim:
1. A method for sorting data of an input file stored on a first tangible storage device, said input file comprising multiple records associated with multiple tables of a database, each record of the multiple records comprising a plurality of key values, said method comprising: segmenting, by a processor of a computer system, the plurality of key values in the multiple records associated with each table into ranges of key values for each table, each range of key values for each table denoted as a segment having an associated segment value; said processor generating, for each record of the multiple records, a block number denoting a unique permutation of the segment values of the segments, said segment values respectively denoting the ranges of key values encompassing multiple key values selected for each record in association with the tables of the multiple tables; said processor ascertaining, for each record of the multiple records, a sort key value based on the generated block number for each record of the multiple records; said processor sorting the multiple records according to the sort key values after adding the sort key value to each record of the multiple records; and said processor storing the sorted multiple records in an output file on a second tangible storage device, wherein the selected multiple key values include all key values that satisfy a condition for determining that the data in the multiple tables are readable sequentially, wherein the condition is: a total number of records in the input file/(number of segments 1×number of segments 2× . . . ×number of segments n)>max(number of records in table i/number of segments i)/coefficient; wherein n is a total number of tables of the multiple tables; wherein the multiple tables are denoted as table wherein said number of segments i denotes the total number of segments associated with each table i (i=1, 2, . . . , n); wherein max(number of records in table i/number of segments i) denotes a maximum value of (number of records in table i/number of segments i) over i=1, 2, . . . , n; wherein coefficient is a number of pages from a page read immediately before a currently read page is handled as page-sequential; and wherein page denotes a unit of storing data on the first tangible storage device.