私はTomcat接続プールとOracleデータベースを持つ春のブートアプリケーションを持っています。 それは7 * 24hのために働き、多分接続は常に存在し、働くかもしれません。 Oracleの一時的な増加がますます大きくなっています。アプリを停止した後は、ファイルサイズではなく、リカバリやリカバリはできません。 一時ファイルは32GBで、まだ十分ではありません。 どうすればいいですか?毎日アプリを再起動しますか?なぜオラクルは一時的に大きくなっていますか?
オラクルのスナップショット:
`
MERGE INTO TABLE_ABC
USING
(SELECT
1000000035432496 AS "ID",
1000000035432496 AS "BID",
sysdate AS "UpdateTime",
sysdate AS "EntryTime",
'2017-08-08' AS "AAA",
'ABCDEFG' AS "BBB"
FROM DUAL) T
ON (TABLE_ABC.ID=T.ID)
WHEN MATCHED THEN
UPDATE
SET BID=T."BID",
UPDATETIME=T."UpdateTime",
ENTRYTIME=T."EntryTime",
AAA=T."AAA",
BBB=T."BBB"
WHEN NOT MATCHED THEN
INSERT (ID,BID,UPDATETIME,ENTRYTIME, AAA, BBB)
VALUES(T."ID",T."BID",T."UpdateTime",T."EntryTime",T."AAA", T."BBB")
`
一時的なロブがセッションのどこかに漏れています。毎回セッションを再起動したくない場合は、SQL文をトレースし、漏れの疑いのあるものをリグにテストする必要があります。 – wolfrevokcats
"select 1 from dual"は接続プールの検証クエリをチェックすることです。私は "MERGE INTO" SQLを使用してデータを挿入または更新します。問題はありますか? – Roy
一時的なロブを利用するいくつかのsqlsがセッションで実行されています。 'Select one from dual'は問題に関連していません。 'Merge into'ステートメント自体は問題ではありません。一時的なロブを直接的または間接的に使用している場合は、その可能性があります。 – wolfrevokcats