2009-09-03 47 views
15

Có ai đã sử dụng cả ba cơ sở dữ liệu này không? Kinh nghiệm của bạn với họ là gì? PostgreSQL trông khá hấp dẫn đối với một dự án nhưng tôi tò mò muốn tìm hiểu thêm về nó (Chúng tôi là một Cửa hàng .NET). Tôi cũng đã nghe nói về khá nhiều người hài lòng với DB2.DB2 vs PostgreSQL vs SQL Server

Trả lời

5

Nếu bạn là cửa hàng .NET và đang sử dụng cơ sở dữ liệu nhỏ (ví dụ: Sql Server Express) hoặc có tiền cho SQL Server đầy đủ, hãy sử dụng nó. SQL Server sẽ hoạt động tốt hơn PostgreSQL đối với hầu hết các hành động, và giống như DB2.

PostgreSQL là tuyệt vời nếu bạn cần hỗ trợ đa nền tảng, dựa trên Linux hoặc cần một sản phẩm miễn phí không phải là Microsoft. Tôi đã không sử dụng DB2 trong hơn 10 năm qua, ngoài việc chạy thử nghiệm hiệu năng nội bộ so với các cơ sở dữ liệu khác (nơi nó giống nhau cho một cơ sở dữ liệu giao dịch như Oracle/SQL Server, nơi tốt hơn so với MySQL , PostgreSQL, v.v.).

2

Nếu bạn là một .net lưu trú với SQL Server.

Sử dụng bất kỳ nền tảng cơ sở dữ liệu nào khác sẽ yêu cầu không phải Windows để tận dụng tốt nhất. Trên Windows, SQL Server là vua đơn giản vì MS sở hữu cả hệ điều hành và SQL Server (Giống như Oracle/Red Hat).

+3

Có lẽ Oracle/Sun/Solaris (phần mềm/phần cứng/hệ điều hành), nhưng không phải Oracle/RedHat, Oracle không sở hữu RedHat. –

+0

@Pascal Thivent: tại thời điểm tôi đăng, Oracle không sở hữu Sun. Và Oracle đã ưa thích Linux http://www.orafaq.com/wiki/Linux. – gbn

+2

Thực tế là máy chủ SQL chỉ hoạt động trong Windows, nó không có nghĩa là nó là tốt nhất trên hệ điều hành đó. Hãy xem TPC để xem các buổi biểu diễn tốt nhất, và chúng ta có thể thấy một số Oracle và DB2 trên Windows. Đồng thời Oracle có thể chạy tốt trong AIX, vì vậy tiêu chí của bạn không phải là convincent. http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%¤cyID=0 – AngocA

8

Là một người DB2, tôi có thể cung cấp một vài chi tiết về những gì bạn có thể mong đợi từ việc chạy DB2 cho Windows và phát triển các ứng dụng .NET cho nó. Phiên bản hiện tại, 9.7, được phát hành vào tháng Sáu năm 2009.

  • Trình điều khiển và hỗ trợ API cho chỉ là về bất kỳ ngôn ngữ lập trình Windows và IDE, bao gồm cả .NET và Visual Studio mở rộng
  • Một không có chi phí, sản xuất sẵn sàng công cụ cơ sở dữ liệu (Express-C) không có giới hạn kích thước cơ sở dữ liệu và ít bị hạn chế nhất khi so sánh với Oracle Express và SQL Server Express
  • Công cụ cơ sở dữ liệu tự điều chỉnh cho Windows tự động xử lý kích thước của một số bộ đệm để có hiệu suất tốt
  • Hỗ trợ Rock-solid cho XML dưới dạng kiểu dữ liệu gốc, được xử lý bởi chính nó công cụ truy vấn chuyên dụng được tối ưu hóa cho tính chất phân cấp của XML. Truy vấn có thể truy cập bất kỳ kết hợp nào của dữ liệu dạng bảng và XML với bất kỳ kết hợp nào của các biểu thức SQL và XQuery
+0

Fred: Khách hàng của tôi đang tìm kiếm một chiếc máy có nhiều hơn 2 GB RAM. Tôi nghĩ đây là rào cản với ấn bản DB2-Express C hiện tại? Thứ hai, sự trợ giúp của DB2 trong cộng đồng không đến nhanh như vậy so với SQL Server và Oracle. – RKh

+0

DB2 Express-C có thể chạy trên các máy chủ có RAM lớn hơn 2GB, nhưng cá thể DB2 sẽ chỉ có thể sử dụng tới 2GB RAM sẵn có. Giới hạn này có thể được tăng gấp đôi bằng cách nâng cấp lên FTL, đồng thời cho phép sử dụng nhiều lõi CPU và nhân rộng hơn cho cơ sở dữ liệu DB2 cục bộ hoặc từ xa. DB2 có một cộng đồng phát triển mạnh trong một số lĩnh vực, bao gồm danh sách gửi thư DB2-L tại IDUG.org và các bài thuyết trình từ các hội nghị công nghệ trước đó. IBM developerWorks là một tài nguyên tuyệt vời khác để khám phá các tính năng cụ thể mà sách hướng dẫn có thể không giải thích đầy đủ. –

+0

Vui lòng đề cập đến khả năng sử dụng các thường trình .NET trong DB2 LUW và tôi sẽ upvote câu trả lời của bạn. –

16

Tôi làm việc trong một tổ chức rất lớn sử dụng DB2 chủ yếu trên Linux (Red Hat). Chúng tôi có một số cơ sở dữ liệu lớn và đã điều tra việc chuyển sang các giải pháp RDBMS khác, chẳng hạn như Oracle và SQL Server. Tôi đã làm rất nhiều công việc trên máy chủ SQL kết thúc điều đó.

Chúng tôi thấy rằng máy chủ SQL hoạt động tốt hơn nhiều và yêu cầu điều chỉnh ít hơn so với DB2, đặc biệt khi các bảng cày lớn hơn 1 triệu bản ghi. HADR cũng là khó khăn và cồng kềnh, để nói rằng ít nhất.

Chúng tôi đã tìm thấy nhiều sự khác biệt giữa DB2 và SQL Server và quá nhiều thứ để liệt kê ở đây. Tôi chịu trách nhiệm thực hiện rất nhiều kỹ thuật đằng sau việc chuyển đổi mã từ nền tảng này sang nền tảng khác và không thể nói rằng tôi tìm thấy bất kỳ thứ gì trong DB2 vượt trội so với máy chủ SQL, nhưng đã tìm thấy nhiều thứ tôi thích hơn về máy chủ SQL. Dưới đây là một số điều trên đỉnh đầu của tôi:

  • Loại dữ liệu lựa chọn tốt hơn trong SQL Server, chẳng hạn như MONEY và SMALL MONEY.
  • Mã hóa ký tự hỗn hợp trong SQL Server. Một số cột có thể là ANSI và những người khác UNICODE (char và nchar, tương ứng). Việc thiết lập điều này trong DB2 không đơn giản và dễ dàng.
  • Các công cụ tốt hơn trong máy chủ SQL, chủ yếu là SSIS cho ETL (Trái ngược với Giai đoạn dữ liệu IBM có giá cực thấp).
  • Máy chủ SQL có cú pháp tha thứ hơn. Ví dụ, bạn không cần bán dấu hai chấm ở khắp mọi nơi. Có lẽ chỉ là một sở thích cá nhân nhưng tôi thấy dễ dàng hơn trong việc viết mã trong T-SQL.
  • Nhiều tính năng nâng cao có vẻ hoạt động tốt hơn trong máy chủ SQL. Ví dụ, máy chủ SQL cho phép bạn thực hiện nén ở mức độ trang, trong đó DB2 được giới hạn ở mức nén hàng.
  • Đó là dễ dàng hơn để điều chỉnh SQL Server truy vấn với SQL Server IDE

