在 Exadata存储管理软件12.2.1.1.0中,flashcache开始支持复杂排序和大量的hash join产生的临时数据写入flashcache中,而不是直接写入SAS磁盘的tempfile中,以便后续从flashcache中读取这些临时数据,这种flashcache的增强,会使得一些特殊的SQL语句性能提升四倍以上(注意:这个特性必须基于writeback模式的flashcache)。
实际上,不仅仅是hash join的临时数据可以写入flashcache中,大的写入操作都支持写入flashcache,所谓"大的写入"主要指如下三大类型:
(1).
Writes that are read once (Read Once Writes)
例如:排序 或 hash join 生成的中转数据。
(2).Writes that are unlikely to be read (Never Read Writes)
例如:写归档日志、flashbacklog日志 等等
(3).Writes that are maybe read (Maybe Read Writes)
例如:索引rebuild、直路径数据加载 等等
虽然允许大的写入操作直接使用flashcache资源,但前提条件是这些"大的写入"不允许影响到当前的工作负载。例如:需要防止OLTP命中率受到影响、防止出现数据库的"平均IO延迟"增加。
除此之外 ,"大的写入"还有如下限制:
(1).
Large writes can use 20% of total Flash Cache size (default)
(2).Prevent interference with DW caching (default 50% of total Flash Cache size)
(3).
Non-temp Large Writes only cached if disk is busy