摘要:
Architecture that provides for greater interoperability between column stores and row stores by leveraging the advantages both have to offer. The architecture operates automatically (e.g., dynamically) to move between row oriented processing mode and batch processing mode, and the combination thereof, when it is more beneficial to run in one mode relative to the other mode, or both modes. The auto-switching of data processing between batch and row oriented mode occurs during the execution of a single query. The architecture can automatically modify an operator in the query tree and/or remove an operator if desired at runtime for more efficient processing. This approach also accounts for memory constraints for either of row or column processing.
摘要:
Architecture that provides for greater interoperability between column stores and row stores by leveraging the advantages both have to offer. The architecture operates automatically (e.g., dynamically) to move between row oriented processing mode and batch processing mode, and the combination thereof, when it is more beneficial to run in one mode relative to the other mode, or both modes. The auto-switching of data processing between batch and row oriented mode occurs during the execution of a single query. The architecture can automatically modify an operator in the query tree and/or remove an operator if desired at runtime for more efficient processing. This approach also accounts for memory constraints for either of row or column processing.
摘要:
Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.
摘要:
Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.
摘要:
The present invention extends to methods, systems, and computer program products for performing memory compaction in a main memory database. The main memory database stores records within pages which are organized in doubly linked lists within partition heaps. The memory compaction process uses quasi-updates to move records from a page to the emptied to an active page in a partition heap. The quasi-updates create a new version of the record in the active page, the new version having the same data contents as the old version of the record. The creation of the new version can be performed using a transaction that employs wait for dependencies to allow the old version of the record to be read while the transaction is creating the new version thereby minimizing the effect of the memory compaction process on other transactions in the main memory database.
摘要:
The subject disclosure relates to a concurrency control technique that ensures isolation among concurrently execution transactions optimistically in a multiversion database by applying two optional tests at the end of a read-write transaction: validating the visibility of the read set of the read-write transaction(s) and phantom detection by re-scanning and confirming no new version have appeared in the view. Depending on desired level of isolation, both, one or none of the test are applied. Each version of a data record in an applicable database can be assigned two timestamps indicating the lifetime the version. The value of a version timestamp, though assigned, may be conditional on a transaction committing.
摘要:
This disclosure provides techniques for asynchronously maintaining database indexes or sub-indexes. For example, a database management server may receive a data manipulation statement to modify particular data stored in a database and determine whether an index associated with executing the statement is maintained asynchronously. When the index is maintained asynchronously, maintenance of the index to reflect changes made to the particular data by executing the data manipulation statement may be delayed until an index maintenance event. The index maintenance may be based on an isolation level of a transaction including a query that triggered the index maintenance.
摘要:
A system for optimizing queries against a database is described. The system comprises a memo structure that encodes a plurality of query expressions. The system also includes a signature mechanism that enables an assignment of the query expressions into equivalence classes. Methods of using such a system are additionally provided.
摘要:
A system and method that facilitates and effectuates estimating the result of performing a data analysis operation on a set of data. Employing an approximation of the data analysis operation on a statistically valid random sample view of the data allows for a statistically accurate estimate of the result to be obtained. Sequential sampling in the view enables the approximated operation to evaluate accuracy conditions at intervals during the scan of the sample view and obtain the estimated result without having to scan the entire sample view. Feedback regarding the accuracy of the estimated result can be captured when the data analysis operation is performed against the set of data. Process control techniques can be employed with the feedback to maintain the statistical validity of the sample view.
摘要:
Parameterized queries are optimized by a transformational optimizer. The optimizer produces a dynamic plan that embeds multiple plan options that may be selected to execute a particular query. Parameter distribution improves query execution efficiency and performance by exploring a sample parameter space representative of the parameter values actually used. The dynamic plans can be simplified while maintaining an acceptable level of optimality by reducing the number of plan options. The reduction is achieved by eliminating switch unions to alternatives that are close in cost. Both approaches of parameter space exploration and dynamic plan generation are deeply integrated into the query optimizer.