将 CE SQL 解析为 DB SQL

Parsing of CE SQL to DB SQL

我支持 Filenet 应用程序并且通常专注于性能改进技术。我们经常遇到与查询优化相关的问题。通常我们从 DBA 那里得到查询,这些是在数据库级别触发的 DB SQL。现在,我们从应用程序代码中传递了 CE SQL 而不是 DB SQL。我知道 CE 将 CE SQL 解析为基础 DB SQL。我想弄清楚如果我有 DB SQL 是否可以获得相应的 CE SQL 被解雇。我可以编写一个代码或脚本,在其中输入 CE SQL 并生成相应的 DB SQL。感谢我是否能得到任何指示,因为我真的被困住了。

捕获 CE SQL 查询的方法是为您感兴趣的对象 class 和 select Query Event 作为事件打开审计。现在每次执行查询时都会创建一个事件对象。该对象有一个名为 QueryText 的 属性,其中包含执行的 CE 查询。您可以在查询中使用创建时间或其他一些信息来将其与您的数据库查询相匹配。

查询事件可以使用 ACCE 查询或使用 API 对象 com.filenet.api.events.QueryEvent 以编程方式访问。

请注意,在繁忙的系统上可能会生成大量查询事件!

您需要为 DB 子系统启用跟踪日志记录。这是通过 ACCE 中域配置的 Trace Control 选项卡完成的。然后您将能够在 p8_server_trace.log 中看到数据库查询。

为了方便起见,您可能还想为 SRCH 子系统启用跟踪。然后原始查询和生成的查询将齐头并进。

FileNet P8 documentation 中提供了有关跟踪记录的详细信息。