System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
First Claim
1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code configured to be executed to cause a computer to implement a method of improving a query in a database, the method comprising:
- for each tenant of a plurality of tenants of a database system, analyzing tenant specific data included in a data table for the tenant;
based on the analyzing, deriving by the database system metadata describing the tenant specific data;
storing by the database system a metadata table specific to the tenant, the metadata table storing the derived metadata describing the tenant specific data;
receiving by the database system a query for retrieving at least a portion of the tenant specific data included in the data table for a first one of the tenants;
in response to the received query, retrieving by the database system the stored metadata table specific to the first one of the tenants, wherein the metadata table is stored by the database system prior to the receipt of the query;
processing the retrieved metadata table specific to the first one of the tenants to determine a particular retrieval path to be used for retrieving the at least a portion of the tenant specific data;
generating a second query to include the retrieval path, such that the second query is customized for the tenant specific data of the first one of the tenants; and
executing, in place of the query, the second query to retrieve the at least a portion of the tenant specific data.
0 Assignments
0 Petitions
Accused Products
Abstract
In embodiments, methods and systems for improving a query in a database system are provided. These method and system embodiments can enable greater contextual knowledge about the types and use of data in tables underlying a relational database to be employed to improve query efficiency. By employing contextual information, embodiments can provide improved queries and/or make recommendations to a query optimizer of a database system to improve its operation based upon knowledge of the data and/or application gathered. Embodiments can be useful in improving query performance in multi-tenant database systems.
-
Citations
4 Claims
-
1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code configured to be executed to cause a computer to implement a method of improving a query in a database, the method comprising:
-
for each tenant of a plurality of tenants of a database system, analyzing tenant specific data included in a data table for the tenant; based on the analyzing, deriving by the database system metadata describing the tenant specific data; storing by the database system a metadata table specific to the tenant, the metadata table storing the derived metadata describing the tenant specific data; receiving by the database system a query for retrieving at least a portion of the tenant specific data included in the data table for a first one of the tenants; in response to the received query, retrieving by the database system the stored metadata table specific to the first one of the tenants, wherein the metadata table is stored by the database system prior to the receipt of the query; processing the retrieved metadata table specific to the first one of the tenants to determine a particular retrieval path to be used for retrieving the at least a portion of the tenant specific data; generating a second query to include the retrieval path, such that the second query is customized for the tenant specific data of the first one of the tenants; and executing, in place of the query, the second query to retrieve the at least a portion of the tenant specific data. - View Dependent Claims (2)
-
-
3. A method, comprising:
-
for each tenant of a plurality of tenants of a database system, analyzing tenant specific data included in a data table for the tenant; based on the analyzing, deriving by the database system metadata describing the tenant specific data; storing by the database system a metadata table specific to the tenant, the metadata table storing the derived metadata describing the tenant specific data; receiving by the database system a query for retrieving at least a portion of the tenant specific data included in the data table for a first one of the tenants; in response to the received query, retrieving by the database system the stored metadata table specific to the first one of the tenants, wherein the metadata table is stored by the database system prior to the receipt of the query; processing the retrieved metadata table specific to the first one of the tenants to determine a particular retrieval path to be used for retrieving the at least a portion of the tenant specific data; generating a second query to include the retrieval path, such that the second query is customized for the tenant specific data of the first one of the tenants; and executing, in place of the query, the second query to retrieve the at least a portion of the tenant specific data.
-
-
4. A system, comprising:
-
a processor; and one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of; for each tenant of a plurality of tenants of a database system, analyzing tenant specific data included in a data table for the tenant; based on the analyzing, deriving by the database system metadata describing the tenant specific data; storing by the database system a metadata table specific to the tenant, the metadata table storing the derived metadata describing the tenant specific data; receiving by the database system a query for retrieving at least a portion of the tenant specific data included in the data table for a first one of the tenants; in response to the received query, retrieving by the database system the stored metadata table specific to the first one of the tenants, wherein the metadata table is stored by the database system prior to the receipt of the query; processing the retrieved metadata table specific to the first one of the tenants to determine a particular retrieval path to be used for retrieving the at least a portion of the tenant specific data; generating a second query to include the retrieval path, such that the second query is customized for the tenant specific data of the first one of the tenants; and executing, in place of the query, the second query to retrieve the at least a portion of the tenant specific data.
-
Specification