Hiện có nhiều, nhưng thật sự tôi đề nghị rằng bất cứ ai đang xem xét một trong khác nên đặt cả lên và dành chút thời gian làm việc với cả hai hệ thống. Ngay bây giờ có vẻ như máy chủ SQL là một giải pháp tổng thể tốt hơn, nhưng một ngày nào đó DB2 có thể lấy vương miện.

Cuối cùng, khi giao dịch với kho dữ liệu, SQL, SSIS và SSAS đã tạo ra một giải pháp tốt hơn nhiều so với InfoSphere, DataStage và DB2. Tôi có thể viết một bài báo trên đó, nhưng đề xuất của tôi ở đây là tự mình thiết lập và dành một tuần hoặc chơi với mỗi giải pháp. Giải pháp của Microsoft ở đây nhanh hơn và rẻ hơn của IBM. Tôi không biết bất kỳ cơ sở nào khác để đưa ra quyết định.

Nền tảng không phải là vấn đề vì cơ sở dữ liệu thường chạy trên máy của riêng họ, nhưng luôn có những "không có microsoft!" và "không có Linux!" cửa hàng xung quanh. Đó là một sự xấu hổ, thực sự. Tôi muốn giới thiệu máy chủ SQL.

+0

Thêm vào thảo luận này - quản lý DB2 là một PITA hoàng gia (và tôi không có nghĩa là flatbread Địa Trung Hải) so với SQLServer. Các thông báo lỗi của SQLServer rất rõ ràng và các thao tác rất đơn giản để thực hiện. Làm mới môi trường thử nghiệm từ bản sao lưu sản xuất yêu cầu sáu cú click chuột, so với việc điều hướng cú pháp phức tạp của lệnh db2 restore và db2 Rollforward. Hãy nhớ tính chi phí liên tục của mọi người để quản lý cơ sở dữ liệu –

2

Tránh microsoft như bệnh dịch hạch. Luôn thúc đẩy sử dụng PostgreSql ngay cả trên các cửa sổ, hỗ trợ tốt hơn cho việc phát triển các ứng dụng cho ví dụ: Java/Python và vẫn có hỗ trợ tốt trong .NET. Ngoài ra tất nhiên là hoàn toàn miễn phí mà cho phép lệ phí giấy phép hiện hành cho SQL Server là không có gì để được đánh hơi ngay cả khi bạn là một công ty nhiều triệu đô la.

Với chi phí 1 giấy phép SQL Server, bạn sẽ tiết kiệm được £ 30,000 (nói $ 40.000) hoặc cao hơn - mua phần cứng tốt hơn để chạy Postgres và vẫn có lợi ích ròng.

Theo như hiệu suất, thực sự nếu đây là vấn đề lớn như vậy, chúng tôi không nên sử dụng DB2, SQL Server hoặc Postgres. Sự khác biệt giữa ba là không đáng kể cho mục đích thiết kế của họ.

Chỉnh sửa: Trên hội nhập .NET, thực tế điều này thực sự kém trong SQL Server, nó có nhiều tính năng hơn Postgres/DB2 thừa nhận nhưng nó không thực sự thuận lợi hơn SSIS hoặc các thủ tục được lưu trữ. Tôi có thể thấy trường hợp sử dụng chính trong công việc của tôi khi truy cập các lớp và các hàm từ một CLR .dll nhưng sau đó bạn đang triển khai thực hiện logic trong cơ sở dữ liệu mà có thể hoặc không có ý tưởng tốt cho bạn.

+1

Thực sự không đồng ý về tích hợp .Net. Tôi sử dụng các hàm CLR phân tích (nguy cơ) trong db, mất 2 giây để tìm kết quả trên khoảng 10 triệu hàng. Làm điều đó trong tsql hoặc bên ngoài SQL sẽ mất vài phút đến vài giờ. Đối với các chức năng tính toán chuyên sâu, hiệu suất tăng của .net bên trong sql là rất lớn. Đối với phân tích dữ liệu lớn SQL là tôi nghĩ là tốt nhất. – gjvdkamp

Các vấn đề liên quan