Как показывают два предыдущих ответа, в SQL Server действительно нет встроенной функциональности, которая была бы легко доступна для ваших требований.
Существует множество динамических управленческих представлений, которые могут рассказать вам о некоторых ваших точках интереса, например, sys.dm_db_index_usage_stats
, который сообщает вам, когда у данного индекса был последний поиск или обновление.
Но на самом деле в коробке нет ничего, что вы могли бы использовать, чтобы получить всю информацию, которую вы ищете - вам действительно нужно сделать это самостоятельно, добавив, например, поля datetime в ваших таблицах и заполнение их триггерами.
Извините, я не могу дать вам более хороших новостей - сейчас это так.
В SQL Server 2008 у вас есть дополнительные новые функции, которые могут удовлетворить некоторые ваши требования - ознакомьтесь:
Марк