我的一个web应用程序是从一个名为Tandem(HP NonStop)的遗留系统获取数据,该系统只能运行SQL,而不能运行存储过程。此外,该系统不在我的控制范围内,我所能做的就是使用SQL查询从该系统读取数据。
应用程序的前端(Javascript)使用REST Web Service与后端通信以检索数据。
我想知道其他开发人员是如何处理这种情况的,以及在从慢速/遗留数据库中检索数据时,使用了哪些措施或工具来提高性能。
发布于 2019-12-11 01:30:47
您可以使用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'
)
)
);发布于 2017-10-30 04:30:30
看起来您的应用程序正在向NonStop应用程序发送一条带有SQL查询的REST消息。
这可能会强制NonStop服务器进程提交查询以进行编译。请检查服务器进程是否可以打开或实现某种类型的查询缓存。
DBA确实有不错的连接性能,让NonStop来看看这个计划。
Java支持用NonStop编写的存储过程。
https://stackoverflow.com/questions/45552399
复制相似问题