Patent US5822749A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5822749A Expired / Lapsed US ⏱️ 0.0 years remaining

Database system with methods for improving query performance with cache optimization strategies

Assignee: Sybase Inc
•
Filing: 1997-02-28
•
Granted: 1998-10-13
•
Expires: 2017-02-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Database system and methods are described for improving execution speed of database queries (e.g., for transaction processing and for decision support) by optimizing use of buffer caches. The system includes an Optimizer for formulating an optimal strategy for a given query. More particularly, the Optimizer communicates with a Buffer Manager before it formulates the query plan. For instance, the Optimizer may query the Buffer Manager for the purpose of determining whether the object of interest (e.g., table or index to be scanned) exists in its own buffer cache (i.e., whether it has been bound to a particular named cache). If the object exists in its own cache, the Optimizer may inquire as to how much of the cache (i.e., how much memory) the object requires, together with the optimal I/O size for the cache (e.g., 16K blocks). Based on this information, the Optimizer formulates a query strategy or plan with "hints," which are ultimately passed to the Cache or Buffer Manager. By formulating "hints" for the Buffer Manager at the level of the Optimizer, knowledge of the query is, in effect, passed down to the Buffer Manager so that it may service the query using an optimal caching strategy--one based on the dynamics of the query itself. Based on the "hints" received from the Optimizer, the Buffer Manager can fine tune input/output (i.e., cache management) for the query. Specific Optimizer strategies are described for each scan method available to the system, including heap scan, clustered index, and non-clustered index access. Additional strategies are described for multi-table access during processing of join queries.

Inventors

  • 👤 Brijesh Agarwal

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 18:37
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0875; G06F12/0866; G06F16/00; G06F16/20; G06F16/22; G06F16/2228; G06F16/24; G06F16/245; G06F16/2455; G06F16/24553; G06F16/24554; G06F16/24557; G06F12/0223; G06F12/023; G06F2212/00; G06F2212/31; G06F2212/311; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 162 words
In a system comprising a database for storing and retrieving information from database tables, each database table comprising a plurality of data pages for storing data records, a method for retrieving information from database tables in response to a database query, the method comprising: receiving a query specifying retrieval of specific information of interest from a database table, said database table having a clustered index which stores data pages at its terminal nodes; and retrieving the specific information of interest using a first input/output (I/O) block size and a second I/O block size for retrieving information by: (i) navigating the clustered index for locating a storage location where said particular information of interest is stored using said first I/O block size to retrieve non-terminal nodes as the clustered index is traversed, and (ii) after navigating to the storage location where said specific information of interest is stored, retrieving data pages storing said specific information of interest using said second I/O block size.
Claim 2
Dependent Claim 162 words
In a system comprising a database for storing and retrieving information from database tables, each database table comprising a plurality of data pages for storing data records, a method for retrieving information from database tables in response to a database query, the method comprising: receiving a query specifying retrieval of specific information of interest from a database table, said database table having a clustered index which stores data pages at its terminal nodes; and retrieving the specific information of interest using a first input/output (I/O) block size and a second I/O block size for retrieving information by: (i) navigating the clustered index for locating a storage location where said particular information of interest is stored using said first I/O block size to retrieve non-terminal nodes as the clustered index is traversed, and (ii) after navigating to the storage location where said specific information of interest is stored, retrieving data pages storing said specific information of interest using said second I/O block size.
Claim 3
Dependent Claim 20 words
The method of claim 1, wherein said first I/O block size is smaller in size than said second block size.
Claim 4
Dependent Claim 19 words
The method of claim 1, wherein said first I/O block size is substantially equal to a 2K block size.
Claim 5
Dependent Claim 19 words
The method of claim 1, wherein said second I/O block size is substantially equal to a 16K block size.
Claim 6
Dependent Claim 35 words
The method of claim 1, wherein said second I/O block size is larger in size than each data page, such that substep (ii) retrieves a plurality of contiguous data pages with each I/O block retrieved.
Claim 7
Dependent Claim 23 words
The method of claim 1, wherein said first I/O block size is equal in size to each non-terminal node of the clustered index.
Claim 8
Dependent Claim 40 words
The method of claim 1, wherein each data page has a size substantially equal to a 2K block, and wherein said second I/O block size is substantially equal to a block size which is a multiple of a 2K block.
Claim 9
Dependent Claim 28 words
The method of claim 7, wherein said second I/O block size is substantially equal to a selected one of a 4K, 6K, 8K, 16K, 32K, and 64K block.
Claim 10
Dependent Claim 25 words
The method of claim 1, further comprising: repeating substep (ii) multiple times until all data pages storing said specific information of interest have been retrieved.
Claim 11
Dependent Claim 33 words
The method of claim 1, wherein said non-terminal nodes each store a reference pointing to another non-terminal node or pointing to a terminal node which stores a data page having information of interest.
Claim 12
Dependent Claim 152 words
In a database system comprising a database for storing and retrieving information from database tables, a method for retrieving information from database tables in response to a database query, the method comprising: receiving a query specifying retrieval of specific information of interest from a database table, said database having an index including terminal nodes each of which points to a particular data page; retrieving the specific information of interest using a first input/output (I/O) block size and a second I/O block size for retrieving information by: (i) navigating the index for locating a terminal node which points to a storage location where said information of interest is stored using said first I/O block size to retrieve each node of the index traversed, and (ii) after locating a storage location where said specific information of interest is stored, retrieving data pages storing said specific information of interest using said second I/O block size.
Claim 13
Dependent Claim 152 words
In a database system comprising a database for storing and retrieving information from database tables, a method for retrieving information from database tables in response to a database query, the method comprising: receiving a query specifying retrieval of specific information of interest from a database table, said database having an index including terminal nodes each of which points to a particular data page; retrieving the specific information of interest using a first input/output (I/O) block size and a second I/O block size for retrieving information by: (i) navigating the index for locating a terminal node which points to a storage location where said information of interest is stored using said first I/O block size to retrieve each node of the index traversed, and (ii) after locating a storage location where said specific information of interest is stored, retrieving data pages storing said specific information of interest using said second I/O block size.
Claim 14
Dependent Claim 20 words
The method of claim 11, wherein said first I/O block size is smaller in size than said second block size.
Claim 15
Dependent Claim 19 words
The method of claim 11, wherein said first I/O block size is substantially equal to a 2K block size.
Claim 16
Dependent Claim 19 words
The method of claim 11, wherein said second I/O block size is substantially equal to a 16K block size.
Claim 17
Dependent Claim 35 words
The method of claim 11, wherein said second I/O block size is larger in size than each data page, such that substep (ii) retrieves a plurality of contiguous data pages with each I/O block retrieve.
Claim 18
Dependent Claim 21 words
The method of claim 11, wherein said first I/O block size is equal in size to each node of the index.
Claim 19
Dependent Claim 40 words
The method of claim 11, wherein each data page has a size substantially equal to a 2K block, and wherein said second I/O block size is substantially equal to a block size which is a multiple of a 2K block.
Claim 20
Dependent Claim 28 words
The method of claim 17, wherein said second I/O block size is substantially equal to a selected one of a 4K, 6K, 8K, 16K, 32K, and 64K block.
Claim 21
Dependent Claim 25 words
The method of claim 11, further comprising: repeating substep (ii) multiple times until all data pages storing said specific information of interest have been retrieved.
Claim 22
Dependent Claim 12 words
The method of claim 11, wherein said index comprises a non-clustered index.
Claim 23
Dependent Claim 150 words
In a database system comprising a database for storing and retrieving information from database tables, each database table comprising a plurality of data pages for storing data records, a method for retrieving information from database tables in response to a database query, the method comprising: receiving a query specifying retrieval of specific information of interest by joining first and second database tables; determining a join order by assigning one of the tables to serve as an outer join table and the other table to serve as an inner join table, such that the system will scan the inner join table for each record of the outer table, for locating said specific information of interest; and retrieving the specific information of interest by using a fetch and discard strategy on the outer join table, such that most-recently used data pages of the outer join table fetched are preferentially discarded from memory.
Claim 24
Dependent Claim 150 words
In a database system comprising a database for storing and retrieving information from database tables, each database table comprising a plurality of data pages for storing data records, a method for retrieving information from database tables in response to a database query, the method comprising: receiving a query specifying retrieval of specific information of interest by joining first and second database tables; determining a join order by assigning one of the tables to serve as an outer join table and the other table to serve as an inner join table, such that the system will scan the inner join table for each record of the outer table, for locating said specific information of interest; and retrieving the specific information of interest by using a fetch and discard strategy on the outer join table, such that most-recently used data pages of the outer join table fetched are preferentially discarded from memory.
Claim 25
Dependent Claim 18 words
The method of claim 21, wherein data pages of the inner join table are preferentially kept in memory.
Claim 26
Dependent Claim 32 words
The method of claim 21, further comprising: As each table is scanned, retrieving data pages by using an input/output (I/O) block size which is larger than the size of each data page.
Claim 27
Dependent Claim 23 words
The method of claim 23, wherein said I/O block size is equal to a size which is a multiple of a 2K block.
Claim 28
Dependent Claim 26 words
The method of claim 21, wherein joining first and second database tables includes joining the two tables on one or more columns common to both tables.

References Cited (Backward Citations)

US4989132A Cited
US5452445A Cited
US5555388A Cited
US5671403A Cited
US5666525A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-12 2002-04-13 2002-10-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-12 2006-04-13 2006-10-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-12 2010-04-13 2010-10-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag