Oracle 12c certainly has some great features, but for the performance guy like myself, performance monitoring features are particularly interesting. There are three new v$ tables that track anomalies in the IO path. The idea is to provide more information about really poorly performing IO that lasts more than 500ms.
- V$IO_OUTLIER : tracks the attributies of an IO. The size, latency as well as ASM information is recorded.
- V$LGWRIO_OUTLIER : tracks information specifically on Log writer IO.
These two tables are going to be useful to monitor when performance issues occur. I can already see the SQL scripts to monitor this activity starting to pile up. But, there is one little extra table that dives even further into the IO stack using Dtrace.
- “V$KERNEL_IO_OUTLIER” : This table dives into the KERNEL to provide information about Kernel IO. This table uses my old friend Dtrace to provide information about where the waits are occurring when Kernel IO is in-play. This shows the time for every step involved in the setup and teardown Kernel IO. This information allows us to more easily debug anomalies in the IO stack.
Back in 2009 when Oracle was buying Sun I posted “Oracle buys Sun! Dtrace probes for Oracle?” and lamented on how cool that would be… It is good to know that someone was listening :)