Oracle ORDS需要2秒(慢)才能响应最简单的查询

时间:2017-08-08 10:37:45

标签: oracle tomcat oracle-ords

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

一直在哪里? ORDS.war是否正在使用它,是数据库连接时间,是Tomcat使用它还是别的什么?我如何找到根本原因?

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

我在运行此查询的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;
/

0 个答案:

没有答案