Jakie są obiektywne biznesowe powody, aby preferować program SQL Server 2012 niż 2008 R2?

50

Moja firma stoi przed decyzją, czy kupić SQL Server 2012 Denali, czy SQL Server 2008 R2 na nowy serwer bazy danych. Szukam obiektywnych powodów, aby wybrać jeden z nich.

Nasze wymagania:

  • Edycja standardowa (z powodów finansowych i braku potrzeby funkcji korporacyjnych)
  • Obciążenie OLTP (oznacza to, że nie potrzebujemy nowych funkcji okienkowania i indeksów magazynu kolumn)
  • Rozmiar bazy danych 10–100 GB
  • Żadne funkcje analizy biznesowej nie są potrzebne. Wymagany jest tylko silnik relacyjny
  • Synchroniczne kopiowanie bazy danych

Obecnie znane mi są następujące powody:

SQL Server 2012 Denali

  • Najnowsza dostępna wersja

SQL Server 2008 R2

  • Sprawdzonej technologii

Nie mogę znaleźć wielu technicznych powodów, aby preferować jedno od drugiego. Zasadniczo sprowadza się do wyboru sprawdzonej technologii, która działa z powodzeniem w porównaniu do najnowszej i najlepszej dostępnej wersji.

Jakie są obiektywne powody podjęcia decyzji?

usr
źródło
5
Myślę, że dopóki zmiana licencji na rdzeń nie zmienia budżetu i nie musisz się martwić o powolne nadrabianie zaległości ze strony dostawców, korzystanie z SQL Server 2012 nie jest żadnym problemem. Opiera się to na sprawdzonej technologii, więc nie należy jej traktować jako kompletnego przepisywania i / lub V1.
Aaron Bertrand
3
Opierając się na moich doświadczeniach z trzema poprzednimi wydaniami, czekałbym co najmniej jeden dodatek service pack. W 2008 roku zaczekałem na R2, ale wciąż ma wady. Właśnie z góry miałem: w 2008 R2 mogę ominąć zaufane ograniczenie FK i wstawić osierocone wiersze, mogę uruchomić skrypt w SSMS, a jego część wykonuje się na niewłaściwej bazie danych.
AK
3
@AaronBertrand Myślę, że twoja analogia jest fałszywa. Jeśli widziałeś tę samą osobę wysyłającą SMS-y i prowadzącą samochód więcej niż raz, kilka razy, rozsądnie jest dojść do wniosku, że ta osoba ma strasznego kierowcę. W ten sposób PO się uogólnia, a nie tak, jak sugerowałeś.
AK
3
Alex, daj mi znać, gdy jakakolwiek skomplikowana platforma RDBMS zostanie dostarczona bez żadnych błędów. IIRC Twoje repozytorium FK było dość skomplikowane i nie było częstym scenariuszem. Daj mi również znać, jeśli uważasz, że firmy produkujące oprogramowanie nie mogą z czasem stać się lepsze, lub jeśli spodziewasz się podatności typu slammer w SQL 2012, to w późniejszej wersji, a później w późniejszej wersji ... muszę porzucić te opowieści starych żon i samodzielnie postawić platformę, a nie osądzać go po jakimś błędzie w poprzedniej wersji ...
Aaron Bertrand
7
„Czekaj na dodatek service pack” to stary mit i FUD
gbn

Odpowiedzi:

63

