我有一個數據庫基礎架構,我們經常(至少每天一次)將源表的全部內容複製到大約20個目標數據庫。由於使用的複製代碼(我們必須使用常規的oracle查詢,無法控制或直接訪問源數據庫) - 這會導致對源表進行20個全表排序。如何針對重複的全表排序優化oracle查詢?
有什麼辦法可以在查詢中對此進行優化嗎?我正在尋找一些能夠基本告訴甲骨文「我將重複整理這張桌子」的東西? MySQL有一個myisamchk的選項,你可以告訴它對錶進行排序並保持排序順序,但顯然這不適用於多種原因。
目前,還有一些涉及中間表(從A到B,然後從B到C同步)。我們確實可以控制中間表,所以如果有調整選項,那也是有用的。
一般來說,查詢幾乎都是非常簡單的形式:
select a, b, c, d, e, ... z from tbl1 order by a, b, c, d, e, ... z;
我知道流,但如上所述,主要來源表是我們無法控制的,所以我們贏了」不能在那裏使用流。 (另外,這些源表每天都從快照中完全重建,因此流無法正常工作。)
爲了進一步說明 - 複製代碼正在對源數據庫和目標數據庫進行並行行級比較,並對目標表執行一整套單獨的行更新(I/U/D)它與源同步。同樣的全表選擇和排序也是針對目標表運行的。 – 2009-07-07 23:43:40
我沒有得到你爲什麼要排序,如果目標是從一個表/數據庫複製數據到另一個,你能解釋一下嗎? – 2009-07-08 09:42:54