Oracle缓存表(db_buffer_pool)由三部分组成:
buffer_pool_defualt
buffer_pool_keep
buffer_pool_recycle
如果要把表钉死在内存中,也就是把表钉在keep区。相关的命令为:
alter table 表名 storage(buffer_pool keep);
这句命令把表示表如果缓存的话是缓存在keep区。
可以通过语句:
select table_name from dba_tables where buffer_pool='KEEP';
查询到该表是放在keep区中的。 但是不意味着表已经被缓存了。
下面的语句把表缓存:
alter table 表名 cache;
可以通过
select table_name from dba_ tables where rtrim(cache)='Y'
查询到该表已经被缓存了。
加入到keep区的表不是说不能被移出内存,不过是比较不容易移出内存。
也可以手工来移出内存,命令如下:
alter table ... nocache;
Cache Connect to Oracle 是 Oracle 内存数据库 TimesTen 的一个选件,可以为 Oracle 数据库提供实时的可更新缓存。缓存表驻留在应用程序层,并从后端系统卸载计算周期,从而实现响应能力极强且可伸缩的实时应用程序。(产品数据表)
企业数据库中的大部分数据都是历史数据,并且很少有人访问。但是,掩藏在这些数据下面的信息应该能够在被请求时可即时访问。您的最佳客户、未完成的订单、最近的事务以及产品目录都是很好的示例。Cache Connect to Oracle 能够在 Oracle 内存数据库 TimesTen 中自动复制和管理这些信息,以供他人实时访问。Cache Connect to Oracle 提供了 Oracle 数据库与 Oracle 内存数据库 TimesTen 之间的连接和双向数据传输。
大多数缓存产品都是只读的,因此只限于一组很少的功能。由于 Cache Connect to Oracle 支持完全的 SQL 读/写操作,因此可以用于众多不同种类的应用程序。例如,以网速捕获和处理数据、在线商务、证券交易系统、计费、实时业务流程监控、实时数据分析,以及只读缓存不适用的其他事务处理系统。其他示例还包括引用数据(如订阅者配置文件)以及查询表以了解授权和网络配置,其中缓存在每个处理周期开始时加载,随后在发生更改时更新。
Cache Connect to Oracle 是为使用 Oracle 数据库特性和界面专门设计的。该产品支持与 Oracle 数据库相同的推荐数据库字符集和主流数据类型,以确保能够通过兼容的语义和操作存储和处理数据。
Cache Connect to Oracle 使用了“缓存组”的概念,来描述一组映射到 Oracle 数据库中的所有表或部分表的内存数据库表。缓存组可以包含这些表的所有或部分行和列。可以使用多个缓存组来缓存 Oracle 数据库中不同的相关表集合。
对 Oracle TimesTen 中缓存表的更新可以同步或异步地写入 Oracle 数据库,这取决于性能和一致性之间的折衷。 对于只读缓存组,Oracle 数据库的增量更新只能异步刷新到 Oracle TimesTen 中的缓存表。
Cache Connect to Oracle 的设计为即使在 Oracle 数据库服务器或网络连接丢失的情况下也能继续运行。 系统可以跟踪向 Oracle TimesTen 中的缓存表提交的事务,并在连接恢复时立即将其传送到 Oracle 数据库。 同样,系统还可以跟踪向 Oracle 数据库中的缓存表提交的事务,并在与 Oracle 数据库的连接恢复时立即将其刷新到 Oracle TimesTen。