2013-11-14 270 views
1

我正在使用Oracle數據庫,並嘗試使用spring jdbc temple發出合併查詢。合併查詢運行速度很慢

示例Oracle查詢如下

MERGE INTO table_name b 
    USING (select 'id','fid','somedata' from DUAL a 
    ON (a.id = b.id and a.fid = b.id) 
    WHEN MATCHED THEN 
    UPDATE SET col_name = 'some_val' where lastUpdateTime > someTime 
    WHEN NOT MATCHED THEN 
    INSERT (id,fid col_name) 
    VALUES ('id','fid', 'some_val') 

該查詢正在運行屬性格式之前,但它現在運行的非常非常慢(以分鐘爲單位)

表細節:
ID,FID作爲複合主分區記錄creationDate上的密鑰

表中的記錄數量大約爲1500萬

爲什麼查詢的性能如此之慢?

+0

由PK好奇通過在非PK列分區索引支持的解釋。沒想到這是可能的 - 你確定嗎? –

+0

@David Aldridge你可以在沒有任何pk列的情況下分開表格 – user93796

+0

是的,但我讀它意味着索引本身是分區的。 –

回答

0

當它運行分鐘,你會發現使用

select * from v$session_longops where time_remaining > 0