Apa alasan bisnis objektif lebih memilih SQL Server 2012 lebih dari 2008 R2?

50

Perusahaan saya menghadapi keputusan apakah akan membeli SQL Server 2012 Denali atau SQL Server 2008 R2 untuk server database baru. Saya mencari alasan obyektif untuk memilih satu dari yang lain.

Persyaratan kami:

  • Edisi standar (untuk alasan keuangan dan kurangnya kebutuhan untuk fitur perusahaan)
  • OLTP workload (ini berarti kita tidak memerlukan fungsi windowing dan indeks kolom store yang baru)
  • Ukuran basis data 10-100 GB
  • Tidak diperlukan fitur intelijen bisnis. Hanya mesin relasional yang diperlukan
  • Mirroring Basis Data Sinkron

Saat ini, alasan-alasan berikut diketahui oleh saya:

SQL Server 2012 Denali

  • Versi terbaru tersedia

SQL Server 2008 R2

  • Teknologi terbukti

Sepertinya saya tidak dapat menemukan banyak alasan teknis untuk lebih menyukai yang satu daripada yang lain. Pada dasarnya, turun ke memilih teknologi terbukti yang berjalan dengan sukses vs versi terbaru dan terbaik yang tersedia.

Apa alasan obyektif untuk membuat keputusan?

usr
sumber
5
Saya pikir selama perubahan lisensi per-inti tidak mengubah anggaran Anda, dan Anda tidak perlu khawatir tentang keterlambatan vendor, menggunakan SQL Server 2012 adalah no-brainer. Ini didasarkan pada teknologi yang telah terbukti sehingga tidak dapat dianggap sebagai penulisan ulang lengkap dan / atau V1.
Aaron Bertrand
3
Berdasarkan pengalaman saya dengan tiga rilis sebelumnya, saya akan menunggu setidaknya satu paket layanan. Dengan 2008 saya menunggu sampai R2, dan masih memiliki cacat. Hanya dari atas saya punya: pada 2008 R2 saya dapat memotong batasan FK tepercaya dan menyisipkan baris yatim, saya dapat menjalankan skrip di SSMS dan sebagian dijalankan terhadap database yang salah.
AK
3
@ AaronBertrand Saya pikir analogi Anda salah. Jika Anda melihat seseorang dan orang yang sama mengirim pesan dan mengemudi lebih dari satu kali, beberapa kali, masuk akal untuk menyimpulkan bahwa orang itu dalam pengemudi yang mengerikan. Beginilah OP digeneralisasikan, tidak seperti yang Anda sarankan.
AK
3
Alex, beri tahu saya jika ada platform RDBMS yang rumit dikirimkan tanpa bug. IIRC repro FK Anda cukup berbelit-belit dan bukan skenario umum. Juga beri tahu saya jika Anda berpikir perusahaan perangkat lunak tidak mungkin menjadi lebih baik dari waktu ke waktu, atau jika Anda mengharapkan kerentanan tipe slammer di SQL 2012, kemudian dalam versi setelah itu, dan versi setelah itu ... pada titik tertentu Anda harus melepaskan kisah para istri tua ini dan mengambil platform sendiri dan tidak menghakimi oleh bug di versi sebelumnya ...
Aaron Bertrand
7
"Tunggu paket layanan" adalah mitos lama dan FUD
gbn

Jawaban:

63

