Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Keunggulan Kinerja SQL Server 2016 Enterprise Edition

Pada tanggal 16 November 2016, Microsoft mengumumkan beberapa perubahan yang sangat signifikan untuk SQL Server 2016 Edisi Standar, yang diimplementasikan di SQL Server 2016 Paket Layanan 1 (Build 13.0.4001.0). Banyak fitur terkait kemampuan program yang sangat berguna yang sebelumnya hanya tersedia di Edisi Perusahaan, sekarang akan tersedia di Edisi Standar (dan juga di Edisi Web dan bahkan Edisi Ekspres).

Setelah Anda memiliki aplikasi database menggunakan SQL Server 2016 Standard Edition Service Pack 1 (atau bahkan edisi yang lebih rendah), Anda dapat melakukan upgrade edisi ke Enterprise Edition untuk mendapatkan skalabilitas dan kinerja yang lebih besar, dengan memanfaatkan batas lisensi yang lebih tinggi untuk soket , core, dan memori di Enterprise Edition, seperti yang dijelaskan di sini.

Anda juga akan mendapatkan banyak manfaat kinerja intrinsik lainnya yang ada di Edisi Enterprise, bersama dengan beberapa peningkatan pengelolaan yang membuat hidup Anda jauh lebih mudah sebagai DBA.

Indeks Toko Kolom

Jika Anda menggunakan indeks Columnstore, Anda mendapatkan manfaat kinerja berikut secara otomatis, saat Anda menggunakan Edisi Perusahaan:

  • Penekanan Agregat: Fitur kinerja ini sering kali memberikan peningkatan kinerja kueri 2X-4X dengan mendorong agregat yang memenuhi syarat ke node SCAN, yang mengurangi jumlah baris yang keluar dari iterator tersebut.
  • Pembuatan/Pembuatan Ulang Indeks: Edisi Perusahaan dapat membangun/membangun kembali indeks columnstore dengan beberapa inti prosesor, sedangkan Edisi Standar hanya menggunakan satu inti prosesor. Ini memiliki efek yang cukup signifikan pada waktu yang telah berlalu untuk operasi ini, tergantung pada perangkat keras Anda.
  • Agregat Lokal: Edisi Perusahaan dapat menggunakan agregasi lokal untuk memfilter jumlah baris yang keluar dari node SCAN, mengurangi jumlah pekerjaan yang perlu dilakukan oleh node kueri berikutnya. Anda dapat mengonfirmasi ini dengan mencari atribut “ActualLocallyAggregatedRows” dalam XML rencana eksekusi untuk kueri.
  • Pengoptimalan Single Instruction Multiple Data (SIMD): Fitur ini menggunakan satu set instruksi perangkat keras yang mampu memproses array data dalam satu instruksi, secara dramatis mempercepat operasi agregat. Instruksi perangkat keras ini ada di semua prosesor modern (yang memiliki dukungan AVX), tetapi hanya digunakan oleh Enterprise Edition.
  • Penekanan Predikat String: Fitur kinerja ini dapat meningkatkan kinerja kueri menggunakan predikat pada kolom string dengan mendorong predikat ini ke node SCAN. Hal ini dapat sangat mengurangi jumlah pekerjaan yang perlu dilakukan oleh node berikutnya.
  • Derajat Paralelisme: Kueri mode batch dibatasi hingga MAXDOP =2 pada Edisi Standar. Edisi Perusahaan dapat menggunakan semua inti yang ada untuk instans. Ini bisa sangat signifikan pada kueri yang lebih besar pada perangkat keras server modern yang khas.
  • Batas memori: Kumpulan objek Columnstore dibatasi hingga 32 GB per instans pada Edisi Standar. Edisi Perusahaan tidak memiliki batasan memori untuk kumpulan objek Columnstore.

Untuk menguji pernyataan kinerja ini, saya menjalankan beberapa tes yang cukup sederhana pada database Microsoft ContosoRetailDW di workstation Intel Core i7-6700K saya. Saya telah menginstal dua contoh SQL Server 2016 SP1 bernama, satu menggunakan Edisi Standar, dan yang lainnya menggunakan Edisi Pengembang (yang setara dengan Edisi Perusahaan).

Semua konfigurasi dan properti tingkat instans dan tingkat database identik antara dua instans, dan lokasi file database pengguna dan tempdb berada di direktori terpisah pada perangkat penyimpanan flash terpisah yang sama untuk setiap instans. Tingkat kompatibilitas database diubah menjadi 130 dalam kedua kasus, dan konfigurasi dan perangkat keras Windows yang mendasarinya sama untuk kedua instans. Satu-satunya perbedaan di sini adalah Edisi setiap instance.

Pengujian pertama adalah kueri sederhana (diadaptasi dari Niko Neugebauer) yang memungkinkan SQL Server 2016 menggunakan agregat pushdown pada tabel FactOnlineSales. Hasilnya ditunjukkan pada Tabel 1.

Edisi Waktu yang Berlalu (md)
Edisi Standar 30
Edisi Pengembang 1
Perbedaan Waktu 29
% Peningkatan 96,7%

Tabel 1:Perbandingan Pushdown Agregat

Pengujian berikutnya adalah menentukan waktu yang diperlukan untuk membangun indeks penyimpanan kolom tergugus pada tabel FactOnlineSales 12,6 juta baris. Hasilnya ditunjukkan pada Tabel 2.

