暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 内存中表扫描

原创 Asher.HU 2021-02-04
1411


内存中扫描:从内存中的列存储检索行(IM列存储)。

IM列存储是一个可选的SGA区域,以特殊的列格式存储表和分区的副本,这些格式已针对快速扫描进行了优化。


8.2.5.1优化器选择内存中表扫描时

优化器成本模型知道IM列存储的内容。

当用户执行引用IM列存储中的表的查询时,优化程序将计算所有可能的访问方法(包括内存中表扫描)的成本,并选择成本最低的访问方法。

父主题: 内存中表扫描


8.2.5.2内存中查询控件

您可以使用初始化参数控制内存中查询。

以下数据库初始化参数会影响内存中的功能:

  • INMEMORY_QUERY           :此参数在会话或系统级启用或禁用数据库的内存查询。当您想使用或不使用IM列存储来测试工作负载时,此参数很有用。
  • OPTIMIZER_INMEMORY_AWARE :此参数启用(TRUE)或禁用(FALSE)对优化器成本模型,表扩展,布隆过滤器等所做的所有In-Memory增强功能。将参数设置为FALSE会使优化器在优化SQL语句的过程中忽略表的In-Memory属性。
  • OPTIMIZER_FEATURES_ENABLE:当设置为小于时12.1.0.2,此参数与设置OPTIMIZER_INMEMORY_AWARE为具有相同的效果FALSE

要启用或禁用内存中查询,您可以指定INMEMORYNO_INMEMORY提示hint ,它们对应于每个查询的INMEMORY_QUERY初始化参数。如果SQL语句使用了INMEMORY提示,但IM列存储中尚未加载该对象所引用的对象,则数据库在执行该语句之前不会等待IM列存储中填充该对象。但是,对对象的初始访问会触发IM列存储中的对象填充。

也可以看看:


8.2.5.3内存中表扫描:示例

本示例显示了包括该TABLE ACCESS INMEMORY操作的执行计划

以下示例显示了对该oe.product_information的查询,该查询已使用INMEMORY HIGH选项进行了更改

示例8-3内存中表扫描

SELECT * 
FROM   oe.product_information
WHERE  list_price > 10 
ORDER BY product_id

该语句的计划可能如下所示,其中INMEMORY第2步中关键字指示已从IM列存储中访问了部分或全部对象:

SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR);

SQL_ID  2mb4h57x8pabw, child number 0
-------------------------------------
select * from oe.product_information where list_price > 10 order byproduct_id

Plan hash value: 2256295385
--------------------------------------------------------------------------------------------
|Id| Operation                   | Name                |Rows|Bytes |TempSpc|Cost(%CPU)|Time|
--------------------------------------------------------------------------------------------
| 0| SELECT STATEMENT            |                     |    |      |     |21 (100)|        |
| 1|  SORT ORDER BY              |                     | 285| 62415|82000|21   (5)|00:00:01|
|*2|   TABLE ACCESS INMEMORY FULL| PRODUCT_INFORMATION | 285| 62415|     | 5   (0)|00:00:01|
--------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------
   2 - inmemory("LIST_PRICE">10)
       filter("LIST_PRICE">10)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论