Semua orang bersemangat tentang AlwaysOn dan ColumnStore, tetapi banyak manfaat dari SQL Server 2012 tidak eksklusif untuk edisi high-end. Saya tidak ingin terdengar seperti juru bicara, tetapi saya telah memberikan banyak presentasi tentang SQL Server 2012 dan saya pikir itu memiliki banyak hal untuk ditawarkan pada edisi apa pun yang cocok untuk Anda.

  • Database yang Terkandung Sebagian yang memungkinkan Anda memindahkan basis data antara server atau lingkungan dengan beberapa belenggu yang lebih sedikit (yaitu login tingkat server dan dependensi susunan server - versi mendatang akan menangani item yang lebih sulit seperti server yang ditautkan dan pekerjaan Agen).

  • Management Studio sekarang merupakan alat yang jauh lebih baik, selaras dengan Visual Studio. IntelliSense lebih baik dan sejumlah fitur lain memudahkan pengeditan. Sekarang tentu saja Anda dapat memiliki 2008 R2 di server Anda dan menggunakan versi SSMS 2012, tapi saya tidak yakin bagaimana cara kerjanya lisensi-bijaksana, dan beberapa toko tidak ingin versi campuran (Saya lebih suka memiliki alat terbaru tentang workstation saya bahkan untuk mengelola server downlevel). Saya membuat blog tentang perubahan sejak awal, ketika masih ada bug, jadi abaikan saja yang negatif karena sebagian besar atau semua sudah diperbaiki pada RTM. Saya ngeri sekarang ketika saya harus menggunakan versi SSMS sebelumnya.

  • Peningkatan metadata memungkinkan Anda untuk memeriksa hasil objek dan permintaan ad hoc, dan juga memungkinkan Anda untuk lebih baik membentuk output dari permintaan.

  • Peran Server Kustom memungkinkan Anda untuk menentukan serangkaian izin yang lebih rinci bagi pengguna pada tingkat peran daripada memberikan / mencabut satu per satu, atau hanya menyerah pada kompleksitas dan memberi mereka sysadmin.

  • FileTable memungkinkan Anda mengelola folder seperti tabel dokumen, tetapi masih memiliki kontrol eksternal atas konten (jadi bayangkan bisa melakukan ini dengan T-SQL, dan bayangkan betapa sulitnya melakukannya dalam cmd atau PowerShell:) UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';.. pikir FileStream memenuhi WinFS dan mendapatkan kegunaan untuk boot.

  • Peningkatan T-SQL memungkinkan Anda melakukan banyak hal yang menyusahkan di versi sebelumnya:

    • THROW (anggap itu sebagai kenaikan kembali)
    • OFFSET/FETCH (paging standar ANSI yang lebih sederhana)
    • SEQUENCE (Mekanisme IDENTITAS terpusat, seperti di Oracle)
    • Windowing / Framing perangkat tambahan (berbagai hal di sini, seperti kinerja total berjalan mengagumkan)
    • IIF()/ CHOOSE()/ CONCAT()/EOMONTH()
    • Tanggal / Waktu Konstruktor (misalnya DATETIMEFROMPARTS) mirip dengan DateSerialdi VB
    • PARSE()/ FORMAT()- seperti rekan NET mereka
    • TRY_CONVERT()/ TRY_PARSE()- kembali NULLjika CONVERT/ PARSEgagal
  • Extended Events memiliki UI yang ditingkatkan untuk konfigurasi / tampilan, dan akhirnya sepenuhnya mencakup fungsi penelusuran / audit (termasuk pelacakan hubungan sebab akibat yang jauh lebih baik).

  • Banyak DMV baru , prosedur sistem, dan peningkatan ShowPlan untuk diagnostik dan pemecahan masalah kinerja. Juga lihat apa yang disebut CSS " The Black Box Recorder ."

  • Server Core memungkinkan Anda untuk berjalan di server minimal-telanjang tanpa semua komponen UI (area permukaan yang lebih kecil berarti lebih aman, dan mengurangi pemeliharaan karena lebih sedikit bagian OS yang terkena Pembaruan Windows).

  • Pencarian Teks Lengkap mendapatkan beberapa peningkatan kinerja penting yang mendasarinya, serta pencarian semantik (pikirkan kata kunci) dan proximity / NEAR yang dapat disesuaikan.

  • AWE tidak lagi didukung , artinya instance SQL Server Anda pada x86 dengan 32GB RAM hanya akan dapat menggunakan 4GB - sehingga Anda akhirnya memiliki motivasi untuk melepaskan perangkat keras 32-bit Anda yang lama.

Aaron Bertrand
sumber
Re: the powershell comment, masih cukup sederhana: gci c:\users | where-object {$_.Author = 'Bob' -and $_.creationdate -lt '1/1/2010'} | %{$_.Readonly = 1}atau sesuatu yang serupa - tetapi tidak sesederhana dan mudah dibaca sebagai opsi 2012!
JNK
3
Hal yang hebat tentang PS adalah Anda dapat melakukan apa saja (hampir) dalam satu baris. Yang buruk adalah sulit untuk membaca baris itu :)
JNK
1
Apakah SSMS 2012 yang jauh lebih baik ??
Thomas Stringer
5
Ya aku menyukainya. Saya harus melakukan posting blog lain tentang hal itu. Beberapa cuplikan: cuplikan mengagumkan, IntelliSense jauh lebih baik, pengeditan wilayah sangat kuat, tab strip sangat bagus untuk multi-monitor, dan ada pembesaran di dalamnya.
Aaron Bertrand
3
Saya juga bisa meringkas peluru itu sebagai: "x86 akan menyedot lebih dari yang sudah dilakukannya."
Aaron Bertrand
14

Berikut ini adalah beberapa contoh mengenai "bukti aktual untuk atau terhadap keandalan dalam versi pertama dari setiap rilis baru", seperti yang diminta. Ini tidak dimaksudkan untuk menjadi analisis yang lengkap, tetapi lebih merupakan saran tentang apa yang ingin Anda teliti.

Anda dapat mencari "Daftar masalah yang diperbaiki oleh SQL Server 2008 Paket Layanan 1" dan "Daftar masalah yang diperbaiki oleh SQL Server 2008 Paket Layanan 3" di situs web MSDN. Bandingkan jumlah dan tingkat keparahan masalah di kedua daftar. IMO daftar pertama lebih panjang, dan memiliki lebih banyak item yang dapat merusak hari saya, seperti:

  • Pesan galat ketika Anda terhubung ke instance SQL Server bernama pada komputer klien yang menjalankan Windows Vista atau Windows Server 2008
  • Agen Pembaca Log melewatkan beberapa transaksi ketika Agen Pembaca Log berjalan untuk mereplikasi transaksi
  • Pesan galat saat Anda menjalankan kueri yang melibatkan operasi gabungan luar di SQL Server 2008
  • Pesan galat saat Anda melakukan pembaruan atau operasi penghapusan pada tabel yang tidak memiliki indeks berkerumun yang dibuat di SQL Server 2008
  • Kueri yang menggunakan parameter dan opsi RECOMPILE mengembalikan hasil yang salah ketika Anda menjalankan kueri di beberapa koneksi secara bersamaan di SQL Server 2008

