Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ưu điểm về hiệu suất của SQL Server 2016 Enterprise Edition

Vào ngày 16 tháng 11 năm 2016, Microsoft đã công bố một số thay đổi rất quan trọng cho SQL Server 2016 Standard Edition, được triển khai trong SQL Server 2016 Gói Dịch vụ 1 (Bản dựng 13.0.4001.0). Nhiều tính năng rất hữu ích liên quan đến khả năng lập trình mà trước đây chỉ có trong Phiên bản Doanh nghiệp, nay sẽ có sẵn trong Phiên bản Chuẩn (và cả trong Phiên bản Web và thậm chí cả Phiên bản Express).

Sau khi bạn có ứng dụng cơ sở dữ liệu sử dụng SQL Server 2016 Standard Edition Service Pack 1 (hoặc thậm chí là phiên bản thấp hơn), bạn chỉ cần thực hiện nâng cấp phiên bản lên Enterprise Edition để có được khả năng mở rộng và hiệu suất cao hơn, tận dụng các giới hạn cấp phép cao hơn cho ổ cắm , lõi và bộ nhớ trong Enterprise Edition, như chi tiết tại đây.

Bạn cũng sẽ nhận được nhiều lợi ích hiệu suất nội tại khác có trong Enterprise Edition, cùng với nhiều cải tiến về khả năng quản lý giúp cuộc sống của bạn dễ dàng hơn nhiều với tư cách là một DBA.

Chỉ mục Columnstore

Nếu bạn đang sử dụng các chỉ mục Columnstore, bạn sẽ tự động nhận được các lợi ích về hiệu suất sau đây khi bạn sử dụng Phiên bản Doanh nghiệp:

  • Tổng hợp Đẩy xuống: Tính năng hiệu suất này thường mang lại mức tăng hiệu suất truy vấn 2X-4X bằng cách đẩy các tổng hợp đủ điều kiện đến nút SCAN, điều này làm giảm số lượng hàng xuất phát từ trình vòng lặp đó.
  • Tạo / Tạo lại chỉ mục: Phiên bản Doanh nghiệp có thể xây dựng / xây dựng lại các chỉ mục cột lưu trữ với nhiều lõi bộ xử lý, trong khi Phiên bản Tiêu chuẩn chỉ sử dụng một lõi bộ xử lý. Điều này có ảnh hưởng khá lớn đến thời gian trôi qua cho các hoạt động này, tùy thuộc vào phần cứng của bạn.
  • Tổng hợp cục bộ: Phiên bản Doanh nghiệp có thể sử dụng tổng hợp cục bộ để lọc số hàng chuyển ra khỏi nút SCAN, giảm số lượng công việc cần được thực hiện bởi các nút truy vấn tiếp theo. Bạn có thể xác nhận điều này bằng cách tìm thuộc tính “ActualLocallyAggregatedRows” trong XML của kế hoạch thực thi cho truy vấn.
  • Tối ưu hóa nhiều dữ liệu theo lệnh đơn (SIMD): Tính năng này sử dụng một tập hợp các lệnh phần cứng có khả năng xử lý một mảng dữ liệu trong một lệnh duy nhất, tăng tốc đáng kể các hoạt động tổng hợp. Các hướng dẫn phần cứng này có trên tất cả các bộ xử lý hiện đại (có hỗ trợ AVX), nhưng chúng chỉ được sử dụng trong Phiên bản doanh nghiệp.
  • Kéo xuống vị trí chuỗi: Tính năng hiệu suất này có thể cải thiện hiệu suất của các truy vấn sử dụng (các) vị từ trên các cột chuỗi bằng cách đẩy các vị từ này đến nút SCAN. Điều này có thể làm giảm đáng kể khối lượng công việc mà các nút tiếp theo phải thực hiện.
  • Mức độ song song: Truy vấn chế độ hàng loạt được giới hạn ở MAXDOP =2 trên Standard Edition. Phiên bản Doanh nghiệp có thể sử dụng tất cả các lõi hiện có cho ví dụ này. Điều này có thể rất quan trọng đối với các truy vấn lớn hơn trên phần cứng máy chủ hiện đại, điển hình.
  • Giới hạn bộ nhớ: Nhóm đối tượng Columnstore được giới hạn ở 32GB cho mỗi phiên bản trên Standard Edition. Enterprise Edition không có bất kỳ giới hạn bộ nhớ nào cho nhóm đối tượng Columnstore.

