2017-01-06 36 views
0

由於某些原因,我很難讓一些人在Postgres中使用視圖,因爲您會使用表格,這是一個壞主意。克服某人爲什麼視圖不能用作表格

作爲一些背景,有許多表格包含完全靜態數據,每隔幾個月通過批量導入到日期 - table_201603或table_201607的不同表格中進行更新。然後創建一個名爲'table'的視圖,然後客戶端使用它,這只是表的一個'SELECT * FROM'。當更新的一批數據被放入一個新表格中時,該視圖會被更新以指向新表格。這意味着表格的就地重命名不需要發生,這可能意味着停機時間。這是9.3版本之前Postgres的一個版本,在這個版本中出現了物化視圖,只是爲了澄清。這些表格一般大約有1億行。

這是可以理解的,當人們用非常不一致的查詢時間查詢這些視圖時,會導致一些令人困惑的結果。有時查詢需要幾秒鐘,其他時間則需要20或30毫秒。

附加信息:這是地理空間數據,因此他們在視圖上執行地理空間查詢。

我知道這裏有許多缺陷 - 視圖像子查詢一樣被即時創建,您非常關注查詢規劃器對於什麼謂詞被放下以及多長時間結果被緩存,因爲結果並非物理地存儲爲表 - 但任何人都可以看到其他任何東西,並提出一個更好的方法來做到這一點?我可以想象這將是一個相當普遍的情況,所以它可能會幫助其他人。

感謝,

+0

誰抱怨?生意人?經理人?祝他們好運,向他們解釋任何事情......他們通常對數據庫知之甚少......他們最喜歡的是關於數據庫中新列名稱的討論......他們可以在這個「重要的話題「。...... – JosMac

+0

不,這些人是合理的技術(或似乎是),並且大部分都有Oracle背景。 –

回答

相關問題