Query optimization in a multi-tenant database system
First Claim
Patent Images
1. A method of optimizing a query in a multi-tenant database, said multi-tenant database having one or more data tables, each table having one or more logical columns defining data categories and one or more logical rows associated with one or more tenants, wherein a plurality of tenants have data stored in the data tables, the method comprising:
- determining database indices for one or more of the data tables;
generating tenant-level statistics for one or more of said plurality of tenants for one or more of the data tables;
receiving a SQL query;
optimizing the SQL query based on the database indices; and
optimizing the SQL query based on the tenant-level statistics, thereby enabling SQL query optimization according to greater semantic knowledge of use of the data tables.
4 Assignments
0 Petitions
Accused Products
Abstract
More efficient querying of a multi-tenant database using dynamic tuning of database indices. A layer of meta-data associates data items with tenants, e.g., via tags, and the meta-data is used to optimize searches by channeling processing resources during a query to only those pieces of data bearing the relevant tenant'"'"'s unique tag.
130 Citations
34 Claims
-
1. A method of optimizing a query in a multi-tenant database, said multi-tenant database having one or more data tables, each table having one or more logical columns defining data categories and one or more logical rows associated with one or more tenants, wherein a plurality of tenants have data stored in the data tables, the method comprising:
-
determining database indices for one or more of the data tables; generating tenant-level statistics for one or more of said plurality of tenants for one or more of the data tables; receiving a SQL query; optimizing the SQL query based on the database indices; and optimizing the SQL query based on the tenant-level statistics, thereby enabling SQL query optimization according to greater semantic knowledge of use of the data tables. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 26, 27, 29, 30, 31, 32, 33)
-
-
11. A multi-tenant database system, comprising:
-
a database having one or more data tables, each table having one or more columns defining data categories and one or more rows associated with one or more tenants, wherein a plurality of tenants have data stored in the data tables; a database indices determining module configured to generate database indices for one or more of the data tables of the multi-tenant database; a tenant-level statistics generating module configured to generate tenant-level statistics for one or more tenants for one or more of the data tables; a database indices optimization module, configured to optimize a database query on the database indices; and a tenant-level query optimization module, configured to optimize a database query based on the tenant-level statistics. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 28, 34)
-
-
21. A method of optimizing a query in a multi-tenant database, said database having one or more data tables, each table having one or more logical columns defining data categories and one or more logical rows associated with one or more tenants, wherein a plurality of tenants have data stored in the data tables, and wherein each tenant includes one or more users, the method comprising:
-
processing the data tables so as to determine tenant-level statistics for each of said plurality of tenants; processing the data tables so as to determine user-level statistics for each of said plurality of users; receiving a SQL query; and optimizing the SQL query based on one or both of the tenant-level statistics and the user-level statistics. - View Dependent Claims (22, 23, 24, 25)
-
Specification