Quali sono i motivi di business oggettivi per preferire SQL Server 2012 rispetto al 2008 R2?


50

La mia azienda deve decidere se acquistare SQL Server 2012 Denali o SQL Server 2008 R2 per un nuovo server di database. Sto cercando ragioni oggettive per scegliere l'una sull'altra.

I nostri requisiti:

  • Edizione standard (per motivi finanziari e mancanza di necessità di funzionalità aziendali)
  • Carico di lavoro OLTP (ciò significa che non sono necessarie le nuove funzioni di windowing e gli indici degli archivi di colonne)
  • Dimensioni del database di 10-100 GB
  • Non sono necessarie funzionalità di business intelligence. È richiesto solo il motore relazionale
  • Mirroring sincrono del database

Attualmente, sono noti i seguenti motivi:

SQL Server 2012 Denali

  • Disponibile la versione più recente

SQL Server 2008 R2

  • Tecnologia comprovata

Non riesco a trovare molti motivi tecnici per preferire l'uno all'altro. Fondamentalmente, si tratta di scegliere la tecnologia collaudata che funziona con successo rispetto alla versione più recente e più grande disponibile.

Quali sono le ragioni oggettive per prendere la decisione?


5
Penso che fintanto che la modifica delle licenze per core non modifica il budget e non devi preoccuparti di rallentare il recupero del fornitore, l'utilizzo di SQL Server 2012 è un gioco da ragazzi. Questo si basa su una tecnologia collaudata, quindi non dovrebbe essere considerato una riscrittura completa e / o un V1.
Aaron Bertrand

3
In base alla mia esperienza con le tre versioni precedenti, aspetterei almeno un service pack. Con il 2008 ho aspettato fino a R2, e ha ancora difetti. Proprio dalla parte superiore del mio: nel 2008 R2 posso bypassare un vincolo FK di fiducia e inserire righe orfane, posso eseguire uno script in SSMS e parte di esso viene eseguito su un database errato.
AK

3
@AaronBertrand Penso che la tua analogia sia falsa. Se hai visto la stessa persona mandare messaggi e guidare più di una volta, più volte, è ragionevole concludere che quella persona ha un autista terribile. Ecco come l'OP si sta generalizzando, non come hai suggerito.
AK

3
Alex, fammi sapere quando qualsiasi piattaforma RDBMS complicata viene spedita senza alcun bug. IIRC la tua riproduzione FK era piuttosto contorta e non era uno scenario comune. Fammi sapere anche se pensi che le società di software non possano migliorare nel tempo, o se ti aspetti una vulnerabilità di tipo slammer in SQL 2012, quindi nella versione successiva e in quella successiva ... a un certo punto tu lasciare andare i racconti di queste vecchie mogli e prendere una piattaforma per conto proprio e non giudicarla da un bug in una versione precedente ...
Aaron Bertrand

7
"Wait for the service pack" è un vecchio mito e FUD
gbn

Risposte:


63

