2015-10-13 104 views
0

我們有一個應用程序,我們在DB2模式中有3個表。我正在使用下面的查詢來獲取記錄。事務表可能包含超過1000000條記錄。我寫下面的查詢來從多個表中獲取數據,但它比測試人員的期望花費更多的時間。DB2查詢執行性能問題

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

+0

您是否想要發佈一些邏輯? –

+0

是,例如添加員工,編輯員工,刪除員工。 –

+0

請刪除我的問題重複。現在不重複。我有麻煩了。請urgnet需要幫助。 –

回答

0

從技術上講,你可以在你的servlet聲明額外的方法,但最好你應該封裝這些業務邏輯集成到服務和DAO(數據訪問對象)作爲單獨的類。

+0

是的,這是事實。我必須將不同的方法與不同的業務邏輯綁定在一起。你能給出更多的解釋嗎?如何使用單個servlet綁定多個操作。 –

0

我會加到Ish的答案。

是的,你應該在一個單獨的服務類或DAO中定義實際的業務登錄,但是這個不同的業務邏輯的實際調用應該在Servlet本身中適當地調用。

適合您需求的方案是在窗體中創建一個隱藏的動作參數。我們稱它爲action。在Servlet doGet或doPost方法中檢查此參數。

如果Java 1.8或其他版本的if if if可以使用'switch statement'。

就是這樣。

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

服務是任何服務類實例。

+0

是的,但是在代碼質量的開發中更好。 1)使用單個Servlet 2)分開多個操作的servlet –

+0

我們可以使用相同的servlet進行非常密切相關的操作。 –