摘要:
A method and apparatus for processing queries is provided. A query is received at a mid-tier node of a multi-tier system. The mid-tier node includes a mid-tier cache that is configured to cache relational tables from one or more databases managed by a database server in a database tier of the multi-tier system. At the mid-tier node, a determination is made whether the received query includes an operator for requesting data of an XML datatype from the database server, where the XML datatype is supported as a native datatype by the database server. If a determination is made that the query includes such operator, then one or more portions of one or more relational tables are retrieved from the database server and stored in the mid-tier cache. The one or more relational tables store, in the one or more portions, index information associated with the requested data of the XML datatype. The received query is rewritten into a relational query against at least the one or more portions of the one or more relational tables that are stored in the mid-tier cache.
摘要:
Constraints that restrict how corresponding identifiable groups of files are stored in a database, are enforced on corresponding file data. In response to a query on any data from an identifiable group of files, the effect of the constraint on how the corresponding data is stored is determined. The original query is rewritten, based on the effect of the constraint, so that the rewritten query is directed to a particular subset of the data stored in the database. Consequently, the search space is restricted to an identifiable subset of the database and execution of the rewritten query is more efficient than execution of the original query.
摘要:
An XQuery access API is described, for providing access to XML data from a data source, using the XQuery language. A requestor can request, from a server, performance of an operation on XML data, wherein request messages and response messages conform to the Simple Object Access Protocol (SOAP). Request and response messages can be transmitted using Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol over Secure Socket Layer (HTTPS). The format of the request and response messages is specified in a definition of a Web service, where the definition conforms to the Web Service Description Language (WSDL).
摘要:
Constraints that restrict how corresponding identifiable groups of files are stored in a database, are enforced on corresponding file data. In response to a query on any data from an identifiable group of files, the effect of the constraint on how the corresponding data is stored is determined. The original query is rewritten, based on the effect of the constraint, so that the rewritten query is directed to a particular subset of the data stored in the database. Consequently, the search space is restricted to an identifiable subset of the database and execution of the rewritten query is more efficient than execution of the original query.
摘要:
A method for optimizing queries is described. A query, which includes a first expression for determining whether each of a set of values evaluates to NULL or NOT NULL, is received. At compile-time, a first representation of the query is generated, where the first representation indicates that the query is to be performed based on the first expression. Based on the first expression, a second expression is determined. The second expression is such that the first expression would evaluate to any NOT NULL value if and only if the second expression would evaluate to any NOT NULL value. The second expression, when evaluated, is much more computationally efficient compared with the evaluation of the first expression. Based on the first representation, a second representation of the query is generated, where the second representation indicates that the query is to be performed based on the second expression. Thereafter, the query is executed based on the second representation.
摘要:
Techniques are described for executing queries that have XPath sections that specify unmappable paths. The techniques involve splitting the unmappable paths into (1) a mappable path fragment, and (2) an unmappable path fragment. After an unmappable path has been split into a mappable path fragment and an unmappable path fragment, the XPath section is replaced with a replacement XPath section. The replacement XPath section specifies two operations: a “mappable operation” that is based on the mappable path fragment, and an “unmappable operation” that is based on the unmappable path fragment. The portion of the replacement XPath section that specifies the mappable operation is rewritten to access underlying relational structures. Consequently, when the rewritten query is executed, a smaller amount of XML data needs to be materialized to evaluate the unmappable path fragment than would otherwise have been required to evaluate the original unmappable path.
摘要:
A computer is programmed to accept queries over streams of, data structured as per a predetermined syntax (e.g. defined in XML). The computer is further programmed to execute such queries continually (or periodically) on data streams of tuples containing structured data that conform to the same predetermined syntax. In many embodiments, the computer includes an engine that exclusively processes only structured data, quickly and efficiently. The computer invokes the structured data engine in two different ways depending on the embodiment: (a) directly on encountering a structured data operator, or (b) indirectly by parsing operands within the structured data operator which contain path expressions, creating a new source to supply scalar data extracted from structured data, and generating additional trees of operators that are natively supported, followed by invoking the structured data engine only when the structured data operator in the query cannot be fully implemented by natively supported operators.
摘要:
A method for optimizing queries is described. A query, which includes a first expression for determining whether each of a set of values evaluates to NULL or NOT NULL, is received. At compile-time, a first representation of the query is generated, where the first representation indicates that the query is to be performed based on the first expression. Based on the first expression, a second expression is determined. The second expression is such that the first expression would evaluate to any NOT NULL value if and only if the second expression would evaluate to any NOT NULL value. The second expression, when evaluated, is much more computationally efficient compared with the evaluation of the first expression. Based on the first representation, a second representation of the query is generated, where the second representation indicates that the query is to be performed based on the second expression. Thereafter, the query is executed based on the second representation.
摘要:
A method for optimizing functions is described. A query including an invocation of a function is received. A function declaration indicates that the function is associated with a first set of datatypes. At compile-time, static type-checking is performed on the query. During the static type-checking, a second set of datatypes is determined for the function. The second set of datatypes includes the datatype of each argument of the function that is specified in the invocation. The query is compiled, where compiling the query includes compiling the function with the second set of datatypes.
摘要:
A mechanism is provided for accessing XML data in a database system using a combination of a XML Table Index table and a XML Path Index table. By using a combination of a XML Table Index and a XML Path Index, both selection access and navigational access involved in a query can be optimized. For example, the XML Table Index gives the database system an ability to readily evaluate the predicate expression, thereby improving the selection access. Moreover, in some embodiments, the selection access can be further improved by using secondary indexes on columns contained in the XML Table Index table. In a complementary manner, the XML Path Index table gives the database system an ability to navigate to a specific location given a path expression, thereby improving the navigational access. Thus, by combining both tables, both selection and navigational accesses are improved.