# US 2020/0401598 A1 · Dynamically self-indexing database-management system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401598 A1
- Document ID: US20200401598A1
- Status: Published application
- Kind: A1
- Application number: 16/447,161
- Filed: 2019-06-20
- Published: 2020-12-24
- Earliest claimed: 2019-06-20
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Gaurav Mehrotra; Nirmal Kumar; Hrishikesh S. Kumar; Pratik P. Paingankar
- Web page: https://patentgrep.com/patent/US20200401598A1

## CPC

- G06F 16/2272: {Management thereof}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/217: {Database tuning (G06F16/2282 takes precedence; database performance monitoring G06F11/3409)}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/2458: Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A dynamically self-indexing database-management system selects database indexes associated with table columns that are most frequently accessed by user queries, deleting all other indexes. The system periodically reviews database-performance figures and data-usage patterns for each table of its database and revises its selection of indexes in order to ensure that only the most frequently accessed columns continue to be indexed and that the omission of other indexes does not degrade performance. The total number of selected indexes, the overall percent of selected indexes, or the selection itself is optimized over time through continued monitoring of database transaction logs. Optimization may comprise cognitive analytics or other methods of artificial intelligence by which the system learns over time how to best determine whether its current selection of indexes is likely to provide the best overall performance.

## Claims

### Claim 1

A dynamically self-indexing database-management system comprising a processor, a memory coupled to the processor, and a computer-readable hardware storage device coupled to the processor, the storage device containing program code configured to be run by the processor via the memory to implement a method for a dynamically self-indexing database-management system, the method comprising:
the database-management system (DBMS) identifying a threshold condition that must be satisfied by an index of a table comprised by a database managed by the DBMS;
the system deleting all indexes of the database that do not satisfy the threshold condition;
the system reviewing usage statistics that characterize access patterns of data stored in the database; and
the system updating the system's selection of indexes as a function of the statistics, such that the updated selection of indexes consists of all indexes that satisfy the threshold condition.

### Claim 2 (depends on 1)

The system of claim 1, further comprising:
the system updating the threshold condition as a function of the statistics.

### Claim 3 (depends on 1)

The system of claim 1, further comprising:
the system updating the system's selection of indexes if the database fails to satisfy a predetermined performance requirement.

### Claim 4 (depends on 1)

The system of claim 1, where an index satisfies the threshold condition if the index identifies a column of the database that is accessed by no less than a predefined percent of all queries submitted to the database.

### Claim 5 (depends on 4)

The system of claim 4, where the predefined percent is updated as a function of the statistics.

### Claim 6 (depends on 1)

The system of claim 1, where an index satisfies the threshold condition if the index identifies a column of the database that is accessed with a frequency no less than a predefined frequency during a predefined period of time.

### Claim 7 (depends on 1)

The system of claim 1, where the system learns over time, through a cognitive method of machine-intelligence, how to optimize the selection of indexes such that the database provides optimal performance.

### Claim 8

A method for a dynamically self-indexing database-management system, the method comprising:
the system identifying a threshold condition that must be satisfied by an index of a table comprised by a database managed by the DBMS;
the system deleting all indexes of the database that do not satisfy the threshold condition;
the system reviewing usage statistics that characterize access patterns of data stored in the database; and
the system updating the system's selection of indexes as a function of the statistics, such that the updated selection of indexes consists of all indexes that satisfy the threshold condition.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
the system updating the threshold condition as a function of the statistics.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
the system updating the system's selection of indexes if the database fails to satisfy a predetermined performance requirement.

### Claim 11 (depends on 8)

The method of claim 8, where an index satisfies the threshold condition if the index identifies a column of the database that is accessed by no less than a predefined percent of all queries submitted to the database.

### Claim 12 (depends on 8)

The method of claim 8, where an index satisfies the threshold condition if the index identifies a column of the database that is accessed with a frequency no less than a predefined frequency during a predefined period of time.

### Claim 13 (depends on 8)

The method of claim 8, where the system learns over time, through a cognitive method of machine-intelligence, how to optimize the selection of indexes such that the database provides optimal performance.

### Claim 14 (depends on 8)

The method of claim 8, further comprising providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable program code in the computer system, wherein the computer-readable program code in combination with the computer system is configured to implement the identifying, the deleting, the reviewing, and the updating.

### Claim 15

A computer program product, comprising a computer-readable hardware storage device having a computer-readable program code stored therein, the program code configured to be executed by a dynamically self-indexing database-management system comprising a processor, a memory coupled to the processor, and a computer-readable hardware storage device coupled to the processor, the storage device containing program code configured to be run by the processor via the memory to implement a method for dynamically self-indexing database management, the method comprising:
the database-management system (DBMS) identifying a threshold condition that must be satisfied by an index of a table comprised by a database managed by the DBMS;
the system deleting all indexes of the database that do not satisfy the threshold condition;
the system reviewing usage statistics that characterize access patterns of data stored in the database; and
the system updating the system's selection of indexes as a function of the statistics, such that the updated selection of indexes consists of all indexes that satisfy the threshold condition.

### Claim 16 (depends on 15)

The computer program product of claim 15, further comprising:
the system updating the threshold condition as a function of the statistics.

### Claim 17 (depends on 15)

The computer program product of claim 15, further comprising:
the system updating the system's selection of indexes if the database fails to satisfy a predetermined performance requirement.

### Claim 18 (depends on 15)

The computer program product of claim 15, where an index satisfies the threshold condition if the index identifies a column of the database that is accessed by no less than a predefined percent of all queries submitted to the database.

### Claim 19 (depends on 15)

The computer program product of claim 15, where an index satisfies the threshold condition if the index identifies a column of the database that is accessed with a frequency no less than a predefined frequency during a predefined period of time.

### Claim 20 (depends on 15)

The computer program product of claim 15, where the system learns over time, through a cognitive method of machine-intelligence, how to optimize the selection of indexes such that the database provides optimal performance.