Edisi Waktu yang Berlalu (md)
Edisi Standar 42.197
Edisi Pengembang 14.384
Perbedaan Waktu 27.813
% Peningkatan 65,9%

Tabel 2:Membangun Perbandingan Indeks Toko Kolom Tergugus

Pengujian berikutnya adalah menentukan waktu yang diperlukan untuk membangun kembali indeks penyimpanan kolom tergugus pada tabel FactOnlineSales yang sama. Hasilnya ditunjukkan pada Tabel 3.

Edisi Waktu yang Berlalu (md)
Edisi Standar 33.105
Edisi Pengembang 11.460
Perbedaan Waktu 21.645
% Peningkatan 65,4%

Tabel 3:Membangun Kembali Perbandingan Indeks Toko Kolom Tergugus

Pengujian berikutnya adalah kueri sederhana lainnya yang memungkinkan SQL Server 2016 menggunakan agregasi lokal pada tabel FactOnlineSales. Hasilnya ditunjukkan pada Tabel 4.

Edisi Waktu yang Berlalu (md)
Edisi Standar 122
Edisi Pengembang 83
Perbedaan Waktu 39
% Peningkatan 32,0%

Tabel 4:Perbandingan Agregasi Lokal

Pengujian berikutnya adalah kueri sederhana lainnya yang memungkinkan SQL Server 2016 menggunakan penekanan predikat string pada tabel FactOnlineSales dan DimPromotion. Hasilnya ditunjukkan pada Tabel 5.

Edisi Waktu yang Berlalu (md)
Edisi Standar 2,683
Edisi Pengembang 1.221
Perbedaan Waktu 1.466
% Peningkatan 54,6%

Tabel 5:Perbandingan Pushdown Predikat String

Ini hanyalah beberapa contoh sederhana dari keunggulan kinerja bawaan untuk indeks Columnstore di SQL Server 2016 Enterprise Edition dibandingkan dengan SQL Server 2016 Standard Edition pada perangkat keras yang sama. Jika Anda ingin benar-benar mendalami indeks Columnstore (yang bisa menjadi fitur yang sangat efektif untuk beberapa beban kerja), Anda harus mem-bookmark dan membaca rangkaian panjang posting Niko Neugebauer di columnstore.net.

Kinerja DBCC CHECKDB

Peningkatan kinerja pengelolaan lainnya yang hadir pada SQL Server 2016 Enterprise Edition adalah kinerja DBCC CHECKDB. Pada Edisi Standar, DBCC CHECKDB hanya menggunakan satu inti prosesor, sementara itu dapat menggunakan semua inti yang tersedia di Edisi Perusahaan. Perilaku ini tidak berubah dari versi SQL Server sebelumnya. SQL Server 2016 memungkinkan Anda membatasi jumlah inti yang dapat digunakan DBCC CHECKDB dengan opsi WITH (MAXDOP =x) baru.

Menjalankan DBCC CHECKDB dengan opsi WITH PHYSICAL_ONLY pada database yang agak lebih besar (sekitar 38GB) yang saya miliki, menghasilkan hasil yang ditunjukkan pada Tabel 6.

Edisi Waktu yang Berlalu (md)
Edisi Standar 58,492
Edisi Pengembang 24.897
Perbedaan Waktu 33.595
% Peningkatan 57,4%

Tabel 6:DBCC CHECKDB DENGAN PERBANDINGAN PHYSICAL_ONLY

Menjalankan DBCC CHECKDB standar pada database yang sama menghasilkan hasil yang ditunjukkan pada Tabel 7.

Edisi Waktu yang Berlalu (md)
Edisi Standar 435.039
Edisi Pengembang 119.767
Perbedaan Waktu 315.272
% Peningkatan 72,5%

Tabel 7:Perbandingan DBCC CHECKDB

Faktor yang sangat penting dalam kinerja DBCC CHECKDB adalah kinerja baca berurutan dari semua LUN tempat file data database Anda berada. Anda dapat dengan mudah memeriksa ini dengan menjalankan perintah CADANGAN DATABASE ke perangkat NUL (pastikan untuk menggunakan opsi COPY_ONLY dan NO_COMPRESSION). Ini akan menunjukkan kepada Anda kinerja membaca berurutan yang efektif, seperti yang ditunjukkan dalam contoh ini dari workstation saya:

CADANGAN DATABASE berhasil memproses 5048514 halaman dalam 16,115 detik (2447,502 MB/dtk).

Ingatlah bahwa semua pengujian ini dilakukan pada satu prosesor desktop quad-core. Server multi-soket dengan lebih banyak inti prosesor total akan menunjukkan lebih banyak peningkatan kinerja di banyak pengujian ini.

Maksud dari semua ini adalah untuk menunjukkan beberapa contoh nyata dari peningkatan kinerja yang dapat Anda lihat, cukup dengan memutakhirkan dari SQL Server 2016 Standard Edition SP1 ke SQL Server 2016 Enterprise Edition SP1, pada perangkat keras yang sama, tanpa mengubah basis data atau aplikasi . Daftar ini sama sekali tidak lengkap, karena ada banyak manfaat lainnya juga.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Waktu Query SQL Server habis tergantung pada Where Clause

  2. Sisipkan SQL Server jika tidak ada praktik terbaik

  3. JSON_VALUE() Contoh di SQL Server (T-SQL)

  4. Pernyataan ALTER TABLE bertentangan dengan batasan FOREIGN KEY

  5. Pemroses Perubahan Basis Data SQL Server C#