2009-09-03 76 views
15

有沒有人使用過這三個數據庫?你與他們的經歷是什麼? PostgreSQL對於一個項目來說看起來很誘人,但我很想了解更多關於它的知識(我們是一個.NET商店)。我也聽說很多人對DB2感到滿意。DB2 vs PostgreSQL vs SQL Server

回答

5

如果您是.NET商店,並且要麼使用小型數據庫(即Sql Server Express),要麼爲整個SQL Server準備金,請使用它。對於大多數操作,SQL Server將比PostgreSQL執行得更好,並且與DB2相同。

如果您需要多平臺支持,基於Linux或需要非Microsoft的免費產品,PostgreSQL非常棒。

我已經使用了DB2超過10年,除了運行內部性能測試與其他數據庫(其中它與Oracle/SQL Server的事務數據庫大致相同,其中比MySQL更好,PostgreSQL等)。

2

如果您是使用SQL Server的.net商店。

使用任何其他數據庫平臺都需要非Windows來充分利用它。在Windows上,SQL Server是王者,因爲MS擁有操作系統和SQL Server(就像Oracle/Red Hat一樣)。

+3

也許Oracle/Sun/Solaris(軟件/硬件/操作系統),但不是Oracle/RedHat,Oracle不擁有RedHat。 – 2010-07-09 23:26:07

+0

@Pascal Thivent:在我發佈的時候,Oracle並沒有自己的Sun。而且Oracle首選Linux http://www.orafaq.com/wiki/Linux。 – gbn 2011-11-03 10:29:25

+2

SQL服務器只能在Windows中工作,這並不意味着它是最好的操作系統。看看TPC,看看最好的表現,我們可以在Windows上看到一些Oracle和DB2。與此同時,Oracle可以在AIX中運行良好,因此您的標準不夠有說服力。 http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%¤cyID=0 – AngocA 2011-11-04 08:36:55

8

作爲一名DB2人員,我可以提供一些關於運行DB2 for Windows和爲其開發.NET應用程序可能期望的細節。當前版本9.7,是在6月發佈的2009年

  • 爲幾乎任何Windows編程語言和IDE,包括.NET和Visual Studio擴展
  • 一個無成本的,生產就緒的驅動程序和API支持與Oracle Express和SQL Server Express相比,數據庫引擎(Express-C)沒有數據庫大小限制並且受限制最小
  • Windows的自調整數據庫引擎,可自動處理對幾個關鍵內存緩衝區的大小以良好的性能
  • 作爲本機數據類型的XML的堅定支持,由其自身處理專用的查詢引擎,針對XML的分層性質進行了優化。查詢可以使用SQL和XQuery表達式的任意組合訪問XML和表格數據的任意組合
+0

Fred:我的客戶正在尋找一臺擁有2GB內存的機器。我認爲這是現有DB2-Express C版本的障礙嗎?其次,與SQL Server和Oracle相比,社區中的DB2幫助並沒有到達那麼快。 – RKh 2010-10-29 06:57:04

+0

DB2 Express-C可以在內存超過2GB的服務器上運行,但DB2實例只能使用高達2GB的可用RAM。通過升級到FTL,此限制可以加倍,還允許使用更多的CPU核心並複製到本地或遠程DB2數據庫。 DB2在多個領域擁有蓬勃發展的社區,包括IDUG.org上的DB2-L郵件列表和以前的技術會議的演示文稿。 IBM developerWorks是探索手冊可能無法完全解釋的特定功能的另一優秀資源。 – 2010-11-01 04:40:34

+0

請提及在DB2 LUW中使用.NET例程的能力,我會提高您的答案。 – 2012-03-14 17:25:15

16

我在一個非常大的組織中工作,該組織主要在Linux(Red Hat)上使用DB2。我們有大量的大型數據庫,並且已經調查轉向其他RDBMS解決方案,例如Oracle和SQL Server。我在SQL服務器端做了很多工作。

