2011-07-18 33 views
1

我在我的應用程序中使用了Firebird。有一個數據庫每天接收一次負載。查詢的其餘部分是隻讀的(選擇查詢)。ReadOnly數據庫性能更好

有沒有改善性能的方法?例如,我不需要數據庫的併發控制,因爲我只會製作SELECT查詢。

感謝

+0

你能提供更多的信息嗎?數據庫模式,查詢數量,行數等。 –

+0

數據庫ha 200MM記錄。該查詢將始終檢索一條記錄。 –

回答

1

每天需要多少數據庫?您可能正在讀取一小部分數據,因此可以將數據緩存在應用程序層並完全保存數據庫調用。

由於數據庫中的記錄是隻讀的,因此可以使用SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED並防止對錶進行任何鎖定。這大部分時間顯着提高了可擴展性。我現在把它放在我所有讀過的SP上,因爲它爲我節省了很多次。

1

因爲有很多從數據庫如果必要,可以大量使用索引讀取。這可以通過篩選和排序加快查詢速度。

如果只有SELECT查詢,數據庫引擎會自動管理併發性並且不鎖定數據庫對象。所以我認爲你不應該把這個領域當作改善性能的方法。

0

假設加載過程可能很長,您可以在其結尾重建索引。這將刪除所有索引碎片並可以提高選擇性能。