Tutti sono entusiasti di AlwaysOn e ColumnStore, ma molti dei vantaggi di SQL Server 2012 non sono esclusivi delle edizioni di fascia alta. Non voglio sembrare un portavoce, ma ho tenuto molte presentazioni su SQL Server 2012 e penso che abbia molto da offrire a qualunque edizione si adatti a te.

  • Database parzialmente contenuti che consentono di spostare database tra server o ambienti con un numero minore di catene (in particolare accessi a livello di server e dipendenze delle regole di confronto dei server - le versioni future gestiranno elementi più spinosi come server collegati e processi dell'agente).

  • Management Studio è ora uno strumento molto migliore, allineato con Visual Studio. IntelliSense è migliore e molte altre funzioni semplificano la modifica. Ora ovviamente puoi avere 2008 R2 sul tuo server e utilizzare la versione 2012 di SSMS, ma non sono sicuro di come funzioni in termini di licenze e alcuni negozi non vogliono versioni miste (preferisco avere gli strumenti più recenti su la mia workstation anche per gestire server di livello inferiore). Ho scritto un blog sui cambiamenti all'inizio, quando c'erano ancora dei bug, quindi per favore ignora gli aspetti negativi poiché la maggior parte o tutti sono stati corretti a partire da RTM. Rabbrividisco ora quando devo usare una versione precedente di SSMS.

  • I miglioramenti dei metadati consentono di ispezionare set di risultati di oggetti e query ad hoc, nonché di modellare meglio l'output delle query.

  • I ruoli del server personalizzato consentono di definire un insieme molto più granulare di autorizzazioni per gli utenti a livello di ruolo invece di concedere / revocare uno per uno o semplicemente cedere alla complessità e dare loro l'amministratore di sistema.

  • FileTable ti consente di gestire una cartella come una tabella di documenti, ma ha comunque il controllo esterno sui contenuti (quindi immagina di poterlo fare con T-SQL e immagina quanto sarebbe difficile fare in cmd o PowerShell:) UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';.. . pensa FileStream incontra WinFS e ottiene un po 'di usabilità per l'avvio.

  • I miglioramenti di T-SQL consentono di fare molte cose che erano un problema nelle versioni precedenti:

    • THROW (pensalo come un rilancio)
    • OFFSET/FETCH (paging più semplice, standard ANSI)
    • SEQUENCE (meccanismo di IDENTITÀ centralizzato, come in Oracle)
    • Miglioramenti per finestre / cornici (varie cose qui, come le prestazioni dei totali di corsa eccezionali)
    • IIF()/ CHOOSE()/ CONCAT()/EOMONTH()
    • Costruttori data / ora (ad es. DATETIMEFROMPARTS) Simili a quelli DateSerialin VB
    • PARSE()/ FORMAT()- come le loro controparti .NET
    • TRY_CONVERT()/ TRY_PARSE()- restituisce NULLif CONVERT/ PARSEfail
  • Extended Events ha un'interfaccia utente migliorata per la configurazione / visualizzazione e infine copre completamente la funzionalità di traccia / audit (incluso il monitoraggio della causalità molto migliore).

  • Molti nuovi DMV , procedure di sistema e miglioramenti di ShowPlan per la diagnostica e la risoluzione dei problemi delle prestazioni. Dai anche un'occhiata a ciò che CSS chiama " The Black Box Recorder ".

  • Server Core consente di eseguire su un server minimale senza tutti i componenti dell'interfaccia utente (una superficie ridotta significa che è più sicura e riduce la manutenzione poiché meno parti del sistema operativo sono soggette a Windows Update).

  • La ricerca full-text ottiene alcuni importanti miglioramenti delle prestazioni sottostanti, così come la ricerca semantica (pensa alle parole chiave) e la prossimità / NEAR personalizzabile.

  • AWE non è più supportato , il che significa che la tua istanza di SQL Server su x86 con 32 GB di RAM sarà in grado di utilizzare solo 4 GB, quindi avrai finalmente la motivazione per scendere dal tuo vecchio hardware a 32 bit.


Ri: il commento su PowerShell, è ancora piuttosto semplice: gci c:\users | where-object {$_.Author = 'Bob' -and $_.creationdate -lt '1/1/2010'} | %{$_.Readonly = 1}o qualcosa di simile - ma non così semplice e leggibile come l'opzione del 2012!
JNK

3
La cosa grandiosa di PS è che puoi fare qualsiasi cosa (quasi) in una riga. La cosa brutta è che è difficile leggere quella riga :)
JNK

1
È SSMS 2012 che molto meglio ??
Thomas Stringer,

5
Sì, lo adoro. Dovrei fare un altro post sul blog a riguardo. Alcuni punti salienti: i frammenti sono fantastici, IntelliSense è molto meglio, l'editing della regione è molto potente, la striscia di schede è ottima per il multi-monitor e lo zoom è incorporato.
Aaron Bertrand

3
Potrei anche riassumere quel proiettile come: "x86 farà schifo anche più di quanto non faccia già".
Aaron Bertrand

14

Di seguito sono riportati solo alcuni esempi riguardanti "prove effettive a favore o contro l'affidabilità nella prima versione di qualsiasi nuova versione", come richiesto. Questo non vuole essere un'analisi completa, ma piuttosto un suggerimento su ciò che potresti voler ricercare.

È possibile consultare Google "Elenco dei problemi risolti da SQL Server 2008 Service Pack 1" e "Elenco dei problemi risolti da SQL Server 2008 Service Pack 3" sul sito Web MSDN. Confronta il numero e la gravità dei problemi in entrambi gli elenchi. IMO il primo elenco è più lungo e contiene più elementi che potrebbero rovinarmi la giornata, come:

  • Messaggio di errore quando ci si connette a un'istanza denominata di SQL Server su un computer client che esegue Windows Vista o Windows Server 2008
  • Log Reader Agent salta alcune transazioni quando Log Reader Agent viene eseguito per replicare le transazioni
  • Messaggio di errore quando si esegue una query che comporta un'operazione di join esterno in SQL Server 2008
  • Messaggio di errore quando si esegue un aggiornamento o un'operazione di eliminazione su una tabella che non ha un indice cluster creato in SQL Server 2008
  • Una query che utilizza parametri e l'opzione RECOMPILE restituisce risultati errati quando si esegue la query in più connessioni contemporaneamente in SQL Server 2008