Wszyscy są podekscytowani AlwaysOn i ColumnStore, ale wiele zalet SQL Server 2012 nie ogranicza się wyłącznie do edycji z wyższej półki. Nie chcę brzmieć jak rzecznik, ale przedstawiłem wiele prezentacji na temat SQL Server 2012 i myślę, że ma wiele do zaoferowania w dowolnej edycji, która ci odpowiada.

  • Częściowo zawarte bazy danych, które pozwalają przenosić bazy danych między serwerami lub środowiskami z kilkoma mniejszymi kajdanami (mianowicie loginy na poziomie serwera i zależności między zestawieniami serwerów - przyszłe wersje będą obsługiwały bardziej wymagające elementy, takie jak połączone serwery i zadania agenta).

  • Management Studio jest teraz znacznie lepszym narzędziem, dostosowanym do Visual Studio. IntelliSense jest lepszy, a cała masa innych funkcji ułatwia edycję. Teraz oczywiście możesz mieć 2008 R2 na swoim serwerze i korzystać z wersji SSMS z 2012 roku, ale nie jestem pewien, jak to działa pod względem licencji, a niektóre sklepy nie chcą wersji mieszanych (wolę mieć najnowsze narzędzia na moja stacja robocza nawet do zarządzania serwerami niskiego poziomu). Pisałem na blogu o zmianach wcześnie, kiedy nadal występowały błędy, więc proszę zignorować negatywy, ponieważ większość lub wszystkie są naprawione od RTM. Drżę teraz, gdy muszę użyć wcześniejszej wersji SSMS.

  • Ulepszenia metadanych umożliwiają kontrolę zestawów wyników obiektów i zapytań ad hoc, a także pozwalają lepiej kształtować wyniki zapytań.

  • Niestandardowe role serwera umożliwiają zdefiniowanie znacznie bardziej szczegółowego zestawu uprawnień dla użytkowników na poziomie roli zamiast przyznawania / odwoływania jeden po drugim lub po prostu poddawania się złożoności i przekazywania im sysadmin.

  • FileTable pozwala zarządzać folderem jak tabelą dokumentów, ale nadal mieć zewnętrzną kontrolę nad zawartością (wyobraź sobie, że możesz to zrobić za pomocą T-SQL i wyobraź sobie, jak trudno byłoby to zrobić w cmd lub PowerShell:) UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';.. Pomyśl, FileStream spełnia WinFS i dostaje trochę użyteczności do rozruchu.

  • Udoskonalenia T-SQL pozwalają robić wiele rzeczy, które sprawiały ból we wcześniejszych wersjach:

    • THROW (traktuj to jako przebijanie)
    • OFFSET/FETCH (prostsze, stronicowanie w standardzie ANSI)
    • SEQUENCE (scentralizowany mechanizm TOŻSAMOŚCI, jak w Oracle)
    • Ulepszenia okienkowania / kadrowania (różne rzeczy, takie jak niesamowita wydajność sumowania biegów)
    • IIF()/ CHOOSE()/ CONCAT()/EOMONTH()
    • Konstruktory daty / godziny (np. DATETIMEFROMPARTS) Podobne do DateSerialVB
    • PARSE()/ FORMAT()- podobnie jak ich odpowiedniki .NET
    • TRY_CONVERT()/ TRY_PARSE()- zwraca NULLjeśli CONVERT/ PARSEfail
  • Extended Events ma ulepszony interfejs użytkownika do konfiguracji / przeglądania, a na koniec całkowicie obejmuje funkcje śledzenia / audytu (w tym znacznie lepsze śledzenie przyczyn).

  • Wiele nowych DMV , procedur systemowych i ulepszeń ShowPlan do diagnostyki i rozwiązywania problemów z wydajnością. Zobacz także, co CSS nazywa „ The Black Box Recorder ”.

  • Server Core pozwala na uruchomienie serwera na minimalnym poziomie bez wszystkich składników interfejsu użytkownika (mniejsza powierzchnia oznacza, że ​​jest on bezpieczniejszy i mniej wymaga konserwacji, ponieważ mniej części systemu operacyjnego podlegają aktualizacji Windows Update).

  • Wyszukiwanie pełnotekstowe zyskuje ważne ulepszenia wydajności, a także wyszukiwanie semantyczne (myśl słowa kluczowe) i dostosowywane bliskość / BLISKO.

  • AWE nie jest już obsługiwane , co oznacza, że ​​Twoja instancja SQL Server na x86 z 32 GB pamięci RAM będzie mogła używać tylko 4 GB - więc w końcu będziesz mieć motywację do zejścia ze starego 32-bitowego sprzętu.

Aaron Bertrand
źródło
Re: komentarz PowerShell, wciąż jest dość prosty: gci c:\users | where-object {$_.Author = 'Bob' -and $_.creationdate -lt '1/1/2010'} | %{$_.Readonly = 1}lub coś podobnego - ale nie tak prosty i czytelny jak opcja 2012!
JNK,
3
Wspaniałą rzeczą w PS jest to, że możesz zrobić wszystko (prawie) w jednym wierszu. Złe jest to, że trudno jest odczytać ten wiersz :)
JNK
1
Czy SSMS 2012 jest o wiele lepszy?
Thomas Stringer
5
Tak, kocham to. Powinienem napisać o tym kolejny post na blogu. Kilka najważniejszych: fragmenty są niesamowite, IntelliSense jest o wiele lepszy, edycja regionu jest bardzo wydajna, pasek kart świetnie nadaje się do wielu monitorów i jest wbudowany zoom.
Aaron Bertrand
3
Mógłbym również podsumować tę kulę w następujący sposób: „x86 będzie ssać jeszcze więcej niż już”.
Aaron Bertrand
14

Poniżej znajduje się tylko kilka przykładów dotyczących „faktycznych dowodów na wiarygodność lub brak wiarygodności w pierwszej wersji każdej nowej wersji”, zgodnie z żądaniem. Nie jest to pełna analiza, ale sugestia dotycząca tego, co możesz chcieć zbadać.

Możesz przejść do góry „Lista problemów rozwiązanych przez SQL Server 2008 Service Pack 1” i „Lista problemów rozwiązanych przez SQL Server 2008 Service Pack 3” na stronie MSDN. Porównaj liczbę i wagę problemów na obu listach. IMO pierwsza lista jest dłuższa i zawiera więcej przedmiotów, które mogłyby zrujnować mój dzień, takich jak:

  • Komunikat o błędzie podczas łączenia się z nazwaną instancją SQL Server na komputerze klienckim z systemem Windows Vista lub Windows Server 2008
  • Agent czytnika dziennika pomija niektóre transakcje, gdy agent czytnika dziennika uruchamia się w celu replikacji transakcji
  • Komunikat o błędzie podczas uruchamiania zapytania dotyczącego operacji łączenia zewnętrznego w SQL Server 2008
  • Komunikat o błędzie podczas wykonywania operacji aktualizacji lub usuwania w tabeli, która nie ma indeksu klastrowego utworzonego w SQL Server 2008
  • Zapytanie, które korzysta z parametrów, a opcja RECOMPILE zwraca niepoprawne wyniki po uruchomieniu zapytania w wielu połączeniach jednocześnie w SQL Server 2008

