The DMV sys.dm_exec_query_stats accumulates performance statistics about cached query plans, which is perfect for keeping track of the expense of queries. That's easy, but now if only there were an elegant way to tie this back to accounts. For example which (or at least how many) of those executions were performed by which users and when?http://sqlserverperformance.wordpress.com/2008/01/21/five-dmv-queries-that-will-make-you-a-superhero/
As it is now, just joining cached plans back to sessions would be a hack. You can use SQL Server Audit (which leverages extended events) to audit what users executed what queries and when, and there are some 3rd party monitoring solutions that probably just do basically the same thing, but take care of the configuration and implementation details for you.http://solutioncenter.apexsql.com/auditing-select-statements-on-sql-server/
You can do something like poll sys.dm_exec_connections and sys.dm_exec_sessions once every minute to gather accumulated counts on reads, writes, and CPU. Perhaps write a job that inserts this to a table for reporting purposes. This provides only generalized performance counts, but would be a relatively lightweight solution compared to active tracing or event auditing a heavily used server.
c.last_read as connection_last_read,
c.num_reads as connection_reads,
c.last_write as connection_last_write,
c.num_writes as connection_writes,
s.reads as session_reads,
s.writes as session_writes
FROM sys.dm_exec_connections AS c
JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_id
order by (num_reads + num_writes) desc;
If all database access via stored procedure calls, then another approach would be to add code to insert an audit table with login account name, start / end time, and perhaps also leverage sys views for session reads and writes. This would be more useful in a reporting environment where procedures calls are relatively less frequent and resource intensive. It wouldn't work well for in a high activity OLTP database in which case inserting the audit table would actually impact performance.
"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."