Конечно, есть 2 вещи, которые вам понадобятся.
Пользовательская реализация DbConnection
, DbCommand
и DbDataReader
.Вы можете использовать это для перехвата всех SQL, отправленных в БД.Вы в основном настроили его так, чтобы у вас был слой, который регистрирует весь запущенный SQL.(мы планируем открыть исходные тексты в этой области в ближайшие несколько месяцев, так что следите за обновлениями)
Способ отображения смысла данных, который здесь имеет открытый исходный код: http://data.stackexchange.com/stackoverflow/s/345/how-unsung-am-i (см. опцию включения плана выполнения)
Другой подход заключается в том, чтобы проводить диагностику по факту, просматривая кэш процедур. sys.dm_exec_query_stats содержит дескрипторы кэшированных планов, которые вы можете развернуть.