Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle:使用物化视图避免套接字读取超时;_Sql_Oracle_View - Fatal编程技术网

Sql Oracle:使用物化视图避免套接字读取超时;

Sql Oracle:使用物化视图避免套接字读取超时;,sql,oracle,view,Sql,Oracle,View,我们有一个spring应用程序。我们通常必须对客户端向我们公开的视图执行几个SQL查询。 在一种情况下,我们的查询工作正常,但相同查询的计数(*)会产生问题。它回来了 org.springframework.dao.RecoverableDataAccessException-StatementCallback IO Error: Socket read timed out; nested exception is java.sql.SQLRecoverableException: IO Err

我们有一个spring应用程序。我们通常必须对客户端向我们公开的视图执行几个SQL查询。 在一种情况下,我们的查询工作正常,但相同查询的计数(*)会产生问题。它回来了
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可能会对您造成影响st说:“运气不好,修复你愚蠢的查询。”事实上,你被提供了一个物化视图,这是一个好迹象,表明他们真的在努力解决这个问题。)