Methods and systems for joining indexes for query optimization in a multi-tenant database
First Claim
1. A computer-implemented method of improving a query, the method comprising:
- receiving, with a server computing device, an original query transmitted by a remote computing device, wherein the original query is associated with data within a database, wherein data in the database has different characteristics for specific columns and at least one of the columns comprises information for tenant-specific filtering, and wherein the database includes at least a first index and a second index, wherein the first index is a standard index and wherein the second index is a custom index;
retrieving, using a processor of the server, tenant-level metadata associated with the data, wherein at least a portion of the data is stored in a common table within the database system;
scanning a first index column to identify a first set of rows, wherein the first index column is selected based on the original query;
scanning a second index column to identify a second set of rows, wherein the second index column is based on the original query;
analyzing, with the processor, metadata generated from tenant-level metadata generated from the data accessible by the group to determine a query syntax; and
generating, using the processor, an improved query using the query syntax, wherein the improved query is based at least in part upon the original query and a result of a join between a first number of rows associated with the first index and a second number of rows associated with the second index.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for query optimization for a multi-tenant database system are provided. Some embodiments comprise receiving at a network interface of a server in a multi-tenant database system an original query transmitted to the multi-tenant database system by a user associated with a tenant, wherein the original query is associated with data accessible by the tenant, and wherein the multi-tenant database system includes at least a first index and a second index. Metadata associated with the data is retrieved, wherein at least a portion of the data is stored in a common table within the multi-tenant database system. A tenant-selective query syntax is determined by analyzing at least one of metadata generated from information about the tenant or metadata generated from the data accessible by the tenant. An improved query is then generated using the query syntax, wherein the improved query is based at least in part upon the original query and a result of a join between a first number of rows associated with the first index and a second number of rows associated with the second index.
139 Citations
36 Claims
-
1. A computer-implemented method of improving a query, the method comprising:
-
receiving, with a server computing device, an original query transmitted by a remote computing device, wherein the original query is associated with data within a database, wherein data in the database has different characteristics for specific columns and at least one of the columns comprises information for tenant-specific filtering, and wherein the database includes at least a first index and a second index, wherein the first index is a standard index and wherein the second index is a custom index; retrieving, using a processor of the server, tenant-level metadata associated with the data, wherein at least a portion of the data is stored in a common table within the database system; scanning a first index column to identify a first set of rows, wherein the first index column is selected based on the original query; scanning a second index column to identify a second set of rows, wherein the second index column is based on the original query; analyzing, with the processor, metadata generated from tenant-level metadata generated from the data accessible by the group to determine a query syntax; and generating, using the processor, an improved query using the query syntax, wherein the improved query is based at least in part upon the original query and a result of a join between a first number of rows associated with the first index and a second number of rows associated with the second index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable medium containing program code executable by a processor in a computer configurable to cause the computer to improve a query in a database, the program code including instructions to:
-
receiving, with a server computing device, an original query transmitted by a remote computing device, wherein the original query is associated with data within a database, wherein data in the database has different characteristics for specific columns and at least one of the columns comprises information for tenant-specific filtering, and wherein the database includes at least a first index and a second index, wherein the first index is a standard index and wherein the second index is a custom index; retrieving, using a processor of the server, tenant-level metadata associated with the data, wherein at least a portion of the data is stored in a common table within the database system; scanning a first index column to identify a first set of rows, wherein the first index column is selected based on the original query; scanning a second index column to identify a second set of rows, wherein the second index column is based on the original query; analyzing, with the processor, metadata generated from tenant-level metadata generated from the data accessible by the group to determine a query syntax; and generating, using the processor, an improved query using the query syntax, wherein the improved query is based at least in part upon the original query and a result of a join between a first number of rows associated with the first index and a second number of rows associated with the second index. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for improving a query in a database, the system comprising:
-
a processor; a network interface; and a computer-readable medium tangibly embodied with instructions capable of configuring the processor to; receive, with a server computing device, an original query transmitted by a remote computing device, wherein the original query is associated with data within a database, wherein data in the database has different characteristics for specific columns and at least one of the columns comprises information for tenant-specific filtering, and wherein the database includes at least a first index and a second index, wherein the first index is a standard index and wherein the second index is a custom index; retrieve, using a processor of the server, tenant-level metadata associated with the data, wherein at least a portion of the data is stored in a common table within the database system; scan a first index column to identify a first set of rows, wherein the first index column is selected based on the original query; scan a second index column to identify a second set of rows, wherein the second index column is based on the original query; analyze metadata generated from tenant-level metadata generated from the data accessible by the group to determine a query syntax; and generate an improved query using the query syntax, wherein the improved query is based at least in part upon the original query and a result of a join between a first number of rows associated with the first index and a second number of rows associated with the second index. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification