2010-07-13 110 views
4

我也有一個very large table in SQL Server(2008 R2開發版),它有一些性能問題。哪個數據庫(DBMS)可以最好地處理大型表?

我想知道如果另一個DBMS會更好地處理大型表格。我主要只考慮以下系統:SQL Server 2008,MySQL和PostgreSQL 9.0。

或者,正如上面提到的問題所迴避的,表格大小和性能主要是指標和緩存因素?

此外,更大規範化會提高性能還是阻礙呢?

編輯:

下面的評論之一,我的含義是模糊的。我有超過2000萬行(20年的股票數據& 2年的期權數據),我試圖找出如何提高一個數量級的性能。我只關心閱讀/計算性能;我不在乎寫作表現。唯一的寫入是在數據刷新期間,而這些是BulkCopy。

我已經有一些索引,但希望我做錯了什麼,因爲我需要加快很多事情。我也需要開始查看我的查詢。

提供的評論和答案已經幫助我瞭解如何開始分析我的數據庫。我是一名程序員,而不是DBA(因此Marco的書推薦是完美的)。我沒有那麼多的數據庫經驗,而且我以前從未對數據庫進行過配置。我會嘗試這些建議並在必要時報告。謝謝!

+1

沒有「最好的」。簡單地說「足夠[足夠]滿足功能需求和資源限制」。此外,這個問題是如此令人不安的模糊 - 建立一些測試用例,檢查查詢計劃,未使用/超額索引,集羣,使用滑動窗口的好處(如果有的話)等。 – 2010-07-13 21:14:49

+4

做什麼時會出現性能問題?讀?寫作?此外,也許定義大。許多行?很多專欄?都?你使用分區嗎?你爲什麼不以自己的表格結構,數據和查詢爲基準來衡量自己? – 2010-07-13 21:16:47

+0

一些更多的資源:http://stackoverflow.com/questions/761204/what-resources-exist-for-database-performance-tuning – 2010-07-13 21:51:26

回答

11

80M行不大。您只需要學習如何設計和查詢這種大小的數據。其中可能包括規範化,反規範化,聚類,索引,但很多時候它們似乎更深層次的權衡。例如,如果優化程序不夠好或者判斷錯誤的統計信息,那麼添加索引實際上可能會損害性能,例如,即使閱讀

我建議你閱讀Refactoring SQL Applications,因爲它不是從「DB調諧器」,而是從開發人員的角度來解決問題。

這本書是由The Art of SQL的作者撰寫的,在很多場景下比較了Oracle,SQL Server和MySQL。這是務實的,並附帶一些有用的圖表。

我會遠離MySQL,除非被迫。根據「岩石」的幾個定義,Postgres 9.0的岩石,但我仍然會用8.4生產幾個月。

如果你想人來幫助你與此表,提供儘可能多的細節儘可能:架構,索引,數據分發,使用模式等

+0

同意。學習命令行與數據庫進行交互打開了新的大門,大型數據庫不會成爲問題。 – swt83 2010-07-13 21:42:44

+0

這完全是我一直在尋找的建議。謝謝!是的,我還需要查看我的查詢 – JohnB 2010-07-13 21:54:10

+0

對於Postgres評論+1 – rfusca 2010-07-14 03:28:20

4

切換DBMS不是解決方案。

有多大? 它有什麼指標?

如果真的那麼大,那麼你能分割它嗎?

1

我認爲simpledb是選擇。考慮到亞馬遜將它用於他們的平臺。

+0

+1指出SimpleDB。使用雲對我的senario來說是個好主意。然而,#1,我不確定我可以使用SimpleDB來執行BulkCopy,並且單獨的插入會太慢(因此很昂貴),#2,這只是一個寵物項目,我不想託管數據庫。 – JohnB 2010-07-13 21:53:10

4

你是從SQL Server最大化的一個很長的路要走。如果您沒有解決設計和索引問題是性能問題的根源,那麼您只需將它們移植到不同的平臺即可。

不會有一個銀色的子彈解決方案,可以「讓數據庫變得更快」,否則很多DBA會失業。你只需要做一些性能分析,並微調你的數據庫設計和索引策略,以獲得符合你的要求的性能。

對不起,確實沒有捷徑。

如果您提供更多關於queriesthat在性能和底層表結構/索引方面存在問題的詳細信息,我敢打賭,SO上的聰明人將能夠提供一些指導。

0

兩個DB產品,其中大部分真正的大公司,銀行,軍隊的,政府委託的大量數據是甲骨文DB2。兩者都有適當的價格標籤。這兩款產品都有數十年的強化專業調校,不過通常這些優勢僅適用於那些爲高性能顧問提供支付(另外!)賬單的人士。我有一位朋友是這樣的DB2顧問;他收費了一隻胳膊和一條腿,但通過其他人不會考慮的措施獲得了驚人的表現收益。

這些都不在你的短名單中,所以你很可能不會考慮它們。我懷疑任何其他產品都可以處理您的負載,儘管我對微軟產品有一些不信任。所以...認爲這只是爲了信息的緣故。

1

剛看到這一點。你需要檢查infobright.org。對於數字計算,它很棒。它爲mysql提供了一個數據庫引擎,但是爲分析而不是事務性更新構建。

唯一的問題是您的數據集對於infobright有點小,但應該可以正常工作。