Bạn đang xem xét nâng cấp lên phiên bản SQL Server hiện đại hơn? Bạn đang lựa chọn giữa SQL Server 2016 hay SQL Server 2017? Nếu vậy, lời khuyên của tôi là nên nâng cấp lên SQL Server 2017 như tôi giải thích trong bài đăng này.
Việc phát hành công nghệ SQL Server cung cấp rất nhiều tính năng mới thú vị để các quản trị viên và nhà phát triển SQL phải suy ngẫm. Community TechnologyPreview (CTP) 2.0 cho SQL Server vNext (thường được gọi là SQL Server 2017) cũng không ngoại lệ. Nhiều bản cập nhật đã được triển khai trong các tính năng và dịch vụ hiện có của ứng dụng. Trong bài đăng trên blog này, tôi thảo luận về những gì mới trong công cụ cơ sở dữ liệu của SQL Server 2017 từ góc độ quản trị viên cơ sở dữ liệu (DBA).
Giới thiệu
Microsoft® SQL Server 2017 hiện đã ra mắt với nhiều tính năng mới hơn cho phép xử lý nhanh hơn, sử dụng linh hoạt hơn và do đó tiết kiệm chi phí hơn. SQL Server 2016 cung cấp nhiều cải tiến, được Microsoft gọi là một bước tiến lớn. Tuy nhiên, nếu SQL Server 2016 là một bước tiến lớn, thì SQL Server2017 hứa hẹn tất cả những điều đó và nhiều hơn thế nữa những gì khách hàng doanh nghiệp cần ở tất cả các cấp. Hiệu suất cơ sở dữ liệu đã đạt đến đỉnh cao mới với xử lý truy vấn thích ứng, tính linh hoạt mới với khả năng đa nền tảng, tích hợp mới để phân tích khoa học dữ liệu và thống kê, và các phiên bản SQL Server trên hệ điều hành Linux®, Ubuntu® hoặc Docker®. Phiên bản mới bổ sung công nghệ vững chắc với chi phí tiết kiệm.
Những thay đổi được giới thiệu trong SQL Server 2017 được thảo luận ở đây bao gồm các tính năng sau:
- Máy chủ SQL trên Linux
- Tạo lại chỉ mục trực tuyến có thể tiếp tục
- Dịch vụ học máy của SQL Server
- Cải tiến xử lý truy vấn
- Điều chỉnh cơ sở dữ liệu tự động
- Cải thiện kích thước tệp TempDB
- Sao lưu vi sai thông minh
- Sao lưu nhật ký giao dịch thông minh
- Cải thiện CHỌN VÀO tuyên bố
- Hỗ trợ giao dịch phân tán
- Chức năng nhóm khả dụng mới
- Chế độ xem quản lý động mới
- Cải tiến trong bộ nhớ
- Tăng cường bảo mật
- Tính khả dụng cao và khả năng phục hồi sau thảm họa
- Cải thiện hiệu suất
Máy chủ SQL trên Linux
SQL Server không còn chỉ là một hệ thống quản lý cơ sở dữ liệu quan hệ dựa trên cửa sổ (RDBMS). Bạn có thể chạy nó trên các phiên bản khác nhau của hệ điều hành Linux. Bạn cũng có thể phát triển các ứng dụng với SQL Server trên hệ điều hành Linux, Windows, Ubuntu hoặc Docker và triển khai chúng trên các nền tảng này.
Xây dựng lại chỉ mục trực tuyến có thể tiếp tục
Tính năng này tiếp tục hoạt động xây dựng lại chỉ mục trực tuyến từ nơi nó dừng lại sau các sự kiện như chuyển dự phòng cơ sở dữ liệu, hết dung lượng đĩa hoặc tạm dừng.
Các hình ảnh sau đây cho thấy một ví dụ về hoạt động này:
Nguyên tắc lập chỉ mục
Khi bạn thực hiện các thao tác lập chỉ mục trực tuyến, các nguyên tắc sau sẽ được áp dụng:
- Chỉ mục được phân nhóm phải được tạo, xây dựng lại hoặc loại bỏ ngoại tuyến khi bảng bên dưới chứa các loại dữ liệu hình ảnh, ntext và đối tượng lớn văn bản (LOB).
- Chỉ mục không duy nhất và không phân cụm có thể được tạo trực tuyến khi bảng chứa kiểu dữ liệu LOB nhưng không có cột nào trong số này được sử dụng trong định nghĩa chỉ mục dưới dạng khóa hoặc cột không phải khóa (được bao gồm).
- Không thể tạo, xây dựng lại hoặc hủy bỏ chỉ mục trên các bảng tạm thời cục bộ. Hạn chế này không áp dụng cho các chỉ mục trên các bảng tạm thời chung.
- Bạn có thể thực hiện đồng thời các hoạt động ngôn ngữ định nghĩa dữ liệu chỉ mục trực tuyến (DDL) trên cùng một bảng hoặc chỉ xem khi bạn đang tạo nhiều chỉ mục không phân nhóm mới hoặc tổ chức lại các chỉ mục không được phân nhóm. Tất cả các hoạt động lập chỉ mục trực tuyến khác được thực hiện cùng lúc đều không thành công. Ví dụ:bạn không thể tạo chỉ mục mới trực tuyến trong khi tạo lại chỉ mục hiện có trực tuyến trên cùng một bảng.
Dịch vụ học máy của SQL Server
SQL Server 2016 tích hợp ngôn ngữ lập trình R, có thể chạy trên máy chủ cơ sở dữ liệu và cũng có thể được nhúng vào tập lệnh Transact-SQL (T-SQL). Trong SQL Server 2017, bạn có thể thực thi tập lệnh Python trong chính cơ sở dữ liệu. Cả R và Python đều là các ngôn ngữ lập trình phổ biến cung cấp hỗ trợ chuyên sâu cho phân tích dữ liệu cùng với khả năng xử lý ngôn ngữ tự nhiên.
Cải tiến xử lý truy vấn
SQL Server 2017 điều chỉnh các chiến lược tối ưu hóa phù hợp với điều kiện thời gian sử dụng khối lượng công việc của ứng dụng của bạn. Nó bao gồm các tính năng xử lý truy vấn thích ứng mà bạn có thể sử dụng để cải thiện hiệu suất truy vấn trong SQL Server và Cơ sở dữ liệu SQL.
Có ba cải tiến truy vấn mới như được hiển thị trong sơ đồ sau:
- Phản hồi cấp bộ nhớ ở chế độ hàng loạt :Kỹ thuật phản hồi này sẽ tính toán lại bộ nhớ cần thiết cho kế hoạch thực thi và cấp nó từ bộ nhớ cache.
- Kết hợp thích ứng với chế độ hàng loạt :Để thực hiện kế hoạch nhanh hơn, kỹ thuật viên này sử dụng một phép nối băm hoặc một phép nối vòng lặp lồng nhau. Sau khi quét đầu vào đầu tiên của kế hoạch thực thi, nó sẽ quyết định sử dụng phép nối nào để tạo ra đầu ra ở tốc độ nhanh nhất.
- Thực thi xen kẽ :Việc thực thi xen kẽ tạm dừng việc tối ưu hóa kế hoạch thực thi lại khi nó gặp phải các hàm có giá trị bảng nhiều câu lệnh. Sau đó, nó sẽ tính toán số lượng hoàn hảo và tiếp tục tối ưu hóa.
Tự động điều chỉnh cơ sở dữ liệu
Tính năng này sẽ thông báo cho bạn bất cứ khi nào một vấn đề hiệu suất tiềm ẩn được phát hiện và cho phép bạn áp dụng các hành động khắc phục hoặc nó cho phép công cụ cơ sở dữ liệu tự động khắc phục các vấn đề về hiệu suất do các hồi quy lựa chọn kế hoạch SQL gây ra. kế hoạch có thể cải thiện hiệu suất khối lượng công việc của bạn và chỉ số nào ảnh hưởng đến khối lượng công việc của bạn. Dựa trên những phát hiện này, quy trình điều chỉnh tự động áp dụng các giao dịch giúp cải thiện hiệu suất khối lượng công việc. Ngoài ra, cơ sở dữ liệu liên tục theo dõi hiệu suất sau bất kỳ thay đổi nào được thực hiện bằng cách tự động điều chỉnh để đảm bảo rằng nó cải thiện hiệu suất khối lượng công việc. Bất kỳ hành động nào không cải thiện hiệu suất sẽ tự động được hoàn nguyên.
Hồi quy lựa chọn kế hoạch SQL
Công cụ cơ sở dữ liệu SQL Server có thể sử dụng các kế hoạch SQL khác nhau để thực thi T-SQLqueries. Kế hoạch truy vấn phụ thuộc vào số liệu thống kê, chỉ mục và các yếu tố khác. Trong một số trường hợp, kế hoạch mới có thể không tốt hơn kế hoạch trước đó và kế hoạch mới có thể gây ra hồi quy về hiệu suất. Bất cứ khi nào bạn nhận thấy sự lựa chọn kế hoạch kém hiệu quả, bạn nên tìm một kế hoạch tốt đã được sử dụng trước đó và buộc nó phải được sử dụng thay cho kế hoạch hiện tại bằng cách sử dụng sp_query_store_force_plan thủ tục. Công cụ cơ sở dữ liệu trong SQL Server 2017 (v. 14.x) cung cấp các kế hoạch hồi quy về thông tin và các hành động khắc phục được khuyến nghị. Ngoài ra, công cụ cơ sở dữ liệu cho phép bạn hoàn toàn tự động hóa quá trình này và cho phép công cụ cơ sở dữ liệu khắc phục bất kỳ sự cố nào liên quan đến các thay đổi kế hoạch được tìm thấy.
Chỉnh sửa kế hoạch tự động
Việc hiệu chỉnh kế hoạch tự động được hiển thị trong sơ đồ sau:
Các tính năng điều chỉnh tự động sau đây khả dụng:
- Chỉnh sửa kế hoạch tự động (khả dụng trong SQL Server 2017 v14.x và Cơ sở dữ liệu AzureSQL):Nó xác định các kế hoạch thực thi truy vấn có vấn đề và khắc phục các vấn đề về hiệu suất kế hoạch theSQL. Điều chỉnh tự động được bật bằng lệnh sau:
- Quản lý chỉ mục tự động (chỉ khả dụng trong Cơ sở dữ liệu Azure SQL):Xác định các chỉ mục cần được thêm vào cơ sở dữ liệu của bạn và các chỉ mục cần được xóa.
Cải thiện kích thước tệp TempDB
Thiết lập SQL Server 2017 hiện cho phép bạn chỉ định kích thước tệp TempDB ban đầu lên đến 256 GB (262,144 MB) cho mỗi tệp, với cảnh báo nếu kích thước tệp được setgreater hơn 1GB mà không có khởi tạo tệp tức thì (IFI) đã được kích hoạt. Điều quan trọng là phải hiểu rằng, tùy thuộc vào kích thước ban đầu của tệp dữ liệu TempDB được chỉ định, việc không bật IFI có thể khiến thời gian thiết lập tăng theo cấp số nhân.
Sao lưu vi sai thông minh
Cột mới fixed_extent_page_count được giới thiệu trong sys.dm_db_file_space_usage để theo dõi các thay đổi khác biệt trong mỗi tệp cơ sở dữ liệu trong cơ sở dữ liệu. Cột mới fixed_extent_page_count cho phépDBA, cộng đồng SQL và các nhà cung cấp phần mềm độc lập sao lưu (ISV) xây dựng các giải pháp sao lưu thông minh, thực hiện sao lưu khác biệt nếu tỷ lệ phần trăm trang được thay đổi trong cơ sở dữ liệu thấp hơn ngưỡng (khoảng 70-80%). Nếu không, họ thực hiện cơ sở dữ liệu đầy đủ sao lưu. Với một số lượng lớn các thay đổi trong cơ sở dữ liệu, chi phí và thời gian để hoàn thành các bản sao lưu khác biệt giống như việc thực hiện sao lưu toàn bộ cơ sở dữ liệu, vì vậy không có lợi ích thực sự của việc sao lưu vi sai trong trường hợp này. Tuy nhiên, nó chắc chắn có thể tăng thời gian khôi phục cơ sở dữ liệu. Bằng cách thêm trí thông minh này vào các giải pháp sao lưu, bạn có thể tiết kiệm thời gian khôi phục và khôi phục bằng cách sử dụng các bản sao lưu khác biệt.
Sao lưu nhật ký giao dịch thông minh
Chức năng quản lý động mới (DMF), sys.dm_db_log_stats (database_id) ,đã được phát hành. Hàm này hiển thị một cột mới, log_since_last_log_backup_mb , trao quyền cho các DBA, cộng đồng SQL và các ISV dự phòng để xây dựng các giải pháp sao lưu thông minh-log để thực hiện các bản sao lưu dựa trên hoạt động giao dịch trên cơ sở dữ liệu. Tính thông minh của giải pháp sao lưu T-log này đảm bảo rằng, nếu tần suất T-log backup quá thấp, kích thước nhật ký giao dịch sẽ không tăng lên do hoạt động giao dịch bùng nổ cao trong thời gian ngắn. Nó cũng giúp tránh trường hợp xảy ra trường hợp sao lưu nhật ký giao dịch theo lịch trình tạo ra quá nhiều tệp T-logbackup ngay cả khi không có hoạt động giao dịch nào trên máy chủ. Nếu điều đó xảy ra, nó sẽ thêm một cách không cần thiết vào bộ nhớ, quản lý tệp và các đầu khôi phục.
Cải thiện CHỌN VÀO tuyên bố
Trong SQL Server 2017, bạn có thể cung cấp tên nhóm tệp để tạo bảng mới bằng cách sử dụng nút BẬT từ khóa CHỌN VÀO bản tường trình. Tableis được tạo trên nhóm tệp mặc định của người dùng theo mặc định. Chức năng này không khả dụng trong các phiên bản trước.
Hỗ trợ giao dịch phân tán
SQL Server 2017 hỗ trợ các giao dịch phân tán cho cơ sở dữ liệu trong các nhóm khả dụng. Hỗ trợ này bao gồm cơ sở dữ liệu trên cùng một phiên bản SQL Server và cơ sở dữ liệu trên các phiên bản SQL Server khác nhau. Các giao dịch phân tán không được hỗ trợ cho cơ sở dữ liệu được định cấu hình để phản chiếu cơ sở dữ liệu.
Chức năng mới của các nhóm còn trống
Chức năng này bao gồm hỗ trợ không cụm, Nhóm cam kết bản sao tối thiểu cài đặt cũng như kiểm tra và di chuyển nhiều hệ điều hành Windows-Linux.
Chức năng này bao gồm các tính năng sau:
-
Giờ đây, các nhóm khả dụng có thể được thiết lập mà không cần cụm cơ bản (Cụm chuyển đổi dự phòng WindowsServer hoặc WSFC) và trên các môi trường hỗn hợp (phiên bản onWindows và Linux hoặc Docker).
-
Cam kết bản sao tối thiểu mới cài đặt cho phép bạn chỉ định số lượng bản sao thứ cấp nhất định. Bạn phải thực hiện một giao dịch trước khi thực hiện giao dịch chính.
Chế độ xem quản lý động mới
Chế độ xem quản lý động (DMV) bao gồm các yếu tố sau:
- sys.dm_db_log_stats hiển thị các thuộc tính cấp tóm tắt và các tệp nhật ký giao dịch không thông tin và rất hữu ích cho việc theo dõi tình trạng nhật ký giao dịch.
- sys.dm_tran_version_store_space_usage cho phép bạn xem việc sử dụng cửa hàng phiên bản ảnh hưởng, được nhóm theo từng cơ sở dữ liệu. Do đó, bạn có thể sử dụng để lập hồ sơ khối lượng công việc của mình trong môi trường thử nghiệm (trước và sau khi thay đổi) và để theo dõi tác động theo thời gian – ngay cả khi các cơ sở dữ liệu khác cũng đang sử dụng kho phiên bản.
- sys.dm_db_log_info hiển thị thông tin tệp nhật ký ảo (VLF) để theo dõi, cảnh báo và ngăn chặn các vấn đề tiềm ẩn về nhật ký giao dịch.
- sys.dm_d_stats_histogram là một chế độ xem quản lý động mới cho thống kê kiểm tra, như thể hiện trong hình ảnh sau:
- sys.dm_os_host_info tiết lộ những thứ như nền tảng, phân phối, cấp độ gói dịch vụ và ngôn ngữ.
- sys.dm_os_sys_info đã được mở rộng, tiết lộ thông tin về CPU (chẳng hạn như số lượng tập hợp, số lượng lõi và số lõi trên mỗi ổ cắm).
Các cải tiến trong bộ nhớ
Các thay đổi trong bộ nhớ trong SQL Server 2017 bao gồm các cải tiến sau:
- Cột được tính toán và chỉ mục trên các cột đó hiện đã được hỗ trợ.
- Biểu thức CASE, ÁP DỤNG CHÉO và ĐẦU (N) VỚI TIES hiện được hỗ trợ các mô-đun được biên dịch sẵn.
- Các lệnh JSON hiện được hỗ trợ đầy đủ trong cả ràng buộc kiểm tra và các mô-đun được biên dịch nội bộ.
- Quy trình hệ thống sp_spaceused hiện báo cáo đúng không gian cho các bảng được tối ưu hóa bộ nhớ.
- Quy trình hệ thống sp_rename hiện hoạt động trên các bảng trong bộ nhớ và các mô-đun được biên dịch tự động.
- Hạn chế của tám chỉ mục trên các bảng được tối ưu hóa bộ nhớ đã bị loại bỏ.
- Các tệp nhóm tệp được tối ưu hóa cho bộ nhớ hiện có thể được lưu trữ trên bộ nhớ Azure.
Tăng cường bảo mật
Giờ đây, bạn có thể cấp, từ chối hoặc thu hồi quyền đối với thông tin xác thực có phạm vi cơ sở dữ liệu, chẳng hạn như quyền KIỂM SOÁT, ALTER, TÀI LIỆU THAM KHẢO, LẤY QUYỀN SỞ HỮU và XEM ĐỊNH NGHĨA. Ngoài ra, HOẠT ĐỘNG SỐ LƯỢNG LỚN CỦA CƠ SỞ DỮ LIỆU QUẢN TRỊ hiện được hiển thị trong sys.fn_builtin_permissions .
Tính khả dụng cao và khả năng phục hồi sau thảm họa
Đạt được thời gian hoạt động quan trọng đối với sứ mệnh, chuyển đổi dự phòng nhanh chóng, thiết lập dễ dàng và cân bằng tải của các thư thứ hai có thể đọc được với tính năng Luôn bật nâng cao chức năng trong SQL Server2017. Đây là một giải pháp thống nhất cho tính khả dụng cao và khôi phục thảm họa trên Linux và Windows. Bạn cũng có thể đặt một bản sao không đồng bộ vào một máy Azurevirtual để có tính khả dụng cao kết hợp.
Cải tiến hiệu suất
SQL Server 2017 giới thiệu những thay đổi sau đối với cách thu thập và hiển thị các truy vấn và thống kê:
- DMV sys.dm_exec_query_stosystem_xml mới cho phép bạn tương quan với các kế hoạch, miễn là cấu hình truy vấn được bật. Hình ảnh sau sẽ kết hợp điều này:
- Showplan XML hiện bao gồm thông tin về thống kê được sử dụng cho một mặt phẳng, cho các kế hoạch thực tế, số liệu thời gian chạy và 10 thống kê chờ hàng đầu có kinh nghiệm trong kế hoạch đó. Các thống kê chờ này hiện cũng đang được theo dõi trong cửa hàng truy vấn.
- Chức năng quản lý động mới sys.dm_db_stats_histogram cho phép bạn truy cập thông tin biểu đồ theo chương trình mà không cần lệnh điều khiển cơ sở dữ liệu (DBCC).
Kết luận
Có nhiều thay đổi trong SQL Server 2017 có thể giúp ích cho việc triển khai của bạn và rất nhiều thông tin sẵn có để giúp bạn. Mặc dù bạn có thể nghĩ SQL Server 2017 “chỉ là một cổng Linux”, có những cải tiến quan trọng trong thế giới thực trong công cụ cơ sở dữ liệu cốt lõi mang lại lợi ích cho tất cả các nền tảng. Microsoft tiếp tục bổ sung thêm chức năng cho sản phẩm trong bản cập nhật tích lũy SQL Server 2017 và SQL Server 2017 sẽ được Microsoft hỗ trợ đầy đủ trong thời gian dài hơn so với SQL Server 2016.
Tìm hiểu thêm về Cơ sở dữ liệu
Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.