Добрый день ! Необходимо включить логирование текстов sql - запросов, генерируемых Entity Framework при вызове одного метода кастомного класса, для локализации низкой производительности операции. Подскажите, существует ли такая возможность
Creatio 7.14.3.1686
PostgreSQL 12.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit
Нравится
Здравствуйте, Борис!
Нам неизвестны никакие юзабельные инструменты кроме встроенных возможностей PostgreSql, описанных тут: https://www.postgresql.org/docs/12/runtime-config-logging.html
Пока единственная альтернатива – включение в web.config в секции db general флажка EnbaleSqlLog, после чего в лог будут падать все запросы, удовлетворяющие условию Threshold. Пример:
<general connectionStringName="db" securityEngineType="Terrasoft.DB.MSSql.MSSqlSecurityEngine, Terrasoft.DB.MSSql" executorType="Terrasoft.DB.MSSql.MSSqlExecutor, Terrasoft.DB.MSSql" engineType="Terrasoft.DB.MSSql.MSSqlEngine, Terrasoft.DB.MSSql" metaEngineType="Terrasoft.DB.MSSql.MSSqlMetaEngine, Terrasoft.DB.MSSql" metaScriptType="Terrasoft.DB.MSSql.MSSqlMetaScript, Terrasoft.DB.MSSql" typeConverterType="Terrasoft.DB.MSSql.MSSqlTypeConverter, Terrasoft.DB.MSSql" enableRetryDBOperations="false" retryDBOperationFactoryType="Terrasoft.DB.MSSql.MSSqlRetryOperationFactory, Terrasoft.DB.MSSql" binaryPackageSize="1048576" currentSchemaName="dbo" enableSqlLog="true" sqlLogQueryTimeElapsedThreshold="5000" sqlLogRowsThreshold="100" useOrderNullsPosition="false" maxEntitySchemaNameLength="30" />
В данном случае в файл sql.log должны падать все запросы (только тела запросов), выполнение которых длилось более 5 сек.