2009-09-03 11 views
15

Czy ktoś użył wszystkich trzech z tych baz danych? Jakie są twoje doświadczenia z nimi? PostgreSQL wygląda całkiem kusząco na projekt, ale jestem ciekawy, aby dowiedzieć się więcej o nim (jesteśmy sklepem .NET). Słyszałem również, że sporo osób jest zadowolonych z DB2.DB2 vs PostgreSQL vs SQL Server

Odpowiedz

5

Jeśli jesteś sklepem .NET i używasz małej bazy danych (np. Sql Server Express) lub masz pieniądze na pełny serwer SQL, użyj go. SQL Server będzie działał lepiej niż PostgreSQL dla większości działań i mniej więcej tak samo jak DB2.

PostgreSQL jest fantastyczny, jeśli potrzebujesz pomocy wieloplatformowej, opartej na systemie Linux lub potrzebujesz darmowego produktu, który nie jest Microsoft.

Nie korzystałem z DB2 od ponad 10 lat, poza przeprowadzeniem wewnętrznego testu wydajności w porównaniu z innymi bazami danych (gdzie było to mniej więcej tak samo w transakcyjnej bazie danych jak Oracle/SQL Server, gdzie były lepsze niż MySQL , PostgreSQL itp.).

2

Jeśli jesteś sklepem .net, zostań z serwerem SQL.

Korzystanie z dowolnej innej platformy bazodanowej wymaga systemu innego niż Windows, aby uzyskać z niej najlepsze efekty. W systemie Windows SQL Server jest królem, ponieważ MS posiada zarówno system operacyjny, jak i SQL Server (np. Oracle/Red Hat).

+3

Może Oracle/Sun/Solaris (oprogramowanie/sprzęt/OS), ale nie Oracle/RedHat, Oracle nie jest właścicielem RedHat. –

+0

@Pascal Thivent: w momencie zamieszczania informacji firma Oracle nie była właścicielem firmy Sun. A firma Oracle preferowała Linuksa http://www.orafaq.com/wiki/Linux. – gbn

+2

Fakt, że serwer SQL działa tylko w systemie Windows, nie oznacza, że ​​jest najlepszy w tym systemie operacyjnym. Rzuć okiem na TPC, aby zobaczyć najlepsze wyniki, i widzimy niektóre Oracle i DB2 over Windows. W tym samym czasie Oracle może działać dobrze w systemie AIX, więc twoje kryterium nie jest przekonujące. http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%¤cyID=0 – AngocA

8

Jako osoba DB2 mogę podać kilka szczegółów na temat tego, czego można się spodziewać po uruchomieniu produktu DB2 dla systemu Windows i tworzeniu dla niego aplikacji .NET. Obecna wersja 9.7 została wydana w czerwcu 2009.

  • Kierowcy i wsparcie API dla prawie każdego języka programowania Windows oraz IDE, w tym .NET i Visual Studio rozszerzeń
  • A no-cost, produkcja gotowych silnik bazy danych (Express-C), który nie ma limitu rozmiaru bazy danych i jest najmniej ograniczony w porównaniu do Oracle Express i SQL Server Express
  • Samostosowny silnik bazy danych dla systemu Windows, który automatycznie obsługuje wielkość kilku buforów pamięci, które są krytyczne do dobrej wydajności
  • Stabilne wsparcie dla XML jako natywnego typu danych, obsługiwane przez jego własne dedykowany silnik zapytań, zoptymalizowany pod kątem hierarchicznej natury XML. Zapytania mogą uzyskiwać dostęp do dowolnej kombinacji danych XML i tabelarycznych z dowolną kombinacją wyrażeń SQL i XQuery
+0

Fred: Moi klienci szukają maszyny z ponad 2 GB pamięci RAM. Myślę, że to jest bariera w istniejącej edycji DB2-Express C? Po drugie, pomoc DB2 w społecznościach nie dociera tak szybko w porównaniu do SQL Server i Oracle. – RKh

+0

DB2 Express-C może działać na serwerach z więcej niż 2 GB pamięci RAM, ale instancja DB2 będzie mogła korzystać z maksymalnie 2 GB dostępnej pamięci RAM. Ten limit może zostać podwojony poprzez uaktualnienie do FTL, a także pozwala na użycie większej liczby rdzeni procesora i replikacji do lokalnej lub zdalnej bazy danych DB2. DB2 ma dobrze prosperującą społeczność w kilku obszarach, w tym na liście dyskusyjnej DB2-L na IDUG.org i prezentacjach z poprzednich konferencji technicznych. IBM developerWorks to kolejny doskonały sposób na zbadanie konkretnych funkcji, których podręcznik nie wyjaśnia w pełni. –

+0

Należy wspomnieć o możliwości korzystania z procedur .NET w DB2 LUW, a ja przekażę odpowiedź. –

16

Pracuję w bardzo dużej organizacji, która używa DB2 głównie w systemie Linux (Red Hat). Posiadamy wiele dużych baz danych i zbadaliśmy przejście do innych rozwiązań RDBMS, takich jak Oracle i SQL Server. Zrobiłem dużo pracy na końcu serwera SQL.

Okazało się, że serwer SQL działa znacznie lepiej i wymaga mniej tuningu niż DB2, zwłaszcza gdy tabele przewyższają rekordy większe niż 1M. HADR jest, co najmniej, trudny i nieporęczny.

