Разбор CE SQL в БД SQL
Я поддерживаю приложения Filenet и в основном фокусируюсь на методах повышения производительности. Часто мы сталкиваемся с этой проблемой, связанной с оптимизацией запросов. Обычно мы получаем запросы от DBA, и это SQL базы данных, которые запускаются на уровне базы данных. Теперь из кода приложения мы передаем CE SQL, а не DB SQL. Я знаю, что CE анализирует CE SQL для базовой базы данных SQL. Я пытаюсь выяснить, если у меня есть БД SQL, могу ли я получить соответствующий CE SQL, который запускается. Код или сценарий, который я могу написать, в котором я ввожу CE SQL и генерируется соответствующая БД SQL. Цените, если бы я мог получить какие-либо указатели на это, поскольку я действительно застрял.
2 ответа
Вам необходимо включить ведение журнала трассировки для DB
подсистема. Это делается черезTrace Control
вкладка Конфигурация домена в ACCE. Тогда вы сможете увидеть запросы к базе данных вp8_server_trace.log
.
Для удобства вы можете включить трассировку для SRCH
подсистема. Тогда исходный и сгенерированный запросы будут идти рука об руку.
Подробная информация о ведении журнала трассировки доступна в документации FileNet P8.
Способ захвата запросов CE SQL состоит в том, чтобы включить аудит для интересующего вас класса объекта и выбрать Query Event
как событие. Теперь каждый раз, когда выполняется запрос, создается объект события. Этот объект имеет свойство под названием QueryText
который содержит запрос CE, который выполняется. Вы можете использовать время создания или другую информацию в запросе, чтобы сопоставить ее с запросом вашей базы данных.
События запроса могут быть запрошены с помощью ACCE или доступны программно с помощью объекта API com.filenet.api.events.QueryEvent
,
Имейте в виду, что в загруженной системе может быть сгенерировано много событий запроса!