Тестирование запросов приложения (отрывок из «Руководства по миграции на Firebird 3»)
Это отрывок из книги « Руководство по миграции на Firebird 3», автор Карлос Канту.
Переход с одной версии Firebird на другую может вызвать проблемы с существующими запросами - от снижения производительности до полного отказа, когда запросы используют новые зарезервированные слова или некорректный SQL, который ранее принимался.
Приложение часто включает сотни запросов: от просмотра информации на экране до создания отчетов, ввода и проверки данных. Могут быть внешние скрипты и генераторы запросов, которые создают SQL-запросы на лету, поэтому невозможно проверить все комбинации SQL-запросов даже при тщательной проверке исходного кода приложения.
HQbird FBScanner от IBSurgeon - это инструмент, который поможет вам проверить, что существующие приложения работают с Firebird 3, и выяснить, есть ли ошибки или замедления в SQL-запросах мигрирующих приложений. FBScanner является частью HQbird Standard, пакета инструментов анализа, которые отслеживают и оптимизируют серверы Firebird. Он позволяет записывать запросы на вашей текущей версии Firebird и тестировать их на новом сервере Firebird.
FBScanner работает как прокси между клиентами и сервером, записывая все взаимодействия: подключения, транзакции, тексты SQL-операторов, количество выборок, SQL-планы, ошибки, а также время подготовки и выполнения запросов.
Вы можете установить FBScanner, продолжая использовать текущую версию Firebird; настройте его для мониторинга взаимодействия и хранения запросов в базе данных журнала. Самая популярная конфигурация - установить FBScanner на тот же сервер, на порт 3050, и изменить порт Firebird на другое значение (например, 3053): в этом случае существующие приложения Firebird продолжат работать с базой(ами) на сервере без каких-либо изменений в их строках подключения:

Также можно настроить FBScanner на стороннем компьютере и направить через FBScanner только несколько клиентов, чтобы перехватывать только их взаимодействия.
После нескольких дней мониторинга база данных журнала содержит большое количество запросов, используемых в ваших приложениях. В идеале она должна охватывать всю SQL-активность в базе данных с деталями о времени и выполнении:
FBScanner позволяет выполнять записанные запросы. Используя базу данных журнала, вы можете настроить тестовый сервер Firebird 3, восстановить на нем исходную базу данных и использовать Log Analyzer из FBScanner для запуска записанных запросов.
FBScanner отображает результат в таблице, включая информацию о производительности, так что вы можете сравнить текущее время выполнения с тем, что было на старом сервере, и сравнить старый PLAN с новым PLAN.
Информацию из таблицы можно экспортировать в электронную таблицу Excel.
При сравнении времени выполнения запросов учитывайте, что внешние факторы влияют на результат. Одним из соображений является то, «холодные» или «горячие» кэши операционной системы или Firebird. Очевидно, что запросы, выполняемые, когда большая часть информации уже кэширована, быстрее, чем при чтении данных с диска.
Полную версию « Руководства по миграции на Firebird 3» можно приобрести здесь.
HQbird Standard (который включает FBScanner) можно купить здесь. Мы предлагаем скидку 10% на HQbird Standard для тех, кто приобрел «Руководство по миграции на Firebird 3» - пожалуйста, свяжитесь с нами, чтобы получить код купона на скидку.
IBSurgeon также предлагает комплексную « Услугу миграции для Firebird» - мы можем помочь мигрировать базы данных со сложными хранимыми процедурами, запросами и другой логикой с ранних версий Firebird (1.0, 2.0, 2.1, 2.5) на современные (2.5, 3.0 или даже 4.0).