System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
First Claim
1. A method in a Multitenant Database System, the method comprising:
- generating tenant-level statistics for each of a plurality of tenants having data stored within a database system of the Multitenant Database System, wherein the database system includes one or more data tables to store the data, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the one or more data tables;
receiving communications from user systems over a network to request tenant-level data from the Multitenant Database System, the communications received at an interface of the Multitenant Database System;
generating one or more queries designed to access the requested tenant-level data;
optimizing the generated one or more queries based on the generated tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being searched and based further on contextual information having data specific to the individual tenant among the plurality of tenants, wherein the contextual information describes distribution of the individual tenant'"'"'s data as stored within the database system.
1 Assignment
0 Petitions
Accused Products
Abstract
A query optimizing system and methods employ contextual knowledge about the types and use of data and/or applications in tables underlying a relational database to provide improved queries and/or make recommendations to a query optimizer of a database based upon knowledge of the data and/or application gathered. A multi-tenant database, in which querying is conducted on multiple tenant data stored in a single table, provides for determining tenant-level statistics, data sharing, user/tenant views, user-level access/capacities, custom entities, custom fields and/or other contextual information about users and tenants, and for providing query optimization and/or query optimizer recommendations corresponding to such information.
341 Citations
30 Claims
-
1. A method in a Multitenant Database System, the method comprising:
-
generating tenant-level statistics for each of a plurality of tenants having data stored within a database system of the Multitenant Database System, wherein the database system includes one or more data tables to store the data, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the one or more data tables; receiving communications from user systems over a network to request tenant-level data from the Multitenant Database System, the communications received at an interface of the Multitenant Database System; generating one or more queries designed to access the requested tenant-level data; optimizing the generated one or more queries based on the generated tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being searched and based further on contextual information having data specific to the individual tenant among the plurality of tenants, wherein the contextual information describes distribution of the individual tenant'"'"'s data as stored within the database system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A non-transitory medium storing program code that, when executed by a central processing unit of a Multitenant Database System, the program code causes the Multitenant Database System to perform operations including:
-
generating tenant-level statistics for each of a plurality of tenants having data stored within a database system of the Multitenant Database System, wherein the database system includes one or more data tables to store the data, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the one or more data tables; receiving communications from user systems over a network to request tenant-level data from the Multitenant Database System, the communications received at an interface of the Multitenant Database System; generating one or more queries designed to access the requested tenant-level data; optimizing the generated one or more queries based on the generated tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being searched and based further on contextual information having data specific to the individual tenant among the plurality of tenants, wherein the contextual information describes distribution of the individual tenant'"'"'s data as stored within the database system.
-
-
30. A Multitenant Database System, comprising:
-
a database system including one or more data tables to store data for a plurality of tenants, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the one or more data tables; a statistics generating module to generate tenant-level statistics for each of the plurality of tenants having data stored within the database system of the Multitenant Database System; an interface to receive communications from user systems over a network requesting tenant-level data from the Multitenant Database System via one or more queries designed to access the requested tenant-level data; and a query optimization module to optimize the one or more queries based on the generated tenant-level statistics for an individual tenant among the plurality of tenants whose data is being searched and based further on contextual information having data specific to the individual tenant among the plurality of tenants, wherein the contextual information describes distribution of the individual tenant'"'"'s data as stored within the database system.
-
Specification