DB2查询执行性能问题

时间:2015-10-13 16:55:39

标签: sql db2

我们有一个应用程序,我们在DB2模式中有3个表。我正在使用下面的查询来获取记录。事务表可能包含超过1000000条记录。我在下面写了一个查询来从多个表中获取数据,但它花费的时间比测试人员的预期要多。

select * from (select ROW_NUMBER() OVER ( order by SOURCE_REFERENCE_NO,Trans_Date,Trans_Time,User_ID ) as RN ,Trans_Type from transaction t left join applicationref ar on t.code = ar.code left join user u on u.username = t.useraccess left join user u1 on u1.username = t.username )as w

2 个答案:

答案 0 :(得分:0)

从技术上讲,您可以在Servlet中声明其他方法,但理想情况下,您应该将这些业务逻辑封装到Services和DAO(Data Access Object)中作为单独的类。

答案 1 :(得分:0)

我会添加 Ish' 答案。

是的,您应该在单独的服务类或DAO中定义实际的业务登录,但是应该在Servlet本身中适当调用这种不同业务逻辑的实际调用。

适合您要求的方案是在表单中创建隐藏的操作参数。让我们称之为action。在Servlet doGet或doPost方法中检查此参数。

您可以使用'切换语句'如果Java 1.8或' if else else if'对于任何其他版本。

像这样。

String action = request.getParameter('action');
if(action.equals('logic1')){
    service.businesslogic2();
} else if(action.equals('logic2')){
    service.businesslogic2();
} else if(action.equals('logic3'))
....
....
....

service是任何服务类实例。