簡體   English   中英

Java中的oracle查詢性能

[英]oracle query performance in java

我的場景是我有一個很大的查詢,其中有很多聯接,並且在選擇中有很多解碼/案例調用,並且我將一個參數傳遞給Java條件,我看到150000行的Java提取非常慢,但是查詢在SQL Developer中運行得更快客戶端界面。

我想到了創建或替換一個采用一個參數並從Java調用該視圖的視圖。

找不到資源來知道如何通過pram來從Java創建或替換視圖語句嗎?

有人建議其他可以快速獲取行的方法嗎?

使用oracle 12c和驅動程序是jdbc7和jdk8

首先(也是最簡單的):

在您的語句中將JDBC提取大小設置為較高的數字。 StatementPreparedStatementCallableStatementResultSet對象上有一個setFetchSize(int)方法。 默認為10行之類的小內容。 將其設置為一個合理的較高數字,例如500或更大。

此設置肯定會降低查詢的速度,該查詢會拉回數十萬條記錄。

第二:

驗證查詢確實在SQL Developer中快速運行到最后一行 您可以導出到文件,或嘗試將查詢包裝在PL / SQL語句中,該語句將遍歷所有記錄。

如果願意,可以在SQL * Plus中使用AUTOTRACE來發揮自己的優勢:

SET TIMING ON
SET AUTOTRACE TRACEONLY
<your query>

這會將查詢運行到最后,通過網絡拉出所有記錄,但不顯示它們。 此處的目標是證明您的SQL語句確實按需要盡快返回所有記錄。

如果沒有,那么您將進行標准的調音練習。 首先讓它在SQL Developer中快速運行以完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM