问题描述
我下载了带有最新12.2安装的developers days VM,并想尝试12c的内存功能。我已经阅读了文档,做了我认为我需要做的一切,但是不幸的是,我的表似乎不想进入内存 (也就是说,我在v $ im_segments中看不到它)。我试过强制全表扫描,这没什么区别。Alto尝试弹起数据库,但没有帮助。
我做错了什么?autotrace上显示的计划表明Oracle认为该表应该是inmemory,不是吗?然而,v $ im_segments表明它不是。我没有抓住实际的计划来证明是这样。注意-我以前已经在employe雇员表上做了一个完整的工作,所以所有行可能都在缓冲区缓存中,因此物理读取为0。
[oracle@vbgeneric]$ sqlplus hr@orcl SQL*Plus: Release 12.2.0.1.0 Production on Fri Mar 3 18:12:31 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> alter table employees inmemory priority critical; Table altered. SQL> select * from v$im_segments; no rows selected SQL> select * from v$sga; NAME VALUE CON_ID -------------------- ---------- ---------- Fixed Size 8794848 0 Variable Size 402656544 0 Database Buffers 654311424 0 Redo Buffers 7979008 0 In-Memory Area 1073741824 0 SQL> show parameter inmemory; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ inmemory_adg_enabled boolean TRUE inmemory_clause_default string inmemory_expressions_usage string ENABLE inmemory_force string DEFAULT inmemory_max_populate_servers integer 1 inmemory_query string ENABLE inmemory_size big integer 1G inmemory_trickle_repopulate_servers_ integer 1 percent inmemory_virtual_columns string MANUAL optimizer_inmemory_aware boolean TRUE SQL> show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ allow_group_access_to_sga boolean FALSE lock_sga boolean FALSE pre_page_sga boolean TRUE sga_max_size big integer 2G sga_min_size big integer 0 sga_target big integer 1500M unified_audit_sga_queue_size integer 1048576 SQL> set autotrace on SQL> select /*+full(e)*/ count(*) from employees e; COUNT(*) ---------- 107 Execution Plan ---------------------------------------------------------- Plan hash value: 1756381138 -------------------------------------------------------------------------------- - | Id | Operation | Name | Rows | Cost (%CPU)| Time | -------------------------------------------------------------------------------- - | 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | | | | 2 | TABLE ACCESS INMEMORY FULL| EMPLOYEES | 107 | 3 (0)| 00:00:01 | -------------------------------------------------------------------------------- - Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 7 consistent gets 0 physical reads 0 redo size 543 bytes sent via SQL*Net to client 607 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed SQL> set autotrace off SQL> select * from v$im_segments; no rows selected SQL>复制
我做错了什么?autotrace上显示的计划表明Oracle认为该表应该是inmemory,不是吗?然而,v $ im_segments表明它不是。我没有抓住实际的计划来证明是这样。注意-我以前已经在employe雇员表上做了一个完整的工作,所以所有行可能都在缓冲区缓存中,因此物理读取为0。
专家解答
让你的表变大 :-)
从文档中:
如果磁盘上的段为64 KB或更小,则不会在IM列存储中填充它。因此,一些为IM列存储启用的小数据库对象可能不会在其中填充。
从文档中:
如果磁盘上的段为64 KB或更小,则不会在IM列存储中填充它。因此,一些为IM列存储启用的小数据库对象可能不会在其中填充。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
530次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
500次阅读
2025-04-15 17:24:06
墨天轮个人数说知识点合集
JiekeXu
411次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
409次阅读
2025-04-08 09:12:48
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
392次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
391次阅读
2025-04-01 11:08:44
Oracle 19c RAC更换IP实战,运维必看!
szrsu
351次阅读
2025-04-08 23:57:08
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
346次阅读
2025-04-20 10:07:02
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
320次阅读
2025-04-15 14:48:05
oracle定时任务常用攻略
virvle
320次阅读
2025-03-25 16:05:19