0

我的 Web 应用程序之一是从一个名为 Tandem(HP NonStop) 的旧系统获取数据,该系统只能运行 SQL 而不能运行存储过程。此外,该系统不在我的控制范围内,我所能做的就是使用 SQL 查询从中读取数据。

应用程序的前端(Javascript)正在使用 REST Web 服务与后端对话以检索数据。

我想知道其他开发人员是如何处理这种情况的,以及在从慢速/遗留数据库检索数据时使用了哪些措施或工具来提高性能。

4

2 回答 2

1

您可以使用 VQP(Visual Query Planner)或 SQL/MX 中的常规解释计划来指示查询在哪里遇到了高“成本”。

从那里,您可以创建一个“查询形状”计划,并在执行执行连接的 SQL 之前将此控制语句放入您的代码中。

control query shape nested_join
(nested_join
  (split_top_pa
     (scan
        (TABLE 'X', path '\\<system>.$<volume>.<subvol>.<index on table to join>'
        )
     ),split_top_pa
     (scan
        (TABLE 'X', path '\\<system>.$<volume>.<subvol>.<table to join to maintbl>'
        )
     ),INDEXJOIN
  ),split_top_pa
  (scan
     (TABLE 'H', path '\\<system>.$<volume>.<subvol>.maintbl'
     )
  )
);
于 2019-12-10T17:30:47.127 回答
0

看起来您的应用程序正在使用 SQL 查询向 NonStop 应用程序发送 REST 消息。

这可能会强制 NonStop Server 进程提交查询以进行编译。请检查服务器进程是否可以打开或实施某种查询缓存。

NonStop SQL 确实具有不错的连接性能,请让 DBA 查看计划。

NonStop SQL 支持用 Java 编写的存储过程。

于 2017-10-29T20:30:30.293 回答