Znaleźliśmy wiele różnic między DB2 i SQL Server, a zbyt wiele do tutaj. Byłem odpowiedzialny za wykonywanie wielu zadań inżynieryjnych za konwersją kodu z jednej platformy na inną i nie mogę powiedzieć, że znalazłem coś w DB2, które było lepsze od serwera SQL, ale znalazłem wiele rzeczy, które bardziej podobały mi się w SQL Server. Oto niektóre z mojej głowy:

  • Lepsze typy danych wyboru w SQL Server, takie jak PIENIĄDZE i MAŁE PIENIĄDZE.
  • Mieszane kodowanie znaków w SQL Server. Niektóre kolumny mogą być ANSI i inne UNICODE (char i nchar, odpowiednio). Ustanowienie tego w DB2 nie jest ani proste, ani łatwe.
  • Lepsze narzędzia w serwerze SQL, głównie SSIS dla ETL (w przeciwieństwie do szaleńczo wycenionego IBM Data Stage).
  • Serwer SQL ma łatwiejszą składnię. Na przykład nie potrzebujesz wszędzie półkolonów. Może tylko osobiste preferencje, ale okazało się, że kodowanie w T-SQL jest łatwiejsze.
  • Wiele zaawansowanych funkcji wydaje się działać lepiej na serwerze SQL. Na przykład serwer SQL umożliwia kompresję na poziomie strony, gdzie DB2 jest ograniczone do kompresji na poziomie wiersza.
  • Łatwiej było dostroić zapytań SQL Server z IDE SQL Server

Jest więcej, ale szczerze I sugerują, że każdy, kto rozważa jeden nad drugim należy ustawić zarówno w górę i spędzić trochę czasu na pracę zarówno z systemy. Obecnie wygląda na to, że SQL Server jest lepszym ogólnym rozwiązaniem, ale DB2 może pewnego dnia przyjąć koronę.

Wreszcie, jeśli chodzi o hurtownie danych, SQL, SSIS i SSAS stworzyły znacznie lepsze rozwiązanie niż InfoSphere, DataStage i DB2. Mógłbym napisać o tym białą księgę, ale moja sugestia tutaj polega na samodzielnym skonfigurowaniu i spędzeniu tygodnia lub graniu z każdym rozwiązaniem. Rozwiązanie Microsoft tutaj było szybsze i tańsze niż IBM. Nie znam żadnej innej podstawy do podjęcia decyzji.

Platforma nie powinna stanowić problemu, ponieważ bazy danych zazwyczaj działają na własnych komputerach, ale zawsze są takie "nie ma microsoft!" i "no linux!" sklepy w pobliżu. To naprawdę wstyd. Polecam serwer SQL.

+0

Dodaj do tej dyskusji - zarządzanie DB2 jest królewskim PITA (i nie mam na myśli śródziemnomorskich flatbread) w porównaniu do SQLServer. Komunikaty błędów SQLServer są jasne, a operacje są proste do wykonania. Odświeżenie środowiska testowego z kopii zapasowej produkcji wymaga sześciu kliknięć myszki, w porównaniu z nawigacją w arcane składnia komend db2 restore i db2 Rollforward. Pamiętaj, aby policzyć bieżące koszty związane z zarządzaniem bazami danych. –

2

Unikaj microsoft jak zarazy. Zawsze naciskaj, aby korzystać z PostgreSql nawet w Windows, lepsze wsparcie dla tworzenia aplikacji dla np. Java/Python i nadal ma dobre wsparcie w .NET. Oczywiście jest to całkowicie bezpłatne, co przy obecnych opłatach licencyjnych dla SQL Server nie jest niczym, co można by wąchać, nawet jeśli jesteś firmą wartą wiele milionów dolarów.

Za cenę 1 licencji SQL Server zaoszczędzisz 30 000 £ (np. 40 000 USD) lub więcej - kup lepszy sprzęt, aby uruchomić PostgreSQL i nadal mieć korzyść netto.

Jeśli chodzi o wydajność, tak naprawdę, jeśli jest to tak olbrzymi problem, nie powinniśmy używać ani DB2, SQL Server ani Postgres. Różnica między tymi trzema jest znikoma dla ich celów projektowych.

Edycja: W przypadku integracji .NET, tak naprawdę jest to naprawdę słabe w SQL Server, mimo to ma więcej funkcji niż Postgres/DB2, ale nie jest to bardzo korzystne pod względem SSIS lub procedur przechowywanych. Mogłem zobaczyć główny przypadek użycia w mojej pracy jako dostęp do klas i funkcji z CLR .dll, ale potem wprowadzasz logikę do bazy danych, która może być dobrym pomysłem.

+1

Naprawdę nie zgadzam się na temat integracji .Net. Używam analitycznych (ryzyka) funkcji CLR w db, które trwają 2 sekundy, aby znaleźć wyniki ponad 10 milionów wierszy. Wykonanie tego w tsql lub poza SQL zajmie minuty do godzin. W przypadku intensywnie obliczeniowych funkcji wzrost wydajności .net wewnątrz sql jest ogromny. W przypadku dużych analiz danych SQL jest chyba najlepszy. – gjvdkamp