Analizziamo un altro livello e consideriamo un solo comando, il MERGE. È stato rilasciato come parte di SQL 2008 con diversi problemi, descritti nei seguenti collegamenti:

In quanto tale, al momento della versione originale di SQL 2008, ho deciso di non utilizzare MERGE. Sto usando molto MERGE ora, nel 2008 R2, e penso che sia davvero una grande funzionalità.

Modifica: ecco l'elenco dei difetti in SQL 2012 che sono stati corretti di recente . Spero che sia d'aiuto.

Un'altra modifica: ho scelto MERGE per un'analisi più dettagliata, perché è un miglioramento molto importante. In effetti, è un passo importante per mettersi al passo con Oracle e migliora la nostra produttività. Pertanto, MERGE è stato commercializzato molto al momento del rilascio di SQL 2008. Eppure non era completamente pronto per l'uso in seri sistemi di produzione quando è stato originariamente rilasciato, e non c'era modo semplice per conoscerlo dalle presentazioni / articoli / post di blog e simili.

Allo stesso modo, l'isolamento dello snapshot è una nuova fantastica funzionalità che funziona, ma il richiamo degli UDF scalari nei vincoli CHECK non funziona in tutti i casi e come tale non dovrebbe essere usato nella produzione quando abbiamo bisogno dell'integrità dei dati. Tuttavia, entrambe le nuove funzionalità sono state consigliate nelle presentazioni "Novità di SQL xxxx", nonché in libri, articoli, ecc. E con entusiasmo simile.

Dobbiamo stare molto attenti con le nuove funzionalità - non tutte saranno utili / affidabili / performanti.


Ho visto l'elenco. Non ho percepito nessuno come uno spettacolo, e quasi tutte le questioni menzionate riguardano sia il 2008 R2 che il 2012.
Aaron Bertrand

1
Ecco un altro potenziale MERGEbug che causa deadlock.
Nick Chammas,

@NickChammas sì, giusto, grazie per averlo menzionato. Stiamo usando sp_getapplock per aggirare.
AK,

10

Un punto che non è stato menzionato qui è completamente irrilevante per il set di funzionalità. Se stai eseguendo una nuova build, puoi rimandare un aggiornamento del database per un po 'più a lungo, in modo da risparmiare sui costi di migrazione.

Per un progetto greenfield hai un po 'di respiro per aggirare i bug e risolverli con il venditore se si presentano, quindi non è un processo completamente incontrollato. Sono stato coinvolto in uno dei primi progetti di data warehouse su SQL Server 2005 proprio come è andato a RTM e ce ne siamo andati.

Se il set di funzionalità di 2008R2 farà ciò che desideri, la decisione è limitata al rischio di bug / soluzioni alternative rispetto al valore di posticipare la necessità di aggiornare e salvare un ciclo di aggiornamento.


6

Quando acquisti nuovi, la scelta è molto diversa rispetto a quando stai valutando l'aggiornamento. Comprando nuovo, credo che dovresti sempre comprare la versione più recente che puoi ottenere. La versione 2008 non sarà più supportata molto prima della versione 2012. Meglio ricominciare da capo con l'ultimo perché utilizzerai questo backend per molto tempo.

Per quanto riguarda la necessità del primo service pack, uscirà prima che tu lo sappia e dato che stai facendo un nuovo sviluppo, i problemi che risolverà probabilmente non ti influenzeranno tanto quanto dovrebbe affrontare un database legacy con milioni di record.

Ora se stai solo ottenendo un nuovo server ma inserendo un vecchio database su di esso, allora la domanda diventa da che cosa stai aggiornando? Se il database è già un database del 2008, sarà significativamente meno rischioso utilizzare la stessa versione. Se si sta eseguendo l'aggiornamento, verificare se è possibile eseguire l'aggiornamento direttamente al 2012 dalla propria versione.


Non c'è aggiornamento. Questa è una nuova app sul nuovo hardware.
usr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.