Mari kita telusuri satu level lagi dan pertimbangkan hanya satu perintah, yaitu MERGE. Itu dirilis sebagai bagian dari SQL 2008 dengan beberapa masalah, dijelaskan dalam tautan berikut:

Karena itu, pada saat rilis asli SQL 2008, saya memutuskan untuk tidak menggunakan MERGE. Saya banyak menggunakan MERGE sekarang, pada 2008 R2, dan saya pikir ini adalah fitur yang sangat hebat.

Sunting: di sini adalah daftar kerusakan di SQL 2012 yang baru-baru ini diperbaiki . Semoga ini bisa membantu.

Suntingan lain: Saya telah memilih MERGE untuk analisis yang lebih terperinci, karena ini merupakan peningkatan yang sangat penting. Sebenarnya, ini adalah langkah besar dalam mengejar Oracle, dan itu memang meningkatkan produktivitas kita. Dengan demikian, MERGE telah banyak dipasarkan pada saat rilis SQL 2008. Namun itu tidak sepenuhnya siap untuk digunakan dalam sistem produksi serius ketika awalnya dirilis, dan tidak ada cara mudah untuk mengetahuinya dari presentasi / artikel / posting blog dan semacamnya.

Demikian pula, isolasi snapshot adalah fitur baru yang luar biasa yang hanya berfungsi, tetapi memanggil skalar UDF dalam batasan PERIKSA tidak berfungsi dalam semua kasus dan karenanya tidak boleh digunakan dalam produksi ketika kita membutuhkan integritas data. Namun, kedua fitur baru direkomendasikan dalam presentasi "Apa yang baru dalam SQL xxxx", serta dalam buku, artikel dll, dan dengan antusiasme yang sama.

Kita harus sangat berhati-hati dengan fitur-fitur baru - tidak semuanya akan berguna / dapat diandalkan / performan.

AK
sumber
Saya melihat daftar. Tidak benar-benar menganggap apapun sebagai penghenti pertunjukan, dan hampir semua masalah yang disebutkan memengaruhi 2008 R2 dan 2012.
Aaron Bertrand
1
Berikut bug potensialMERGE lain yang menyebabkan kebuntuan.
Nick Chammas
@NickChammas ya, benar, terima kasih telah menyebutkan ini. Kami menggunakan sp_getapplock untuk berkeliling.
AK
10

Satu hal yang belum disebutkan di sini sama sekali tidak relevan dengan set fitur. Jika Anda melakukan pembangunan baru, Anda dapat menunda pemutakhiran basis data untuk waktu yang cukup lama, jadi ini akan menghemat biaya migrasi.

Untuk proyek greenfield Anda memiliki ruang bernapas untuk mengatasi bug dan membesarkannya dengan vendor jika mereka muncul, jadi itu bukan proses yang sepenuhnya tidak terkendali. Saya terlibat dalam salah satu proyek data warehouse pertama di SQL Server 2005 hanya ketika ia pergi ke RTM dan kami lolos begitu saja.

Jika rangkaian fitur 2008R2 akan melakukan apa yang Anda inginkan maka keputusannya ada pada risiko bug / penyelesaian masalah vs nilai menunda perlunya meningkatkan dan menyimpan siklus pembaruan.

ConcernedOfTunbridgeWells
sumber
6

Ketika Anda membeli baru, pilihannya jauh berbeda dari ketika Anda mempertimbangkan untuk meningkatkan. Membeli baru itu adalah keyakinan saya bahwa Anda harus selalu membeli versi terbaru yang bisa Anda dapatkan. Versi 2008 tidak akan lagi didukung jauh lebih awal dari versi 2012. Lebih baik memulai yang baru dengan yang terbaru karena Anda akan menggunakan backend ini untuk waktu yang lama.

Mengenai perlunya paket layanan pertama, itu akan keluar sebelum Anda menyadarinya dan karena Anda melakukan pengembangan baru, masalah yang diperbaiki kemungkinan tidak akan memengaruhi Anda sebanyak basis data warisan dengan jutaan catatan yang akan dihadapi.

Sekarang jika Anda hanya mendapatkan server baru tetapi meletakkan database lama di atasnya, maka pertanyaannya menjadi dari mana Anda meningkatkan? Jika database sudah menjadi database 2008, akan jauh lebih sedikit risiko menggunakan versi yang sama. Jika Anda meningkatkan, periksa untuk melihat apakah Anda dapat meningkatkan langsung ke 2012 dari versi Anda.

HLGEM
sumber
Tidak ada peningkatan. Ini adalah aplikasi baru pada perangkat keras baru.
usr