我们有一个春季申请表。通常,我们必须在客户端公开给我们的视图上执行几个SQL查询。在一种情况下,我们的查询工作正常,但是相同查询的count(*)会产生问题。它返回org.springframework.dao.RecoverableDataAccessException - StatementCallback;
IO Error: Socket read timed out; nested exception is java.sql.SQLRecoverableException: IO Error: Socket read timed out]
我们要求客户增加oracle.jdbc.ReadTimeout
财产。
相反,他提出要公开实现的观点。
实例化视图在这种情况下是否可以提供帮助(计数查询导致超时)。
如何利用物化视图来提高查询的性能
物化视图是解决您的问题的好方法。物化视图将查询结果存储在表中,并且可以显着提高性能。您的客户似乎正在帮您一个大忙,因为他们将负责维护支持查询的对象。
唯一的潜在缺点取决于它们如何实现实例化视图。如果他们创建了快速刷新的实例化视图,则在每次更改数据后它将自动存储正确的结果。但是快速刷新实例化视图有很多限制,很可能您的客户将提供一个完整的刷新实例化视图,该视图必须有时间表。如果它们提供了完整的刷新实例化视图,请确保该应用程序可以使用旧数据。
(或者,当然数据库超时设置可能仍然不合适。可能有错误的配置文件,错误的sqlnet.ora参数,资源管理器的设置错误,ORA-600错误等。您可能想找出具体的您的查询超时的原因不是我认为客户端正在向您隐藏东西;一个可怕的DBA只会说:“运气不好,解决您的愚蠢查询”。为您提供物化视图的事实说明他们确实在尝试解决问题。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句