考虑,
查询需要一分多钟才能从数据库中检索数据(由于数据量较大)
我知道,我们可以在select标签中设置“timeout”属性(仅针对单个查询)或设置标签中的“defaultStatementTimeout”属性(SqlMapConfig.xml - 对于所有查询)以强制终止执行中的查询。
<select id='uniqueName' parameterClass='java.util.Map' resultClass = "java.lang.String" timeout="60">
或
<settings useStatementNamespaces="false" defaultStatementTimeout="60"/>
通过执行上述配置,IBatis将抛出“用户取消的请求”错误并终止执行
我们还有其他方法可以终止执行吗?
我的情景是:
当用户请求3年数据时,从数据库中获取数据需要一分多钟
与此同时,当用户请求1天的数据或发送“取消”请求时,我必须强行终止先前的执行(3年数据检索),因为即使用户数量有限,它也会影响性能。
注意
我没有使用上面的任何设置。
请为我提供解决方案。提前谢谢。
答案 0 :(得分:0)
您可以通过修改与数据库用户关联的配置文件来设置资源限制。