The sys.dm_db_index_usage_stats DMV will give you access times but only at an index level. You can try applying this to the sys.dm_db_index_operational_stats function to associate it with partitions and look for any that have range_scan_count and singleton_lookup_count equal to zero:SELECT DB_NAME(ios.database_id) DB, OBJECT_NAME(ios.object_id,ios.database_id) OBJECT, * FROM sys.dm_db_index_usage_stats iusINNER JOIN sys.dm_db_index_operational_stats(NULL,NULL,NULL,NULL) ios ON ius.database_id=ios.database_id AND ius.index_id=ios.index_idWHERE COALESCE(ius.last_user_lookup, ius.last_user_seek, ius.last_user_scan) IS NULLAND ios.range_scan_count=0 AND ios.singleton_lookup_count=0 AND ios.database_id>4
Note: this isn't exact (or even correct for all I know), but it's about the only starting point I can think of.By the way, how do you intend to "archive" the data? How is it partitioned now? And why doesn't the partition scheme have a partition for such data to be archived to?