Оптимизация и работа с системными представлениями.
В своих прошлых статьях, я рассказывал о работе с планировщиком и оптимизатором запросов. Конечно, рассмотреть в статьях все аспекты работы этих компонентов – это непростая задача. Поэтому, думаю, будет правильней показать на примере. В качестве примера решил набросать небольшую обработку, которая берет данные из системных представлений (MS SQL). Чтобы было совсем понятно, давайте разберемся как можно мониторить SQL-сервер. Данные по состоянию сервера можно получать из нескольких источников (системные вызовы, схемы, системные представления и т.д.). Теперь более подробно о том, что такое системные представления. Как мы знаем, данные в СУБД хранятся в виде таблиц. Таблицы могут быть базовыми – это те таблицы, которые создает разработчик базы и системными – это таблицы, которые создает СУБД. Представления (VIEW) – это тип таблицы, чье содержание выбирается из других таблиц при помощи запроса. Представления могут быть созданы разработчиком, а вот системные представления создает сама Система Управления Базами Данных (СУБД) и в этих представлениях хранятся данные о состоянии как конкретной базы, так и сервера в целом. Это данные об используемых ресурсах – памяти, состояния таблиц и индексов, грязных данных и т.д. Вот так это выглядит в среде Management Studio (рис 1)
рис 1
Все, что начинается на sys – это системные представления.
Теперь об обработке. Я как мог упростил ее. На процедуры добавлены комментарии. Внешний вид:
Порядок работы:
1. Необходимо нажать кнопку "Подключиться"
2. В открывшейся форме необходимо проставить значения:
Сервер, к которому подключаемся (на котором установлен MS SQL)
Имя базы - название базы, к которой подключаемся
Проверка подлинности - здесь необходимо выбрать способ аутенфикации (Windows or SQL)
Имя входа - имя пользователя, как оно задано в рамках SQL (если аутенфикация SQL)
Пароль - пароль для имени пользователя, указанного в поле "Имя входа" (если аутенфикация SQL)
3. После подключения система выполнит несколько запросов к базе, используя системные представления. На вкладках "Свойства" и "Монитор" отобразятся данные
В случае необходимости, после подключения вы можете создать свой запрос (кнопка Выполнить исполнит запрос, если он корректен)
Обработка сделана в двух вариантах: обычная форма и управляемая форма. Для скачки выставляю обе.
Тестировал на платформе 1с 8.2.19.90
Код обработки открыт. Пользуйтесь. Выбраны, конечно, не все представления. Обработка сделана для понимания принципа работы. В принципе, вы можете написать целую систему мониторинга ресурсов. Основа для этого, как раз, и дана в этой обработке. Внешний вид особо не шлифовался. Считаю, что это не так критично. Использовал обращение только к MS SQL, но при желании, такое же можно написать и для Postgres, и для Oracle. Всем удачи. Если что-то непонятно, пишите комменты. Постараюсь объяснить (мне уже как-то сказали, что я слишком сухо излагаю). До новых встреч.