Ada banyak alasan untuk mempertimbangkan peningkatan ke SQL Server 2016. Sebagian besar waktu, alasan-alasan ini bervariasi tergantung pada versi SQL Server yang satu berasal. Ini tidak akan menjadi daftar lengkap, tetapi saya akan memberikan beberapa alasan yang muncul di pikiran. Termasuk satu alasan yang sangat besar yang baru saja kita pelajari dengan rilis SQL Server 2016 SP1 pada bulan November 2016. Menantikan untuk melihat jawaban lain untuk ekspansi atau fitur yang saya lewatkan.
Alasan Besar: Banyak Fitur Tersedia dalam Edisi Standar Sekarang
Pada 16 November 2016 Microsoft mengumumkan rilis Paket Layanan 1 untuk SQL Server 2016. Seiring dengan pengumuman ini, mereka juga mengumumkan bahwa banyak fitur yang sebelumnya disediakan untuk pelanggan Edisi Perusahaan akan tersedia di semua edisi SQL Server - Standard, Express (dengan beberapa pengecualian), Web selain Enterprise Edition.
Ini harus menjadi alasan yang sangat kuat untuk melakukan upgrade untuk Vendor Perangkat Lunak yang mengembangkan dan menjual perangkat lunak yang memiliki backend SQL Server - banyak fitur sekarang dapat tersedia untuk pelanggan mereka terlepas dari edisi SQL Server berlisensi mereka. Ini juga menarik bagi perusahaan di sektor-sektor yang harus mempertahankan audit atau peningkatan keamanan lainnya yang telah ditambahkan ke produk dari waktu ke waktu.
Menurut pendapat saya, dalam lebih dari 17 tahun bekerja dengan SQL Server ini membuat SQL Server 2016 SP1 sangat mungkin merupakan upgrade yang paling menarik sejak saya mulai bekerja dengan SQL Server di versi 6.5. (Jangan salah paham, 2000, 2005 dan 2012 juga memiliki pro untuk waktu mereka!)
Lihat daftar di bawah ini, tetapi hanya sebagai contoh cepat dari beberapa fitur yang sekarang dapat Anda gunakan dalam Edisi Standar, Anda memiliki ini: Kompresi, Ubah Pengambilan Data, Audit Berbutir Halus, Keamanan Tingkat Baris, Selalu Dienkripsi, Partisi, Basis Data Snapshots, OLTP Dalam Memori, Columnstore.
Alasan Khusus Untuk SQL Server 2016 Fitur Baru
Saya mencoba untuk menjaga alasan di sini di bagian ini untuk fitur yang diperkenalkan di SQL Server 2016 saja. Saya juga hanya menjelaskan peningkatan mesin inti dalam jawaban ini, bukan pelaporan, analisis, integrasi data, dll.
Terkait Keamanan
Keamanan Tingkat Baris - Saya memiliki banyak klien yang ingin dapat menerapkan keamanan berdasarkan baris demi baris. "Pengguna x dapat melihat data pada baris ini, tetapi tidak pada baris itu". Banyak dari klien tersebut telah membuat fungsi dan / atau struktur berbasis tampilan yang rumit untuk mencapai hal ini. Di SQL Server 2016 terdapat predikat bawaan dan kebijakan keamanan yang tersedia untuk membantu di sini. Anda dapat membaca lebih lanjut tentang RLS di sini .
Dynamic Data Masking - Yang ini kedengarannya bagus di atas kertas, tapi saya ingin tahu apakah itu akan terbukti kurang bermanfaat daripada dua perubahan lainnya di bidang keamanan. Pada dasarnya, Anda dapat secara dinamis menutupi, atau mengaburkan, data pada waktu kueri berdasarkan izin dari pemanggil. Jumlah data yang dikaburkan adalah sesuatu yang dapat diprogram. Misalnya, dalam contoh yang digunakan Microsoft, Anda dapat menutupi semua kecuali empat digit terakhir dari nomor Kartu Kredit sehingga penelepon di call center dapat memverifikasi empat digit terakhir itu. Anda dapat membaca lebih lanjut tentang itu di sini .
Selalu Dienkripsi - Mungkin Anda pernah mendengar tentang beberapa kekurangan atau masalah Enkripsi Data Transparan. Mungkin Anda tidak ingin menggunakan TDE karena takut bahwa seseorang dengan akses SA pasti dapat mendekripsi jika mereka mau. Always Encrypted dirilis sebagai fitur yang menempatkan kemampuan dekripsi / enkripsi di tangan pemanggilan aplikasi ke SQL Server. Data yang diam di SQL Server dienkripsi. Data dalam penerbangan menuju SQL Server dienkripsi sebagai hasil dari pendekatan ini juga. Anda dapat membaca lebih lanjut tentang Selalu Dienkripsi di sini .
Fitur HA / DR
Beberapa fitur muncul di sini. Salah satunya adalah kemampuan untuk menggunakan Grup Ketersediaan Selalu Di dalam SQL Server Standar - Grup Ketersediaan Dasar. Ini diperlukan karena Mirroring sudah usang dan tidak memiliki pengganti. Fungsionalitas terbatas pada jumlah replika dan pendekatan untuk sinkronisasi. Anda dapat membaca lebih lanjut di sini .
Itu bukan satu-satunya perubahan ke Grup Ketersediaan (yang, omong-omong, diperkenalkan di SQL Server 2012). Ada juga beberapa perubahan lain (Anda dapat melihat daftar lengkap dengan tautan ke perubahan lain di sini ):
- Akun Layanan yang Dikelola Grup didukung.
- Transaksi Terdistribusi didukung (dengan beberapa peringatan ).
- Koneksi baca maksud dapat dimuat seimbang di antara replika hanya baca.
- Tiga replika dapat terlibat dalam kegagalan otomatis sekarang.
- Basis data terenkripsi kini dapat berpartisipasi dalam Grup Ketersediaan Selalu Aktif.
- Peningkatan Kinerja - bagian dari tema SQL Server 2016 adalah "hanya lebih cepat" - itulah putaran Pemasaran Microsoft, tetapi terbukti di pasar. Beberapa perbaikan dilakukan untuk kinerja Grup Ketersediaan.
Installer Memperbaiki Beberapa Kesalahan Umum
Penginstal SQL Server yang dimulai pada SQL Server 2016 memperbaiki beberapa kesalahan umum yang dibuat ketika mengkonfigurasi TempDB. Setup GUI memandu Anda melalui konfigurasi praktik terbaik sekarang.
Toko Permintaan
Favorit di antara SQL Server MVP dan tuner. Fitur ini adalah alat untuk memberi Anda wawasan tentang bagaimana pertanyaan dieksekusi oleh mesin. Sangat berguna dalam melacak masalah kinerja yang disebabkan oleh perubahan dalam rencana kueri dari waktu ke waktu. Ini bisa menjadi alat untuk melihat, tetapi juga alat untuk memperbaikinya. Membantu menyederhanakan beberapa konsep penyesuaian kinerja. Anda dapat membaca lebih lanjut tentang itu di sini .
Tabel Temporal
Saya sering melihat kebutuhan untuk mengajukan pertanyaan seperti "Seperti apa data ini pada tanggal ini dan itu". Tabel Temporal adalah salah satu metode untuk melakukan itu. Pasti memiliki beberapa use case pergudangan. Lihat lebih lanjut di sini .
Perbaikan Kolom
Tiga peningkatan besar bagi saya di sini di antara beberapa lainnya. Salah satunya adalah indeks kolomstore nonclustered yang dapat diperbarui. SQL Server 2014 memberi kami clustered yang dapat diperbarui, tetapi sekarang kami telah memutakhirkan nonclusted. SQL Server 2016 juga memungkinkan indeks columnstore pada tabel OLTP In-Memory. Dan kemampuan untuk menempatkan indeks B-tree tradisional nonclustered pada indeks columnstore cluster sekarang ada di SQL Server 2016.
Peningkatan Fitur Tambahan di OLTP Dalam Memori
Beberapa fitur yang tidak didukung di dalam tabel In-Memory atau dalam prosedur asli yang dikompilasi sekarang tersedia. Beberapa tambahan (tetapi lihat artikel ini untuk lebih lanjut): Kendala UNIK, Periksa Kendala, klausa OUTPUT dalam DML, Gabung Luar, Subquery dalam daftar pilih, PILIH PERBEDAAN, UNION / UNION ALL, dan banyak lagi.
Peningkatan Kinerja Umum
SQL Server 2014 membuat beberapa peningkatan kinerja di beberapa bidang utama seperti setiap rilis. SQL Server 2016 membuat peningkatan kunci tambahan di seluruh produk. Itu termasuk menghilangkan bagi banyak pelanggan beberapa rasa sakit kadang-kadang ditemui ketika memutakhirkan ke SQL Server 2014 karena perubahan penduga kardinalitas. Beberapa perubahan atas dan ke bawah mesin dilakukan untuk meningkatkan kinerja sehari-hari. Tim CSS Microsoft telah membuat blog tentang ini di blog mereka. Anda bisa mencari "SQL Server 2016 hanya berjalan lebih cepat". Contoh posting blog untuk seri ini ada di sini .
Saya telah melihat ini dimainkan di klien yang telah meningkatkan, dan berharap untuk melihatnya lebih dan lebih.
Beberapa kontra
Jelas ada kontra untuk setiap upgrade. Bisa jadi karena saya melakukan ini untuk mencari nafkah sebagai konsultan, tetapi saya pikir kontra semua sangat dikelola dan benar-benar hanya menganggap mereka "menghitung biaya terlebih dahulu" item yang harus diperhatikan dan dikelola.
Peningkatan Secara Umum - Secara umum, peningkatan berarti Anda memperkenalkan fungsionalitas baru. Anda harus dapat mengujinya. Antara versi SQL Server berbagai fitur sudah usang. Ini tidak berarti mereka langsung pergi tetapi itu berarti mereka bisa dalam rilis mendatang, seringkali tiga versi kemudian. Misalnya tipe data TEXT, atau melakukan gabungan luar di mana klausa dengan *=
atau=*
sintaksis tidak didukung jika Anda berasal dari database yang berjalan dalam mode kompatibilitas SQL Server 2000. Berbicara tentang mode kompatibilitas - mereka hanya kembali tiga versi juga. Jadi jika Anda memiliki database yang berjalan dalam mode kompatibilitas 80 (SQL Server 2000) atau 90 (SQL Server 2005), mereka tidak dapat masuk ke SQL Server 2016 seperti itu. Jadi, jika Anda telah menghindari melakukan tes itu dan menyelinap tingkat kompatibilitas, saatnya untuk perhitungan.
Lagi. Itu hal yang mudah. Ada alat di luar sana untuk membantu menangkap dan menguji data untuk melihat apa yang rusak. Ada penghitung perfmon yang dapat membantu mencari fitur usang.
Perizinan - Dua hal di sini:
- Berbasis Core - jika Anda terbiasa dengan persyaratan lisensi SQL Server 2012, lisensi CPU hanya itu - lisensi CPU. Sejak SQL Server 2012, lisensi berbasis CPU telah didasarkan pada inti. Jadi ada periode penyesuaian di sana. Juga Perusahaan untuk lisensi baru (dengan beberapa pengecualian yang dibuat ketika 2012 pertama kali diluncurkan) harusdilisensikan di tingkat inti - tidak ada server + CAL untuk perusahaan. Garis perak yang bersinar pada cloud ini di sini adalah apa yang saya katakan tentang SP1 yang memungkinkan fitur-fitur Enterprise dalam SKU non-perusahaan. Jika Anda membutuhkan lebih dari 128GB RAM. Jika Anda memerlukan peningkatan kinerja pemindaian lanjutan. Jika Anda membutuhkan lebih dari 32GB RAM untuk kolomstore atau In-Memory maka Anda sedang melihat Enterprise. Jika tidak? Dan Anda tidak perlu membangun kembali indeks online? Standar mungkin hanya untuk Anda, dan mungkin lebih untuk Anda sekarang dengan fitur-fitur yang baru tersedia untuk Anda.
- Jaminan Perangkat Lunak (SA) - jika Anda tidak membeli SA, Anda harus membeli yang baru. Jadi, jika Anda menjalankan SQL Server 2005 dan Anda khawatir bahwa Anda berada di luar dukungan mainstream, tidak terlalu jauh dari akhir dukungan yang diperluas dan berharap Anda memiliki fitur yang sekarang tersedia, Anda tidak bisa hanya memutakhirkan seperti Paket Layanan. Jika Anda tidak pernah membeli SA, maka peningkatan Anda adalah pembelian baru. Tidak apa-apa, itu sangat berharga. Tetapi itu adalah sesuatu yang harus menekan anggaran.
Ringkasan
Ada banyak alasan lagi, seperti dukungan JSON, pengenalan R, dll. Tetapi ini hanyalah beberapa alasan mengapa saya mempertimbangkan untuk meningkatkan. Item yang paling penting, sekali lagi, adalah kemampuan untuk menggunakan banyak fitur yang sebelumnya hanya untuk Edisi Perusahaan di Standar, atau bahkan Express. Saya telah melihat kisah sukses besar di antara klien saya dan saya berharap untuk melihat lebih banyak.
Dan jika Anda menggunakan SQL Server 2005 atau 2008, daftarnya bahkan lebih besar. Grup Ketersediaan AlwaysOn keluar pada 2012, Indeks Kolom di SQL Server 2012, OLTP Dalam Memori di SQL Server 2014, dll.
Belum lagi jika Anda masih menggunakan SQL Server 2005 atau 2008, Anda berada di luar dukungan mainstream.