Rather than analyzing by database, I'd suggest focusing on what sql batches or execution plans are causing the spikes. Try selecting top 10 from query stats order descending by (total_physical_reads + total_logical_writes) and then look at sql text and execution plan.
Also, as an alternative to aggregating query stats by logical database name, you can instead leverage sys.dm_io_virtual_file_stats
to get IO stats by file, which can then be reliably linked to a specific database. Knowing reads, writes, ms stalls, etc. by file, that's probably more useful in the end.
DB_NAME(mf.database_id) AS database_name
, mf.name AS logical_name
, fs.file_handle AS windows_file_handle
FROM sys.master_files AS mf
CROSS APPLY sys.dm_io_virtual_file_stats( mf.database_id, mf.file_id ) AS fs;
"The universe is complicated and for the most part beyond your control, but your life is only as complicated as you choose it to be."