Patent ID: 9047272
Filing Date: 2015-06-02
Classification: G06N,G16B

Abstract:
1. A method for finding an index configuration for a database, the method comprising: under control of a computing system comprising one or more physical computing devices, determining, from a plurality of structured query language (SQL) statements for a database, a set of index candidates for the database, the index candidates comprising at least one of: (1) a column in a table in the database, (2) disabling an index associated with a table in the database, and (3) a composite index for the database, the composite index comprising a plurality of columns from at least one table in the database; forming a gene pool comprising a plurality of genes associated with the index candidates for the database, wherein each gene in the gene pool is a representation of an index candidate from the set of index candidates, the representation comprising an alphanumeric identifier for the index candidate; determining a participation probability for each gene in the gene pool, the participation probability for a gene based at least in part on a total cost of the plurality of SQL statements for the index candidate associated with the gene; generating a parent population of chromosomes, each chromosome comprising one or more genes from the gene pool, wherein the generating comprises filling a gene in a chromosome based at least in part on the participation probability for that gene; evolving the parent population of chromosomes to form an offspring population of chromosomes, wherein the evolving comprises applying at least one of a crossover operator and a mutation operator to at least some of the chromosomes in the parent population; determining a fitness of each of the chromosomes in the offspring population; evaluating whether to terminate the evolving based at least in part on a termination criterion; and providing information associated with one or more of the chromosomes in the offspring population.