Organization of data within a database
AssigneeInternational Business Machines Corporation
InventorsTianchao Li, Peter Bendel, Oliver Draese, Namik Hrle
Life of this patent
Estimating the term…
Abstract
A computer implemented method is provided for processing data representing a data entity having sub entities. The method includes analyzing queries to the data entity for deriving information about sets of the sub entities frequently queried together, and grouping the sub entities to a number of banks, each bank having a maximum width, based on the information about sets of sub entities frequently queried together, in order to reduce an average number of banks to be accessed for data retrieval.
Claims8
A computer implemented method for processing data representing a data table comprising columns, said method comprising:
- analyzing, via a processor, queries to said data table for deriving access frequency information about a plurality of sets, each set comprising two or more of the columns accessed together by a corresponding query;
- assigning weight values to said sets of columns, the weight values being dependent at least upon the access frequencies of the sets of columns;
- determining subsets of columns present in at least two of columns, and handling said subsets of columns as additional sets of columns by assigning a weight value to each subset of columns, wherein the assigned weight value is a function of previously assigned weight values;
- determining criteria values based at least upon the weights of the sets of columns;
- splitting sets of columns having a width larger than a maximum bank width value in split sets of columns and handling said split sets of columns as additional sets of columns by assigning a criteria value to each split set of columns;
- sorting said sets of columns based on said criteria values;
- removing columns that are present in multiple sets of columns from sets of columns having a smaller criteria values;
- handling columns of said data table not present in any set of columns as individual columns having a low criteria value;
- and
- grouping, via a processor, said columns to a number of banks, with each bank having a maximum width and at least one of the sets of two or more columns, wherein said grouping reduces an average number of banks to be accessed for data retrieval and comprises a packing method comprising iterating over the sets of columns in sorted order and for each set of columns;
- scanning one or more banks and grouping the set of columns to a first bank having space to hold the set of columns, wherein, when the one or more banks lacks a bank having space to hold the set of columns, a new bank is added, and the set of columns is grouped to the new bank.
A computer system comprising at least one computer and at least one storage media to store a database, wherein said at least one computer comprises at least one processor configured to process data representing a data table comprising columns by:
- analyzing, via a processor, queries to said data table for deriving access frequency information about a plurality of sets, each set comprising two or more of the columns accessed together by a corresponding query;
- assigning weight values to said sets of columns, the weight values being dependent at least upon the access frequencies of the sets of columns;
- determining subsets of columns present in at least two of columns, and handling said subsets of columns as additional sets of columns by assigning a weight value to each subset of columns, wherein the assigned weight value is a function of previously assigned weight values;
- determining criteria values based at least upon the weights of the sets of columns;
- splitting sets of columns having a width larger than a maximum bank width value in split sets of columns and handling said split sets of columns as additional sets of columns by assigning a criteria value to each split set of columns;
- sorting said sets of columns based on said criteria values;
- removing columns that are present in multiple sets of columns from sets of columns having a smaller criteria values;
- handling columns of said data table not present in any set of columns as individual columns having a low criteria value;
- and
- grouping, via a processor, said columns to a number of banks, with each bank having a maximum width and at least one of the sets of two or more columns, wherein said grouping reduces an average number of banks to be accessed for data retrieval and comprises a packing method comprising iterating over the sets of columns in sorted order and for each set of columns:
- scanning one or more banks and grouping the set of columns to a first bank having space to hold the set of columns, wherein, when the one or more banks lacks a bank having space to hold the set of columns, a new bank is added, and the set of columns is grouped to the new bank.
A computer program product for processing data representing a data table comprising columns, the computer program product comprising a computer readable storage medium, the computer readable storage medium having a computer readable program code embodied therewith, the computer readable program code configured to:
- analyze, via a processor, queries to said data table for deriving access frequency information about a plurality of sets, each set comprising two or more of the columns accessed together by a corresponding query;
- assign weight values to said sets of columns, the weight values being dependent at least upon the access frequencies of the sets of columns;
- determine subsets of columns present in at least two of columns, and handling said subsets of columns as additional sets of columns by assigning a weight value to each subset of columns, wherein the assigned weight value is a function of previously assigned weight values;
- determine criteria values based at least upon the weights of the sets of columns;
- split sets of columns having a width larger than a maximum bank width value in split sets of columns and handle said split sets of columns as additional sets of columns by assigning a criteria value to each split set of columns;
- sort said sets of columns based on said criteria values;
- remove columns that are present in multiple sets of columns from sets of columns having a smaller criteria values;
- handle columns of said data table not present in any set of columns as individual columns having a low criteria value;
- and
- group, via a processor, said columns to a number of banks, with each bank having a maximum width and at least one of the sets of two or more columns, wherein said grouping reduces an average number of banks to be accessed for data retrieval and comprises a packing method comprising iterating over the sets of columns in sorted order and for each set of columns:
- scanning one or more banks and grouping the set of columns to a first bank having space to hold the set of columns, wherein, when the one or more banks lacks a bank having space to hold the set of columns, a new bank is added, and the set of columns is grouped to the new bank.
Dependencies are inferred from the claim text.