摘要:
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 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 provided for processing a query, including receiving the query, where the query specifies certain operations to be performed, including (a) a first set of one or more operations that are to be performed on a markup language data source and (b) a second set of one or more operations that are to be performed on a second data source. Then it is determined that a first server that manages the markup language data source is capable of performing the first set of operations. A request is sent to the first server to perform the first set of operations. A response is received, where the response contains results of performing the first set of operations on the markup language data source. Finally, results are generated for the query based at least in part on the results of performing the first set of operations.
摘要:
Techniques are provided for processing a query including receiving the query, where the query specifies certain operations; determining that the query includes a first portion in a first query language and a second portion in a second query language; generating a first in-memory representation for the first portion; generating a second in-memory representation for the second portion; generating a third in-memory representation of the query based on the first in-memory representation and the second in-memory representation; and performing the certain operations based on the third in-memory representation.
摘要:
A method and apparatus for rewriting a database command containing an embedded XML expression such that the rewritten database command recites a text function, in lieu of the embedded XML expression, is provided. Advantageously, a DBMS may take advantage of the efficiencies in storing XML data within the database, while avoiding the generation of unnecessary XML elements in processing the query when the XML elements contribute nothing to the outcome of the query. Cost-base or rule-based analysis may be performed to determine how to rewrite a received database command. The database server may functionally evaluate the text function or may use an index defined on a column of the database. The text function may function as a primary filter or may reference a column upon which an index is defined, wherein the index operates at the same or higher level than a column being referenced in the embedded XML expression.
摘要:
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.
摘要:
Commonly searched nodes of complex data types contained in a collection of XML documents can be projected to, and their values can be stored in, corresponding columns in XML Table Index tables in a database system. In one embodiment, those columns stores logical pointers, rather than raw values, of the complex data types. Domain indexes are further provided to index at least one of the columns of complex data types in XML Table Indexes. The inclusion of complex data types and domain indexes provide a more efficient mechanism for searching domain specific data, such as audio, video, text stored in the collection of XML documents. Query optimizer logic of the database system can prepare one or more query execution plans for a submitted query including a plan that leverages XML Table Indexes and domain indexes and select a query execution plan based on cost information.
摘要:
XML table indexes provide a more efficient mechanism for searching data stored in aggregate form. XML table indexes are a set of tables created to project out in column form commonly sought metadata from stored XML documents. By projecting the data includes into column form, queries on the XML documents can be efficiently processed as they can leverage the enhanced functionality provided by the database tables. The XML table indexes may use aliases, partitioning, constraints and other functions to further improve query flexibility and performance.
摘要:
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.
摘要:
Commonly searched nodes of complex data types contained in a collection of XML documents can be projected to, and their values can be stored in, corresponding columns in XML Table Index tables in a database system. In one embodiment, those columns stores logical pointers, rather than raw values, of the complex data types. Domain indexes are further provided to index at least one of the columns of complex data types in XML Table Indexes. The inclusion of complex data types and domain indexes provide a more efficient mechanism for searching domain specific data, such as audio, video, text stored in the collection of XML documents. Query optimizer logic of the database system can prepare one or more query execution plans for a submitted query including a plan that leverages XML Table Indexes and domain indexes and select a query execution plan based on cost information.