Обработка делалась "для себя" как инструмент, необходимый любому разработчику и внедренцу больших "тяжёлых" конфигураций и БД. Так, при написании конфы на 1000+ пользователей приходится уже думать об анализе узких мест по всей строгости теории тов. Филиппова, Богачёва и иже с ними. Не буду пересказывать приёмы работы, на то есть хорошие методические статьи (вроде //infostart.ru/public/291874/). Речь о практике и особенностях предложенного инструмента.
Разумеется, есть Корпоративный инструментальный пакет, где ЦУП, и нагрузочное тестирование, и прочие плюшки, но его надо разворачивать и подключать, да и денежек он стоит. Если вдруг надо быстро "поймать" затруднение там, где КИПа нет и может вообще не быть, нужно что-то проще и мобильнее.
Конечно, есть внешние обработки, и таковых на ИС много, что пользуются системной функцией "ПолучитьСтруктуруХраненияБазыДанных" и всё красиво показывают. Но - эта функция не показывает всё "по правде". Что с включённой нотацией запросов, что без. Она не покажет SimpleKey регистра сведений, DataSeparationHash (общий разделитель учёта), некоторые другие служебные поля, которые очень даже могут играть роль. Кроме того, большинство обработок показывает все таблицы в одну кучу (не путать с понятием sql, хе-хе), и найти в списке таблиц некую Reference425 бывает трудновато, а если интересует конкретное поле, некое Fld666, так и вовсе сплошь неудобно. Хотя, не спорю, есть красивые решения.
Не удалось найти решение, которое бы показывало свойства индексов. Если плохо искал, киньте в меня тапочком.
Что сделал я? Слегка расширенный аналог. Он базируется как на получении структуры средствами 1С, так и на прямых запросах к представлениям системных данных, т.е., например, к sys.tables. Прикрутил, тоже запросом, получение некоторых общих сведений (от версии SQL до SPID, который лень лазить смотреть, или модели архивации БД). А потом сбылась заветная мечта: для текстов запросов, взятых, например, из профайлера, я сделал простенький интерпретатор, который парсит их и переводит большинство термов и названий в понятийную модель 1С и конкретные имена объектов конфигурации. И, ура, наконец-то можно видеть, где будет поиск по кластерному индексу, где по некластерному, а какие поля запроса ваще не индексированы. И щелчком по гиперссылке таблицы можно посмотреть её структуру. Парсинг, конечно, примитивный, ещё есть куда докручивать, но уже приятно. КИП, насколько знаю, именно такие вещи не переводит, ему XML Showplan подавать надо, хотя могу ошибаться.
Вдобавок, сделал именно поиск. Поиск по имени таблицы, по имени поля, по их сочетанию. В том числе нечёткий. После этого понять, что _Fld234 это ИНН контрагента, стало минутным делом. Формат запросов: *[ИмяТаблицы].[*ИмяПоля]. Историю запросов помнит и восстанавливает.
В планах: сделать автоматическую составлялку настроек для трассировки (докопаться до её xml-устройства и скармливать профайлеру), ну и возможно более красивый и полный разбор результатов трассировки. И ещё сделать показ значений параметров, что идут на вход нативным запросам, т.к. @P1 это совсем неинформативно.
Разрабатывалось на 1С 8.3.6 и SQL 2008.
Кому пригодится - будет хорошо.
P.S. Проблему, описанную тут https://habrahabr.ru/post/220863/ не забарывал, и думаю, что можно просто по Order'у попробовать состыковать с порядком в метаданных, да и взять как есть.