Database Index Optimization via Operation Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Determining an optimal set of indexes for improving database system performance is challenging due to the size and complexity of modern databases, as adding more indexes can increase memory usage and degrade performance for operations like INSERT, UPDATE, and DELETE.
Innovation Solution
A database system collects and analyzes trace data to identify candidate indexes, combinations, and consolidated indexes that improve performance by partitioning database operations based on accessed tables, estimating cost contributions, and recommending the most effective indexes to add.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If more indexes are added to improve database query performance, then query speed is improved, but memory usage increases and performance of INSERT, UPDATE, and DELETE operations degrades
Solution Approach 1:
The patent segments the database operations into different categories (SELECT, INSERT, UPDATE, DELETE) and analyzes their cost contributions separately. This allows the system to identify which specific operation types benefit from indexing without unnecessarily indexing all operations, thus improving query speed while controlling memory usage.
Solution Approach 2:
The system dynamically adjusts indexing parameters based on workload analysis. By collecting trace data and calculating cost contributions of different operations, the system determines optimal indexing parameters that balance query performance improvement against memory consumption and write operation performance degradation.
2Speed
If more indexes are added to improve database query performance, then query speed is improved, but performance of INSERT, UPDATE, and DELETE operations degrades
Solution Approach 1:
The patent applies partial action by selectively adding indexes only for operation types that benefit most from them. By analyzing cost contributions and identifying that SELECT operations typically benefit more from indexes than INSERT, UPDATE, or DELETE operations, the system adds indexes partially rather than comprehensively, thus improving query speed while minimizing degradation of write operations.
Solution Approach 2:
The system changes the indexing parameter (whether to create an index) based on the type of database operation and its cost contribution. This dynamic parameter adjustment ensures that indexes are created only when they provide net performance benefit, balancing query performance improvement against write operation performance.
3Productivity
If the system analyzes all possible index combinations to find the optimal set, then performance optimization is improved, but system complexity increases
Solution Approach 1:
The patent extracts and focuses on the most critical factor for index optimization: cost contribution analysis of different database operations. By taking out this key element and building the optimization strategy around it, the system avoids the complexity of analyzing all possible index combinations while still achieving effective performance optimization.
Solution Approach 2:
The system performs self-service by automatically analyzing its own workload through trace data collection and cost contribution calculation. This automated analysis eliminates the need for complex manual index optimization processes and reduces system complexity while maintaining effective performance optimization.
Data Source
AI summary
Methods and systems for identifying one or more indexes are described. A system can collect a set of database operations that were performed during a given time window. Next, the system can partition the set of database operations based on a set of database tables that were accessed by the set of database operations. Then, for each database table in the set of database tables, the system can determine a set of indexes that are candidates for improving database system performance. Next, based on the candidate indexes, the system can identify one or more indexes, one or more combinations of indexes, and/or a consolidated index that improve overall database system performance.