Để kiểm tra các xác nhận hiệu suất này, tôi đã chạy một số bài kiểm tra khá đơn giản trên cơ sở dữ liệu Microsoft ContosoRetailDW trên máy trạm Intel Core i7-6700K của mình. Tôi đã cài đặt hai phiên bản có tên của SQL Server 2016 SP1, một phiên bản sử dụng Standard Edition và một phiên bản khác sử dụng Developer Edition (tương đương với Enterprise Edition).

Tất cả các cấu hình và thuộc tính cấp phiên bản và cấp cơ sở dữ liệu giống hệt nhau giữa hai phiên bản và vị trí tệp cơ sở dữ liệu người dùng và tempdb nằm trong các thư mục riêng biệt trên cùng một thiết bị lưu trữ flash riêng biệt cho từng phiên bản. Mức độ tương thích cơ sở dữ liệu đã được thay đổi thành 130 trong cả hai trường hợp và cấu hình và phần cứng của Windows cơ bản là giống nhau cho cả hai trường hợp. Sự khác biệt duy nhất ở đây là Phiên bản của mỗi phiên bản.

Thử nghiệm đầu tiên là một truy vấn đơn giản (phỏng theo Niko Neugebauer) cho phép SQL Server 2016 sử dụng tổng hợp kéo xuống trên bảng FactOnlineSales. Kết quả được thể hiện trong Bảng 1.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 30
Phiên bản dành cho nhà phát triển 1
Chênh lệch thời gian 29
% cải tiến 96,7%

Bảng 1:So sánh Tổng hợp Đẩy xuống

Thử nghiệm tiếp theo là xác định thời gian mất bao lâu để xây dựng một chỉ mục columnstore được phân cụm trên bảng FactOnlineSales 12,6 triệu hàng. Kết quả được thể hiện trong Bảng 2.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 42,197
Phiên bản dành cho nhà phát triển 14.384
Chênh lệch thời gian 27.813
% cải tiến 65,9%

Bảng 2:So sánh chỉ số Columnstore theo cụm xây dựng

Thử nghiệm tiếp theo là xác định thời gian mất bao lâu để xây dựng lại một chỉ mục columnstore được phân cụm trên cùng một bảng FactOnlineSales. Kết quả được thể hiện trong Bảng 3.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 33.105
Phiên bản dành cho nhà phát triển 11.460
Chênh lệch thời gian 21.645
% cải tiến 65,4%

Bảng 3:So sánh lại chỉ số Columnstore theo cụm

Thử nghiệm tiếp theo là một truy vấn đơn giản khác cho phép SQL Server 2016 sử dụng tổng hợp cục bộ trên bảng FactOnlineSales. Kết quả được thể hiện trong Bảng 4.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 122
Phiên bản dành cho nhà phát triển 83
Chênh lệch thời gian 39
% cải tiến 32,0%

Bảng 4:So sánh Tổng hợp Cục bộ

Thử nghiệm tiếp theo là một truy vấn đơn giản khác cho phép SQL Server 2016 sử dụng vị từ kéo xuống chuỗi trên bảng FactOnlineSales và DimPromotion. Kết quả được thể hiện trong Bảng 5.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 2.683
Phiên bản dành cho nhà phát triển 1,221
Chênh lệch thời gian 1,466
% cải tiến 54,6%

Bảng 5:So sánh chuỗi vị ngữ đẩy xuống

