3

Firefox 和 Chrome 向我的 REST API 报告大约 2000 毫秒的响应时间(本地主机)。数据库在 1 毫秒内执行查询。具有相同内容的静态 JSON 文件在 4 毫秒内提供。

时间都去哪儿了?ORDS.war 是否正在消耗它,它是数据库连接时间,是 Tomcat 使用它还是其他什么?如何找到根本原因?

更新:Win10。停止 Apache 服务并尝试从命令行运行 catalina.bat,响应时间下降到 ~30 毫秒。杀死它并再次尝试作为服务运行 - 响应时间始终约为 170 毫秒。

我在运行此查询的 Tomcat 8.5.16 (jre1.8.0_144 x64) 上运行了 ORDS 3.0.11.180.12.34 服务:

SELECT 1 FROM dual

如下

DECLARE
l_handler_id        ords_metadata.ords_handlers.id%TYPE := NULL;
l_param_id          ords_metadata.ords_parameters.id%TYPE := NULL;

l_module_name       ords_metadata.ords_modules.name%type := 'rest';
l_pattern           ords_metadata.ords_templates.uri_template%type := 'select_1_from_dual';
l_method            ords_metadata.ords_handlers.method%type := 'GET';

BEGIN

ords.define_template (
    p_module_name => l_module_name,
    p_etag_type   => 'QUERY',
    p_etag_query  => q'~SELECT dbms_random.value(0,1) FROM dual~',
    p_pattern     => l_pattern
);

ords.define_handler (
    p_module_name => l_module_name,
    p_pattern     => l_pattern,
    p_method      => l_method,
    p_source_type => ords.source_type_collection_item,
    p_source      => 'SELECT 1 FROM dual'
);

COMMIT;
END;
/
4

0 回答 0