-
公开(公告)号:US10216794B2
公开(公告)日:2019-02-26
申请号:US15945733
申请日:2018-04-04
Applicant: Oracle International Corporation
Inventor: Dinesh Das , Jiaqi Yan , Mohamed Zait , Nirav Vyas
Abstract: Techniques are described herein for filtering data from a table during an in-memory scan. Predicates are pushed to in-memory scan to avoid scanning unnecessary columnar units and reduce the overhead of decompressing, row stitching and distributing data during evaluation. Techniques are described herein for generating implied predicates that have conditions on single columns from complex predicates that have multiple conditions on the same column, which can be evaluated during an in-memory scan. Techniques are also described herein to reduce the overhead of a table scan for processing a join query. When redistributing a first table for performing a hash-join, the nodes performing an in-memory scan of the first table may create a filter that tracks unique values from the join key. Data from the second table is only processed and transferred to other nodes in the cluster if the values from the join key pass through the filter.
-
公开(公告)号:US20140236921A1
公开(公告)日:2014-08-21
申请号:US14251521
申请日:2014-04-11
Applicant: Oracle International Corporation
Inventor: Peter Belknap , Benoit Dageville , Dinesh Das , Khaled Yagoub , Mohamed Zait , Mohamed Ziauddin
IPC: G06F17/30
CPC classification number: G06F17/30469 , G06F17/30463
Abstract: Approaches, techniques, and mechanisms are disclosed for ensuring that a database command is executed according to a query plan that has been verified to be actually optimal. Except in rare circumstances, a database server does not execute a query plan unless it is first verified by the database server. The database server receives a request to execute a database command. The database server determines an unverified plan is the best plan for satisfying the request. Rather than risk the unknown behavior of an unverified plan, the database server instead satisfies the request according to a verified plan. Subsequently—for example as part of a scheduled job—the database server executes the unverified plan to determine performance statistics. Based at least on the performance statistics, the database server determines whether or not to verify the unverified plan. Techniques for concurrent and optimistic verifications are also disclosed.
Abstract translation: 公开了方法,技术和机制,以确保根据已被验证为实际最佳的查询计划来执行数据库命令。 除非在极少数情况下,数据库服务器不执行查询计划,除非数据库服务器首先进行了验证。 数据库服务器接收执行数据库命令的请求。 数据库服务器确定未验证的计划是满足请求的最佳方案。 而不是冒险未验证的计划的未知行为,数据库服务器而是根据验证的计划满足请求。 随后 - 例如作为计划作业的一部分 - 数据库服务器执行未验证的计划以确定性能统计信息。 至少基于性能统计,数据库服务器确定是否验证未验证的计划。 还公开了并发和乐观验证的技术。
-
公开(公告)号:US10025823B2
公开(公告)日:2018-07-17
申请号:US14806614
申请日:2015-07-22
Applicant: Oracle International Corporation
Inventor: Dinesh Das , Jiaqi Yan , Mohamed Zait , Nirav Vyas
CPC classification number: G06F16/24542 , G06F11/34 , G06F12/023 , G06F16/2282 , G06F16/2365 , G06F16/24544 , G06F16/2455 , G06F16/2456 , G06F16/258 , G06F2212/1044 , G06F2212/401
Abstract: Techniques are described herein for filtering data from a table during an in-memory scan. Predicates are pushed to in-memory scan to avoid scanning unnecessary columnar units and reduce the overhead of decompressing, row stitching and distributing data during evaluation. Techniques are described herein for generating implied predicates that have conditions on single columns from complex predicates that have multiple conditions on the same column, which can be evaluated during an in-memory scan. Techniques are also described herein to reduce the overhead of a table scan for processing a join query. When redistributing a first table for performing a hash-join, the nodes performing an in-memory scan of the first table may create a filter that tracks unique values from the join key. Data from the second table is only processed and transferred to other nodes in the cluster if the values from the join key pass through the filter.
-
公开(公告)号:US10229158B2
公开(公告)日:2019-03-12
申请号:US14251521
申请日:2014-04-11
Applicant: Oracle International Corporation
Inventor: Peter Belknap , Benoit Dageville , Dinesh Das , Khaled Yagoub , Mohamed Zait , Mohamed Ziauddin
Abstract: Approaches, techniques, and mechanisms are disclosed for ensuring that a database command is executed according to a query plan that has been verified to be actually optimal. Except in rare circumstances, a database server does not execute a query plan unless it is first verified by the database server. The database server receives a request to execute a database command. The database server determines an unverified plan is the best plan for satisfying the request. Rather than risk the unknown behavior of an unverified plan, the database server instead satisfies the request according to a verified plan. Subsequently—for example as part of a scheduled job—the database server executes the unverified plan to determine performance statistics. Based at least on the performance statistics, the database server determines whether or not to verify the unverified plan. Techniques for concurrent and optimistic verifications are also disclosed.
-
公开(公告)号:US10073885B2
公开(公告)日:2018-09-11
申请号:US14806597
申请日:2015-07-22
Applicant: Oracle International Corporation
Inventor: Dinesh Das , Jiaqi Yan , Jesse Kamp , Prashant Gaharwar , Satyanarayana R. Valluri
CPC classification number: G06F16/24542 , G06F11/34 , G06F12/023 , G06F16/2282 , G06F16/2365 , G06F16/24544 , G06F16/2455 , G06F16/2456 , G06F16/258 , G06F2212/1044 , G06F2212/401
Abstract: Techniques are provided for determining costs for alternative execution plans for a query, where at least a portion of the data items required by the query are in in-memory compression-units within volatile memory. The techniques involve maintaining in-memory statistics, such as statistics that indicate what fraction of a table is currently present in in-memory compression units, and the cost of decompressing in-memory compression units. Those statistics are used to determine, for example, the cost of a table scan that retrieves some or all of the necessary data items from the in-memory compression-units.
-
公开(公告)号:US10025822B2
公开(公告)日:2018-07-17
申请号:US14806601
申请日:2015-07-22
Applicant: Oracle International Corporation
Inventor: Dinesh Das , Mohamed Zait , Jiaqi Yan , Niloy Mukherjee
Abstract: Techniques are described herein for accurately estimating the cost of performing a join against “mirror format” data that is at least partially located in volatile memory. Mirror format data is a copy of on-disk data (a.k.a. persistent format data) stored in a different format in volatile memory. In the preferred embodiment described herein, the mirror format data is stored in a column-major format, while the persistent format data is stored in a row-major format. The cost of performing a join query with a particular join method against mirror format data is different than the cost of performing the same particular join method against persistent format data. Techniques described herein for estimating the cost of multiple join query execution plans, and selecting the most optimized plan.
-
-
-
-
-