我們發現SQL服務器性能要好得多,需要的調整少於DB2,特別是當表大於1M的記錄時。至少可以說,HADR也很困難和笨重。

我們發現DB2和SQL Server之間存在很多差異,而且這裏列出的內容太多。我負責完成了從一個平臺到另一個平臺的代碼轉換背後的大量工程,並且不能說我發現DB2中的任何東西都優於SQL服務器,但卻發現了許多我更喜歡SQL Server的東西。這裏有一些我的頭頂:

  • 更好地選擇SQL Server中的數據類型,如MONEY和SMALL MONEY。
  • SQL Server中的混合字符編碼。一些列可以是ANSI和其他UNICODE(分別是char和nchar)。在DB2中進行設置既不簡單也不容易。
  • 更好的SQL服務器工具,主要是用於ETL的SSIS(與瘋狂定價的IBM Data Stage相反)。
  • SQL服務器有更寬容的語法。例如,你不需要到處都是分號。也許只是個人偏好,但我發現在T-SQL中編寫代碼要容易得多。
  • 許多高級功能似乎在SQL服務器中工作得更好。例如,SQL服務器允許您執行頁面級壓縮,其中DB2僅限於行級壓縮。
  • 這是比較容易與SQL Server的IDE調整SQL服務器查詢

還有更多,但老實說,我認爲誰正在考慮一個比其他任何人都應該同時設置並花一些時間與兩個工作系統。現在看來,SQL服務器似乎是一個更好的整體解決方案,但DB2有朝一日可能奪冠。最後,在處理數據倉庫時,SQL,SSIS和SSAS比InfoSphere,DataStage和DB2提供了更好的解決方案。我可以在上面寫一篇白皮書,但我的建議是自行設置,花一週或者每個解決方案。這裏的微軟解決方案比IBM的解決方案更快,更便宜。我不知道作出決定的其他依據。

平臺不應該是一個問題,因爲數據庫通常運行在自己的機器上,但總是有那些「沒有微軟!」和「沒有Linux!」商店周圍。真是遺憾,真的。我建議SQL服務器。

+0

添加到這個討論 - 與SQLServer相比,管理DB2是一個皇家PITA(我不是指地中海扁麪包)。 SQLServer的錯誤消息很清楚,操作很簡單。與導航db2 restore和db2 Rollforward命令的神祕語法相比,從生產備份刷新測試環境需要點擊六次鼠標。 記得要統計人們管理數據庫的持續成本 – 2017-01-13 20:46:48

2

避免像瘟疫一樣的微軟。始終推動甚至在Windows上使用PostgreSql,以便更好地支持開發應用程序。 Java/Python並且在.NET中仍然有很好的支持。當然,也是完全免費的,因爲即使你是一家價值數百萬美元的公司,目前SQL Server的許可費用也沒什麼可聞。

對於1個SQL Server許可證的費用,您將節省30,000英鎊(比如說40,000美元)或更多 - 購買更好的硬件來運行Postgres並且仍然具有淨收益。

就性能而言,如果這是一個巨大的問題,我們不應該使用DB2,SQL Server或Postgres。三者之間的差異對於他們的設計目的是微不足道的。編輯:在.NET集成中,無論如何,這實際上在SQL Server中確實很差,它確實比Postgres/DB2具有更多的功能,但它並不比SSIS或存儲過程有很多優勢。我可以將我的工作中的主要用例看作是從CLR .dll訪問類和函數,但是然後在數據庫中實現邏輯,這對您而言可能是也可能不是好主意。

+1

真的不同意.Net集成。我在db中使用分析(風險)CLR函數,需要2秒才能找到1000萬行左右的結果。在tsql或SQL之外做這件事需要幾分鐘到幾個小時。對於計算密集型功能來說,sql中.net的性能提升是巨大的。對於大數據分析,SQL是我認爲最好的。 – gjvdkamp 2013-09-14 09:36:34