Przeanalizujmy jeszcze jeden poziom i rozważmy tylko jedno polecenie, ŁĄCZENIE. Został wydany jako część SQL 2008 z kilkoma problemami, opisanymi w następujących linkach:

W związku z tym w momencie oryginalnej wersji SQL 2008 postanowiłem nie używać MERGE. Obecnie używam MERGE, w wersji 2008 R2 i myślę, że to naprawdę świetna funkcja.

Edycja: oto lista wad w SQL 2012, które zostały niedawno naprawione . Mam nadzieję, że to pomoże.

Kolejna edycja: wybrałem MERGE do bardziej szczegółowej analizy, ponieważ jest to bardzo ważna poprawa. W rzeczywistości jest to duży krok w nadrobieniu zaległości w Oracle i poprawia naszą wydajność. W związku z tym MERGE był szeroko sprzedawany w momencie wydania SQL 2008. Jednak nie był całkowicie gotowy do użycia w poważnych systemach produkcyjnych, kiedy został pierwotnie wydany, i nie było łatwego sposobu, aby poznać go z prezentacji / artykułów / postów na blogu i tym podobnych.

Podobnie izolowanie migawek jest niesamowitą nową funkcją, która po prostu działa, ale wywoływanie skalarnych UDF w ograniczeniach CHECK nie działa we wszystkich przypadkach i jako takie nie powinno być stosowane w produkcji, gdy potrzebujemy integralności danych. Jednak obie nowe funkcje były zalecane w prezentacjach „Co nowego w SQL xxxx”, a także w książkach, artykułach itp. I z podobnym entuzjazmem.

Musimy bardzo uważać na nowe funkcje - nie wszystkie będą przydatne / niezawodne / wydajne.

AK
źródło
Widziałem listę. Naprawdę nie postrzegałem żadnego z nich jako przeszkód dla show, a prawie wszystkie wymienione problemy dotyczą zarówno 2008 R2, jak i 2012.
Aaron Bertrand
1
Oto kolejny potencjalny MERGEbłąd, który powoduje zakleszczenia.
Nick Chammas
@NickChammas tak, prawda, dziękuję za wzmiankę o tym. Używamy sp_getapplock do poruszania się.
AK
10

Jeden punkt, który nie został tutaj wymieniony, jest całkowicie nieistotny dla zestawu funkcji. Jeśli robisz nową kompilację, możesz odłożyć aktualizację bazy danych na nieco dłużej, co pozwoli zaoszczędzić na kosztach migracji.

W przypadku projektu typu greenfield masz trochę czasu na obejście błędów i podniesienie ich wraz z dostawcą, jeśli się pojawią, więc nie jest to całkowicie niekontrolowany proces. Byłem zaangażowany w jeden z pierwszych projektów hurtowni danych w SQL Server 2005, podobnie jak w przypadku RTM i nam się to udało.

Jeśli zestaw funkcji 2008R2 zrobi to, co chcesz, decyzja zależy od pewnego ryzyka błędów / obejść w stosunku do wartości odroczenia konieczności aktualizacji i zapisania cyklu aktualizacji.

ConcernedOfTunbridgeWells
źródło
6

Kiedy kupujesz nowy, wybór jest zupełnie inny niż w przypadku aktualizacji. Kupując nowy wierzę, że zawsze powinieneś kupować najnowszą wersję, którą możesz uzyskać. Wersja 2008 nie będzie już obsługiwana znacznie wcześniej niż wersja 2012. Lepiej zacząć od najnowszego, ponieważ będziesz używać tego backendu przez długi czas.

Jeśli chodzi o potrzebę pierwszego dodatku Service Pack, zostanie opublikowany, zanim się zorientujesz, a ponieważ robisz nowe prace rozwojowe, problemy, które rozwiąże, prawdopodobnie nie wpłyną na ciebie tak bardzo, jak na starszą bazę danych z milionami rekordów.

Teraz, jeśli dopiero otrzymujesz nowy serwer, ale umieszczasz na nim starą bazę danych, pojawia się pytanie, z czego aktualizujesz? Jeśli baza danych jest już bazą danych z 2008 r., Korzystanie z tej samej wersji będzie znacznie mniej ryzykowne. Jeśli przeprowadzasz aktualizację, sprawdź, czy możesz uaktualnić bezpośrednio do 2012 r. Ze swojej wersji.

HLGEM
źródło
Brak aktualizacji. To jest nowa aplikacja na nowym sprzęcie.
usr