Databases Reference
In-Depth Information
How It Works
Similar to how Oracle's database buffer cache caches blocks, Smart Flash Cache inserts candidate blocks into flash
assuming that Exadata considers the data worthy of caching and the flash cache capacity is not exhausted based on
reservations specified by CELL _ FLASH _ CACHE KEEP objects, presented in Recipe 18-8. The first physical I/O against
a segment may not be fulfilled from flash, but subsequent queries on the same data stand a good chance of seeing
benefits from Smart Flash Cache.
By using the cell flash cache read hits and physical read IO requests database statistics, you can
determine whether your sessions or system is benefiting from SFC. You can also use the list flashcachecontent
CellCI command to display SFC statistics at a granular level as published by the storage cells.
One thing worth mentioning is that Smart Flash Cache behaves the same way for writes (that is, DML) as it does
reads. If a DML operation is deemed suitable for caching, Exadata's storage server software will instantiate flash cache
with the appropriate data. For example, consider a simple table with objectNumber=3386692 with an index with
objectNumber=3386693 :
[oracle@cm01dbm01 ]$ dcli -g /home/oracle/cell_group cellcli -e list flashcachecontent \
> attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=3386693
[oracle@cm01dbm01 ]$ dcli -g /home/oracle/cell_group cellcli -e list flashcachecontent \
> attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=3386692
[oracle@cm01dbm01 ]$
If you insert data into the table, flash cache will be populated:
SQL> insert into my_user
2 select * from applsys.fnd_user;
2840 rows created.
SQL>
[oracle@cm01dbm01 ]$ dcli -g /home/oracle/cell_group cellcli -e list flashcachecontent \
> attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=3386693
cm01cel03: VISX 1 2 8192 3386693
[oracle@cm01dbm01]$ dcli -g /home/oracle/cell_group cellcli -e list flashcachecontent \
> attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=3386692
cm01cel02: VISX 0 2 57344 3386692
[oracle@cm01dbm01 sfc]$
Updates to the data could cause additional blocks to be populated in flash cache as well as increment hit counts:
SQL> update my_user set user_name='X'||user_name
2 where user_name between 'A' and 'F';
1632 rows updated.
SQL>
[oracle@cm01dbm01 sfc]$ dcli -g /home/oracle/cell_group cellcli -e list flashcachecontent \
> attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=3386693
cm01cel03: VISX 1 2 8192 3386693
[oracle@cm01dbm01 sfc]$ dcli -g /home/oracle/cell_group cellcli -e list flashcachecontent \
> attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=3386692
cm01cel01: VISX 0 12 589824 3386692
cm01cel02: VISX 3 16 868352 3386692
cm01cel03: VISX 0 5 360448 3386692
[oracle@cm01dbm01 sfc]$
 
Search WWH ::




Custom Search