What units are 'reads' and 'writes' in dm_exec_query_stats MSDN describes the various logical / physical read and write columns in dm_exec_query_stats as:


  Number of physical reads performed the last time the plan was executed.


Those columns are all 64 bit ints (bigint), so obviously larger numbers represent more reads / writes.

But what are the units of this column? Database pages? Kilobytes? Just an arbitrary number?

Example: for a reasonably expensive query in my database dm_exec_query_stats.total_logical_reads = 40412. 

40412 of what?
Reads and writes are expressed in terms of "the number 8K pages." It should be documented better on the page you reference, but you can piece this together from other areas of the documentation, e.g. from Reading Pages:


  A logical read occurs every time the Database Engine requests a page from the buffer cache. If the page is not currently in the buffer cache, a physical read first copies the page from disk into the cache. 


And from Understanding Pages and Extents:


  In SQL Server, the page size is 8 KB.