NAME AVALUE SDESC _inmemory_check_prot_meta FALSE 如果为 true,则将 SMU 区域标记为只读以防止杂散写入 _inmemory_private_journal_quota 100 事务内存中专用日志配额 _inmemory_private_journal_sharedpool_quota 20
姓名 | 价值 | SDESC |
_inmemory_check_prot_meta | 错误 | 如果为 true,则将 SMU 区域标记为只读以防止杂散写入 |
_inmemory_private_journal_quota | 100 | 交易内存私有日志的配额 |
_inmemory_private_journal_sharedpool_quota | 20 | 事务内存对象的配额 |
_inmemory_private_journal_numbkts | 512 | priv jrnl ht bkts 数量 |
_inmemory_private_journal_numgran | 128 | 每个 HT 节点的颗粒数 |
_inmemory_jscan | 0 | 内存中 jscan 启用 |
_inmemory_pin_hist_mode | 16 | IM 固定缓冲区历史记录的设置 |
_inmemory_txn_checksum | 0 | SMU 和私人期刊的校验和 |
_inmemory_buffer_waittime | 100 | 释放一个 SMU 或 IMCU 的等待间隔 |
_inmemory_cu_timeout | 100 | 释放一个 IMCU 的最长等待时间 |
_inmemory_cudrop_timeout | 1000 | 释放期间 IMCU 释放的最长等待时间 |
_inmemory_exclto_timeout | 1000 | 固定 SMU 进行清理的最长等待时间 |
_inmemory_num_hash_latches | 256 | IM 缓冲区锁存器的最大数量 |
_inmemory_strdlxid_timeout | 0 | 确定跨界交易的最长时间 |
_inmemory_incremental_repopulation | 错误 | 如果为 true,将尝试增量重新填充 IMCU |
_inmemory_lock_for_smucreate | 错误 | 在 smu 创建期间获取对象锁定 |
_inmemory_auto_distribute | 正确 | 如果为 true,则启用自动分发 |
_inmemory_autodist_2safe | 错误 | 如果为 true,则使用 2safe 启用自动分发 |
_inmemory_distribute_timeout | 300 | 如果为 true,则使用 2safe 启用自动分发 |
_inmemory_distribute_ondemand_timeout | 300 | 按需重新分发超时 |
内存大小 | 0 | 内存区域的大小(以字节为单位) |
_inmemory_64k_percent | 30 | 64k 池的内存区域百分比 |
_inmemory_min_ima_defersize | 0 | 推迟超出此大小的内存区域分配 |
_inmemory_memprot | 正确 | 启用或禁用内存中的内存保护 |
_inmemory_analyzer_optimize_for | 0 | 内存分析器优化 |
_inmemory_default_flags | 8459 | 基于 inmemory_clause_default 的默认标志 |
_inmemory_default_new | 错误 | 在新表上强制内存 |
inmemory_clause_default | 新表的默认内存子句 | |
inmemory_force | 默认 | 强制表位于内存中或不在内存中 |
内存查询 | 启用 | 指定是否允许内存中查询 |
_inmemory_query_scan | 正确 | 启用内存扫描 |
_inmemory_scan_override | 错误 | 内存中扫描覆盖 |
_inmemory_scan_threshold_percent_noscan | 50 | 内存扫描阈值最大脏不扫描百分比 |
_inmemory_small_segment_threshold | 65536 | 内存中小段阈值(内存中必须更大) |
_inmemory_query_fetch_by_rowid | 错误 | 内存中按 rowid 获取已启用 |
_内存修剪 | 开启 | 内存中修剪 |
_inmemory_enable_sys | 错误 | 使用 sys 用户在系统表空间上启用内存 |
_inmemory_populate_fg | 错误 | 填充在前台 |
_inmemory_pga_per_server | 536870912 | 每个内存填充服务器所需的最小 pga |
inmemory_max_populate_servers | 0 | 最大内存填充服务器 |
_inmemory_servers_throttle_pgalim_percent | 55 | 内存填充服务器限制 pga 限制百分比 |
inmemory_trickle_repopulate_servers_percent | 1 | 内存中的滴流重新填充服务器百分比 |
_inmemory_populate_wait | 错误 | 等待填充完成 |
_inmemory_populate_wait_max | 600 | 分段填充的最长等待时间(以秒为单位) |
_inmemory_imco_cycle | 120 | IMCO 周期(以秒为单位)(睡眠周期) |
_inmemory_enable_population_verify | 1 | 验证内存中的人口 |
_inmemory_log_level | 1 | 内存中日志级别 |
_inmemory_fs_verify | 错误 | 内存中快速启动验证 |
_inmemory_force_fs | 错误 | 内存中快速启动力 |
_inmemory_force_fs_tbs | SYSAUX | 内存中快速启动强制表空间 |
_inmemory_force_fs_tbs_size | 1073741824 | 内存中快速启动强制表空间大小 |
_inmemory_fs_raise_error | 错误 | 内存中快速启动引发错误 |
_inmemory_fs_nodml | 错误 | 内存中快速启动在填充时假设没有 dmls |
_inmemory_fs_enable | 错误 | 内存中快速启动启用 |
_inmemory_fs_enable_blk_lvl_inv | 正确 | 内存中快速启动启用块级失效 |
_inmemory_fs_blk_inv_blkcnt | 内存中快速启动 CU 失效阈值(块) | |
_inmemory_fs_blk_inv_blk_percent | 20 | 内存中快速启动 CU 失效阈值(块) |
_inmemory_enable_stat_alert | 错误 | 将内存中的统计信息转储到警报日志文件中 |
_inmemory_imcu_align | 正确 | 强制执行 8M IMCU 对齐 |
_inmemory_max_populate_retry | 3 | IM 填充最大重试次数 |
_inmemory_imcu_target_rows | 1048576 | IMCU 目标行数 |
_inmemory_imcu_target_bytes | 0 | IMCU 目标大小(以字节为单位) |
_inmemory_imcu_source_extents | 0 | 每个 IMCU 的源范围数 |
_inmemory_imcu_source_blocks | 0 | 每个 IMCU 的源块数量 |
_inmemory_imcu_source_minbytes | 1048576 | 每个 IMCU 的最小源字节数 |
_inmemory_imcu_populate_minbytes | 5242880 | IMA 中用于填充 IMCU 的最小可用空间 |
_inmemory_imcu_source_analyze_bytes | 134217728 | 每个 IMCU 的源分析字节数 |
_inmemory_imcu_target_maxrows | 8388608 | IMCU 最大目标行数 |
_inmemory_imcu_source_maxbytes | 536870912 | IMCU 最大源大小(以字节为单位) |
_inmemory_max_queued_tasks | 0 | 辅助队列上的最大排队填充任务 |
_inmemory_repopulate_threshold_rows | 内存中重新填充修改行的阈值 | |
_inmemory_repopulate_threshold_blocks | 内存中重新填充修改块的阈值数量 | |
_inmemory_pct_inv_rows_invalidate_imcu | 50 | IMCU 失效的内存中无效行百分比 |
_inmemory_pct_inv_blocks_invalidate_imcu | 100 | IMCU 失效的内存中无效块百分比 |
_inmemory_repopulate_threshold_mintime_factor | 5 | 内存中重新填充最小间隔 (N*timetorepop) |
_inmemory_repopulate_threshold_mintime | 0 | 内存中重新填充最小间隔(毫秒) |
_inmemory_repopulate_threshold_scans | 0 | 内存中重新填充扫描阈值 |
_inmemory_repopulate_priority_scale_factor | 100 | 内存中重新填充优先级阈值比例因子 |
_inmemory_repopulate_invalidate_rate_percent | 100 | 内存中重新填充无效率百分比 |
_inmemory_repopulate_priority_threshold_row | 20 | 内存中重新填充优先级阈值行 |
_inmemory_repopulate_priority_threshold_block | 40 | 内存中重新填充优先级阈值块 |
_inmemory_repopulate_threshold_rows_percent | 5 | 内存中重新填充阈值行无效百分比 |
_inmemory_repopulate_threshold_blocks_percent | 10 | 内存中重新填充阈值阻止无效百分比 |
_inmemory_repopulate_disable | 错误 | 禁用内存中重新填充 |
_inmemory_check_protect | 错误 | 如果为 true,则将内存区域标记为只读以防止杂散写入 |
_内存_校验和 | 错误 | 如果为真,则对内存区域进行校验和以检测杂散写入 |
_inmemory_validate_fetch | 错误 | 如果为 true,则验证内存和磁盘之间的单行提取 |
_inmemory_journal_row_logging | 错误 | 如果为 true,则将整行记录到内存日志中 |
_inmemory_journal_check | 0 | 根据值执行其中一项 DML 验证 |
_inmemory_rows_check_interrupt | 1000 | 中断检查前缓冲的行数 |
_inmemory_dbg_scan | 0 | 内存扫描调试 |
_inmemory_segment_populate_verify | 0 | 内存段填充验证 |
_inmemory_query_check | 0 | 内存中查询检查 |
_inmemory_test_verification | 0 | 内存中验证测试 |
_inmemory_invalidate_cursors | 正确 | 内存填充启用游标失效 |
_inmemory_prepopulate_fg | 0 | 在前台强制预填充内存中的段 |
_inmemory_prepopulate | 正确 | 启用 IMCO 内存填充 |
_inmemory_trickle_repopulate | 正确 | 启用内存中的涓流重新填充 |
_inmemory_trickle_repopulate_threshold_dirty_ratio | 0 | IMCO Trickle Repopulate 脏率阈值 |
_inmemory_trickle_repopulate_min_interval | 300 | IMCO 滴流重新填充间隔 |
_inmemory_trickle_repopulate_fg | 0 | 在前台慢慢重新填充 |
_inmemory_force_non_engineered | 错误 | 在 RAC 上强制非工程系统的内存行为 |
_inmemory_suppress_vsga_ima | 错误 | 抑制 v$sga 中的内存区域 |
optimizer_inmemory_aware | 正确 | 优化内存中的列式感知 |
_optimizer_inmemory_table_expansion | 正确 | 优化表扩展的内存感知 |
_optimizer_inmemory_gen_pushable_preds | 正确 | 优化器为内存中生成可推送谓词 |
_optimizer_inmemory_autodop | 正确 | 内存中优化器 autoDOP 成本计算 |
_optimizer_inmemory_access_path | 正确 | 内存中的优化器访问路径成本 |
_optimizer_inmemory_quotient | 0 | 内存商(内存中格式的行的百分比) |
_optimizer_inmemory_pruning_ratio_rows | 100 | # 行的内存修剪率(修剪后剩余行的百分比) |
_parallel_inmemory_min_time_threshold | 自动 | 阈值,高于该阈值计划可用于内存表并行化(以秒为单位) |
_parallel_inmemory_time_unit | 1 | 用于导出内存表并行度的工作单元(以秒为单位) |
_optimizer_inmemory_bloom_filter | 正确 | 控制内存表的串行布隆过滤器 |
_optimizer_inmemory_cluster_aware_dop | 正确 | 为内存对象关联 DOP |
_optimizer_inmemory_minmax_pruning | 正确 | 控制使用最小/最大修剪来计算内存表的成本 |
测试
In-Memory Database Cache IM in-memory ((null)) IM_transaction IM transaction layer ((null)) IM_Txn_PJ IM Txn Private Journal (ktmpj) IM_Txn_SJ IM Txn Shared Journal (ktmsj) IM_Txn_JS IM Txn Journal Scan (ktmjs) IM_Txn_Conc IM Txn Concurrency (ktmc) IM_Txn_Blk IM Txn Block (ktmb) IM_Txn_Read IM Txn Read (ktmr) IM_space IM space layer ((null)) IM_data IM data layer (kdm) IM_populate IM populating (kdml) IM_background IM background (kdmr) IM_scan IM scans ((null)) IM_journal IM journal ((null)) IM_dump IM dump ((null)) IM_FS IM faststart ((null)) IM_optimizer IM optimizer (kdmo) alter session set events 'trace[IM_scan] disk=medium'; SQL> alter system set inmemory_size=2g scope=spfile; System altered. SQL> shutdown immediate; [oracle@mlab2 ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 3 23:18:18 2014 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> startup; ORACLE instance started. Total System Global Area 2684354560 bytes Fixed Size 2928008 bytes Variable Size 402653816 bytes Database Buffers 117440512 bytes Redo Buffers 13848576 bytes In-Memory Area 2147483648 bytes Database mounted. Database opened. alter session set events 'trace[IM_scan] disk=medium'; select count(*) from mac_imm1; SQL> oradebug setmypid Statement processed. SQL> oradebug tracefile_name /s01/diag/rdbms/c12r1/C12R1/trace/C12R1_ora_16700.trc kdmsirs(): map with 13 extents Ext: 0, dba: 0x18000db, len: 5, skp: 0 Ext: 1, dba: 0x18000e0, len: 8, skp: 0 Ext: 2, dba: 0x18000e9, len: 7, skp: 0 Ext: 3, dba: 0x18000f0, len: 8, skp: 0 Ext: 4, dba: 0x18000f9, len: 7, skp: 0 Ext: 5, dba: 0x1800100, len: 8, skp: 0 Ext: 6, dba: 0x1800109, len: 7, skp: 0 Ext: 7, dba: 0x1800110, len: 8, skp: 0 Ext: 8, dba: 0x1800119, len: 7, skp: 0 Ext: 9, dba: 0x1800120, len: 8, skp: 0 Ext: 10, dba: 0x1800129, len: 7, skp: 0 Ext: 11, dba: 0x1800130, len: 8, skp: 0 Ext: 12, dba: 0x1800139, len: 1, skp: 0 kdmsStartEndDBA(): scan start: 0x18000db end: 0x18000df rdba[0]: 0x18000db size[0]: 5, nblks: 5 extno: 0, skip: 0 kdmsGetIMCU(): In arguments: nblks 5: start_addr 25166043, end_addr 25166047 kdmsGetIMCU(): Mem addr: baffffd0: mem len: 1048576: Start dba: 0x18000db 25166043: len: 5 smu: fbf44770 td: 0x7f76515361a8 kdmsGetIMCU(): range: 0 lrid dba: 0x0 slot: 0 hrid dba: 0x0 slot: 0 kdmsGetIMCU(): found imcu 0xbaffffd0 25166043 25166047 1 kdst_fetch_imc(): imcu get 0x18000db kdmsTransGet(): got ktmrds for dba 0x18000db, td : 0x7f76515361a8 kdmsFindEndDba: ext in imcu is 0, and on disk 0 IMCU extents extent 0: 25166043 0x18000db + 5 extent 1: 25166048 0x18000e0 + 8 extent 2: 25166057 0x18000e9 + 7 extent 3: 25166064 0x18000f0 + 8 extent 4: 25166073 0x18000f9 + 7 extent 5: 25166080 0x1800100 + 8 extent 6: 25166089 0x1800109 + 7 extent 7: 25166096 0x1800110 + 8 extent 8: 25166105 0x1800119 + 7 extent 9: 25166112 0x1800120 + 8 extent 10: 25166121 0x1800129 + 7 extent 11: 25166128 0x1800130 + 8 extent 12: 25166137 0x1800139 + 1 Disk extents extent 0: 25166043 0x18000db + 5 (skip = 0) extent 1: 25166048 0x18000e0 + 8 (skip = 0) extent 2: 25166057 0x18000e9 + 7 (skip = 0) extent 3: 25166064 0x18000f0 + 8 (skip = 0) extent 4: 25166073 0x18000f9 + 7 (skip = 0) extent 5: 25166080 0x1800100 + 8 (skip = 0) extent 6: 25166089 0x1800109 + 7 (skip = 0) extent 7: 25166096 0x1800110 + 8 (skip = 0) extent 8: 25166105 0x1800119 + 7 (skip = 0) extent 9: 25166112 0x1800120 + 8 (skip = 0) extent 10: 25166121 0x1800129 + 7 (skip = 0) extent 11: 25166128 0x1800130 + 8 (skip = 0) extent 12: 25166137 0x1800139 + 1 (skip = 0) kdmsFindEndDba(): begin: 25166043, end dba: 25166137 done ext in imcu 12 on disk 12 min of imcu end 25166138 0x180013a disk end 25166138 0x180013a discont 0 kdst_fetch_imc(): done: 1, empty: 0, ftch: 0 kdst_fetch_imc(): fetch: 0, invalid: 0 kdmsRepopulate(): repop 0 nblks 89 0 nrows 2342 0 cnt 5 kdstf00100010001101kmP(): create vv 18000db 95 kdmsCreateIMCUValidVector: Scan range (25166043, 25166137) Extent map passed into kdzd layer: Extent 0: (25166043, 25166047) Extent 1: (25166048, 25166055) Extent 2: (25166057, 25166063) Extent 3: (25166064, 25166071) Extent 4: (25166073, 25166079) Extent 5: (25166080, 25166087) Extent 6: (25166089, 25166095) Extent 7: (25166096, 25166103) Extent 8: (25166105, 25166111) Extent 9: (25166112, 25166119) Extent 10: (25166121, 25166127) Extent 11: (25166128, 25166135) Extent 12: (25166137, 25166137) kdzd_dump_validvec: IMCU: 1 Num slots: 2342 set: 2342 rounded to 8: 2368 bytes: 296 Flag if all rows valid: 1 ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff. ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.3f. 3 final 0 kdzd_dump_validvec: End Dumping Valid Vector **************** ktmrDS Dump ***************** pdb=0, tsn=4, rdba=25166043, objn=91999, objd=91999, typ=1, gflg=0 flg=0 loadscn=scn: 0x0000.001af80b invalid blkcnt=0, fetch blkcnt=0 env [0x7f765152af6c]: (scn: 0x0000.001af830 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: 0x0000.000.00000000 st-scn: 0x0000.00000000 hi-scn: 0x0000.00000000 ma-scn: 0x0000.001af82c flg: 0x00000660)invalid rowcnt=0, fetch rowcnt=0 kdst_fetch_imc(): release 0x18000db from td: 0x7f76515361a8 kdmsGetJournalRows(): done with IMC fetch; journal rows -1 kdmsEnd(): imcuctx 0x7f7651688b78 release 0x18000db from td: 0x7f76515361a8
相关帖子:
译文地址:【Oracle 12c】In-Memory Database Cache内存数据库选项,感谢原作者分享。