Время выполнения отчетов – один из ключевых показателей успешности внедрения 1С. Учитывая, что все отчеты строятся на основе выполнения запросов к базе данных, длительность работы запросов – ключевой показатель. Далеко не всегда время работы устраивает пользователей со стороны заказчика, поэтому администраторам приходится оптимизировать проблемные участки. Чтобы их найти в коде, можно использовать такой инструмент, как SQL Profiler.
Что такое MS SQL Profiler и где его найти?
В 1С запросы пишут на встроенном языке, который очень похож на SQL. В процессе работы текст запроса конвертируется в стандартный SQL-запрос и выполняется на стороне СУБД. И иногда, чтобы понять, в чем проблема, разработчику 1С нужно смотреть именно на SQL-версию своего запроса. Многие разработчики используют для этого такой инструмент, как MS SQL Profiler.
С его помощью программист сможет оценить схему SQL-запроса и его длительность, и найти проблемные места. Также есть возможность отфильтровать нужные вам данные – по чрезмерной длительности выполнения, имени таблицы и другим критериям. Информацию можно представить не только в виде текста и таблиц, но и с помощью наглядной графики. Найти этот инструмент можно в MS SQL Server – как одну из многочисленных опций программного обеспечения по управлению базами данных.
Естественно, использовать эту возможность смогут только владельцы клиент-серверных баз. Если же у вас используется файловая, то в качестве замены можно посоветовать технологический журнал от 1С. Конечно, он не настолько удобен и вариативен, но при должных навыках и из него можно узнать всю нужную информацию. Для этого понадобится достаточная квалификация, знания и мощное оборудование, так как запуск технологического журнала потребует приличных ресурсов.
Чтобы открыть MS SQL Profiler и начать работу с базами данных, надо запустить MS SQL, в открывшемся окне, в меню «Сервис» найти нужное приложение и открыть его. По щелчку откроется еще одно окно с просьбой указать сервер, где находятся наши клиент-серверные базы данных. Вы можете подключаться к нескольким серверам и разбираться в структуре их запросов к SQL.
В терминологии SQL-процесс записи и последующего просмотра событий называется «трассировкой». Именно поэтому после указания данных сервера БД и логина с паролем откроется окно со свойствами трассировки. Наиболее интересной и значимой для нас является закладка «Выбор событий», поскольку там настраивается, что мы хотим видеть в трассировке.
Как настроить MS SQL Profiler для 1С
Чтобы не перегружать сервер и не занимать лишнее пространство на диске, нужно грамотно отфильтровать необходимые события. Несмотря на текстовую подсказку, разъясняющую суть столбца и строки, для оптимального результата нужны определенные знания. Также можно воспользоваться опытом других людей, чем мы и воспользуемся, проставив галки напротив следующих событий:
- Showplan Statistics Profile – отвечает за отражение подробных сведений плана запросов в текстовом виде;
- Showplan XML Statistics Profile – отразит графическое представление выполнения запроса;
- PRC: Completed – будут отражаться тексты запросов, выполняющихся в виде процедур с параметрами;
- SQL: Batch Completed – трассировка запросов без параметров.
После сделанной настройки мы сможем увидеть все запросы для всех баз данных, зарегистрированных на указанном сервере. Чтобы исследовать данные конкретной базы, необходимо настроить фильтры для выбранных событий. С помощью кнопки на форме настроек «Фильтры столбцов…» укажем следующие свойства нашей трассировки:
- DatabaseName – воспользуемся в настройках механизмом «Похоже на» и занесем туда наименование нашей БД. После установки подобного фильтра в нашей трассировке будут отражены только запросы, обрабатываемые в конкретной базе. Возможен множественный выбор, чтобы отобрать 2, 3 и более баз;
- DatabaseID – отбор по идентификатору конкретной базы. Узнать этот параметр можно, создав и выполнив запрос “SELECT db_id()” в SQL Server Management Studio. Выбрав в дереве конкретную базу, вы сможете узнать все ее параметры, в том числе и идентификатор;
- Duration – настраивается длительность исполнения запроса. Указывается в миллисекундах;
- TextData – фильтр по тексту запроса. Можно отобрать только обращающиеся к конкретной таблице или полям. Необходимо воспользоваться маской из синтаксиса 1С;
- RowCounts – отбор по количеству возвращаемых строк. Так вы можете отловить запросы, возвращающие огромное количество строк, чтобы наложить дополнительные условия.
Возможностей намного больше, и если необходима дополнительная настройка – воспользуйтесь подсказками MS SQL Server Profiler, отображающимися в этом же окне. После вышеперечисленных этапов настройки остается только воспользоваться кнопкой «Запустить» и наблюдать за отображением процессов. Окно трассировки разделено на 2 части: в верхней перечисляются события и их характеристики, а в нижней – дополнительная информация.
Работа с трассировкой MS SQL Profiler
Для тестирования трассировки откроем консоль запросов на базе, на которую настроен MS SQL Profiler, и выполним простейший запрос. В окне трассировки отражаются все запросы, подходящие по условиям фильтров, и среди них нужно найти наш запрос. Поможет в этом нижняя часть окна трассировки, где и будет находиться запрос на языке SQL, найдя который, мы можем получить следующую информацию:
- Сколько выполнялся запрос в тысячных долях секунды – столбец Duration;
- Сколько произошло чтений из базы данных – Reads;
- Количество возвращаемых строк – RowCounts;
- Дату начала и дату окончания в тысячных долях секунды – StartTime и EndTime.
Если вы перейдете на вышестоящую строку, то в нижней половине перед вами будет графическая схема выполнения запроса. Еще одна вышестоящая строка покажет вам текстовый план выполнения запроса на SQL. Эти данные, как и всю трассировку, можно сохранить в файл для последующего открытия и анализа. Отдельные данные с помощью контекстного меню и функции «Извлечь данные события», а целиком через меню «Файл» - «Сохранить как».
В высоко нагруженных базах бывает очень сложно отследить выполнение своего запроса. Для этого предусмотрены механизмы остановки, паузы и запуска трассировки, чтобы в окно попадали только нужные нам запросы. Они расположены в основном меню или в самом окне трассировки. Также предусмотрена возможность очищать окно вывода информации – используется кнопка в виде стиральной резинки.
MS SQL Profiler содержит в себе обширные возможности для нахождения запросов, серьезно сказывающихся на быстродействии 1С и других систем. Научившись работать с ним однажды, вы будете способны находить проблемные места в любых системах, работающих с базами данных SQL. MS SQL достаточно распространена, и подобные навыки будут по достоинству оценены работодателями.
консультация эксперта
самые свежие новости 1 раз в месяц