Đây chỉ là một số ví dụ đơn giản về lợi thế hiệu suất tích hợp cho các chỉ mục Columnstore trong SQL Server 2016 Enterprise Edition so với SQL Server 2016 Standard Edition trên cùng một phần cứng. Nếu bạn muốn thực sự đi sâu vào chỉ mục Columnstore (có thể là một tính năng rất hiệu quả đối với một số khối lượng công việc), bạn nên đánh dấu trang và đọc loạt bài đăng dài của Niko Neugebauer tại columnstore.net.

Hiệu suất DBCC CHECKDB

Một cải tiến hiệu suất khả năng quản lý khác có trên SQL Server 2016 Enterprise Edition là hiệu suất DBCC CHECKDB. Trên Phiên bản Tiêu chuẩn, DBCC CHECKDB chỉ sử dụng một lõi bộ xử lý, trong khi nó có thể sử dụng tất cả các lõi có sẵn trên Phiên bản Doanh nghiệp. Hành vi này không thay đổi so với các phiên bản SQL Server trước. SQL Server 2016 cho phép bạn giới hạn số lõi mà DBCC CHECKDB có thể sử dụng với tùy chọn WITH (MAXDOP =x) mới.

Chạy DBCC CHECKDB với tùy chọn WITH PHYSICAL_ONLY trên cơ sở dữ liệu lớn hơn một chút (khoảng 38GB) mà tôi có, mang lại kết quả được hiển thị trong Bảng 6.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 58.492
Phiên bản dành cho nhà phát triển 24.897
Chênh lệch thời gian 33.595
% cải tiến 57,4%

Bảng 6:So sánh DBCC CHECKDB VỚI PHYSICAL_ONLY

Chạy một DBCC CHECKDB tiêu chuẩn trên cùng một cơ sở dữ liệu mang lại kết quả như trong Bảng 7.

Phiên bản Thời gian đã trôi qua (mili giây)
Phiên bản Tiêu chuẩn 435.039
Phiên bản dành cho nhà phát triển 119.767
Chênh lệch thời gian 315.272
% cải tiến 72,5%

Bảng 7:So sánh DBCC CHECKDB

Một yếu tố rất quan trọng trong hiệu suất DBCC CHECKDB là hiệu suất đọc tuần tự từ tất cả các LUN nơi chứa (các) tệp dữ liệu cơ sở dữ liệu của bạn. Bạn có thể dễ dàng kiểm tra điều này bằng cách chạy lệnh BACKUP DATABASE cho thiết bị NUL (đảm bảo sử dụng tùy chọn COPY_ONLY và NO_COMPRESSION). Điều này sẽ cho bạn thấy hiệu suất đọc tuần tự hiệu quả của bạn, như được hiển thị trong ví dụ này từ máy trạm của tôi:

CƠ SỞ DỮ LIỆU DỰ PHÒNG đã xử lý thành công 5048514 trang trong 16.115 giây (2447.502 MB / giây).

Hãy nhớ rằng tất cả thử nghiệm này đều được thực hiện trên bộ xử lý máy tính để bàn lõi tứ, đơn. Một máy chủ đa ổ cắm với nhiều lõi bộ xử lý hơn sẽ cho thấy sự cải thiện hiệu suất nhiều hơn trong nhiều thử nghiệm này.

Mục đích của tất cả những điều này là hiển thị một vài ví dụ hữu hình về những cải tiến hiệu suất mà bạn có thể thấy, chỉ đơn giản bằng cách nâng cấp từ SQL Server 2016 Standard Edition SP1 lên SQL Server 2016 Enterprise Edition SP1, trên cùng một phần cứng, không thực hiện thay đổi cơ sở dữ liệu hoặc ứng dụng . Danh sách này không có nghĩa là đầy đủ, vì còn có nhiều lợi ích khác.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sp_executesql chậm với các tham số

  2. Cách chọn ngày không có thời gian trong SQL

  3. Cách gỡ cài đặt SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 23.1

  4. Cách cài đặt Azure Data Studio trên máy Mac

  5. Cách xác định lại các cột được trả về bởi một thủ tục được lưu trữ trong SQL Server