2014-02-25 138 views
0

在SAP Sybase ASE 15.5數據庫上。UNION查詢工作緩慢

UNION工作得非常慢

select col1,col2,col3 
from table1(INDEX nn MRU),table2 (INDEX hh MRU) 
where key1=key2 
UNION 
select col1,col2,col3 
from table3(INDEX pp MRU),table2 (INDEX ll MRU) 
where key4=key3 

表1和3是小的(10個記錄的每個 表1和表4 - 是非常大的(68萬個記錄每個)和I neeed唯一活性的記錄,我們有在每個大表中有1,5萬個,其中每個大表中有1億5千2百萬個,其實我也嘗試過單獨的查詢,同樣很慢,即使我清除不活動的記錄或選擇活動記錄到不同的表中,仍然需要很長時間。 table1,但它沒有幫助。

問題是我不能刪除公司規定的非活動記錄

+1

你使用什麼樣的Sybase(SAP)DB? IQ,ASE,ASA? – Parado

+3

請停止使用答案發表評論。使用評論功能,或編輯您的問題以添加其他信息。 –

+2

爲什麼指定索引,而不是讓優化器選擇?不知道更多關於表和索引結構的信息,這將很難提供幫助。您也可以嘗試發佈查詢計劃,讓我們看看事情陷入困境。也許你可以針對只包含活動記錄的大型表創建視圖,然後UNION針對視圖創建視圖? –

回答

0

我的猜測是你的問題不是聯合,而是與其中有6500萬行(兩次)的表聯接。如果你確定工會是你的問題,爲什麼不直接提出兩個單獨的問題呢?

您還可以添加新表來保存非活動記錄並清除活動記錄表。我不知道你有什麼其他的應用程序邏輯,但這會加快這個查詢。