SQL Server 2017 được phát hành chính thức vào tháng 10 năm 2017. Các phần đầu tiên của SQL Server 2017 đã được phát hành từ cuối năm 2016, tính đến cuối năm 2017 nó đã có 10 bản phát hành.
Phiên bản SQL Server 2017 chủ yếu được kết nối với Linux, mang sức mạnh của SQL vào Linux. Tóm lại, bạn có thể cài đặt SQL Server 2017 trên Linux, sử dụng SQL Server 2017 trên bộ chứa docker dựa trên Linux. SQL Server 2017 cũng cho phép bạn chọn ngôn ngữ phát triển, phát triển nó tại chỗ hoặc dựa trên đám mây.
Trong phiên bản này, SQL Server 2017 cũng cải thiện hiệu suất, khả năng mở rộng và các tính năng trong từng phần như Công cụ cơ sở dữ liệu, Dịch vụ tích hợp, Dịch vụ dữ liệu chính, Dịch vụ phân tích, v.v. Trong bài viết này chúng ta sẽ xem xét từng phần một.
Tính năng mới của SQL Server 2017
- Tính năng mới trong Công cụ cơ sở dữ liệu
- ID_cache
- Xử lý truy vấn thích ứng được cải thiện
- Điều chỉnh Tự động
- Tính năng mới trong Graph DB
- Graph DB là gì?
- Luôn có sẵn (truy cập dữ liệu chéo)
- Cải tiến về DTA
- Hàm chuỗi mới
- BẢN DỊCH
- CONCATE_WS
- TRIM
- STRING_AGG
- Có gì mới trong SSRS (Dịch vụ báo cáo) của SQL 2017
- Có gì mới trong SSIS (Dịch vụ Tích hợp) trong SQL 2017
- Có gì mới trong Dịch vụ phân tích (SSAS) trong SQL 2017?
- Học máy
- Hỗ trợ Linux
Tính năng mới trong Công cụ cơ sở dữ liệu
ID_cache
Tùy chọn này giúp bạn tránh sai lệch giá trị của cột ID, trong trường hợp máy chủ tắt đột ngột hoặc thực hiện chuyển đổi dự phòng, hoặc thậm chí chuyển sang máy chủ phụ. Nó được sử dụng với lệnh ALTER DATABPED CONFIGURATION, để kích hoạt cài đặt cấu hình cơ sở dữ liệu. Cú pháp như sau:
ALTER DATABASE SCOPED CONFIGURATION { { [ FOR SECONDARY] SET } } | CLEAR PROCEDURE_CACHE | SET < set_options > [;] < set_options > ::= { MAXDOP = { | PRIMARY } | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY } | PARAMETER_SNIFFING = { ON | OFF | PRIMARY } | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY } | IDENTITY_CACHE = { ON | OFF } }
Xử lý truy vấn thích ứng được cải thiện
Nếu bạn muốn cải thiện hiệu suất truy vấn, tính năng mới này sẽ giúp ích đáng kể. Nó được hỗ trợ trong SQL Server và Azure SQL Database.
Đây là quá trình tối ưu hóa thông thường khi thực hiện các truy vấn SQL:
- Đầu tiên, trình tối ưu hóa truy vấn sẽ tính toán tất cả các kế hoạch thực thi truy vấn có thể có cho truy vấn vừa tạo.
- Tiếp theo, nó sẽ hiển thị kế hoạch tốt nhất / nhanh nhất.
- Cuối cùng, phương án tốt nhất ước tính sẽ được chọn để thực hiện truy vấn và quá trình thực thi sau đó sẽ bắt đầu.
Quy trình trên có những nhược điểm sau:
- Nếu ước tính sai kế hoạch là tốt nhất, nó sẽ ảnh hưởng đến hiệu suất.
- Nếu không đủ bộ nhớ được cấp phát để thực hiện kế hoạch tối ưu, lỗi tràn bộ nhớ sẽ xảy ra.
Dưới đây là các tính năng mà SQL Server 2017 đã đưa vào để khắc phục những nhược điểm này:
Phản hồi cấp bộ nhớ ở chế độ hàng loạt (Phản hồi về cấp phát bộ nhớ cho chế độ hàng loạt):Phản hồi này sẽ tính toán lại bộ nhớ cần thiết để thực hiện kế hoạch và cấp phát bộ nhớ cho nó từ bộ nhớ đệm.
Batch Mode Adaptive Joins (Tham gia thích ứng với chế độ hàng loạt):Có 2 kiểu nối:băm và vòng lặp lồng nhau. Khi mục nhập kế hoạch thực thi được nhập và quét lần đầu tiên, nó sẽ xác định loại kết hợp nào cần áp dụng để có được kết quả đầu ra ở tốc độ tối ưu.
Thực hiện xen kẽ:Trong quá trình thực hiện phương án tối ưu, tính năng này sẽ "tạm dừng" khi gặp các hàm có giá trị bảng nhiều điểm để chỉ tính toán các phần tử hoàn hảo. trong bảng này, rồi tiếp tục tối ưu hóa.
Điều chỉnh tự động
Tính năng này kiểm tra các vấn đề trong hiệu suất truy vấn, xác định chúng và khắc phục bằng các giải pháp được đề xuất. Đây là các kỹ thuật điều chỉnh tự động có sẵn trong tính năng này:
Tự động sửa (Kế hoạch):Kỹ thuật này có sẵn trong Cơ sở dữ liệu SQL 2017, nó sẽ tìm ra các vấn đề về hiệu suất trong kế hoạch truy vấn được đưa ra, sau đó khắc phục chúng bằng các giải pháp được đề xuất.
Quản lý tự động (Chỉ mục):Kỹ thuật này được bao gồm trong SQL 2017 Azure DB, nó sẽ xác định và sửa thứ tự của các chỉ mục bằng cách xóa chỉ mục không chuẩn và thêm chính xác chỉ mục.
Tính năng mới trong Graph DB
Graph DB là gì?
Về cơ bản, Graph DB là một tập hợp các nút và các cạnh, cạnh thể hiện mối quan hệ giữa các nút, các nút là các thực thể, một cạnh có thể được kết nối với nhiều nút. Graph DB hoạt động giống như một cơ sở dữ liệu quan hệ và bạn có thể sử dụng nó trong các trường hợp sau:
- Khi có cơ sở dữ liệu ở định dạng phân cấp và muốn lưu nhiều nút cha cho một nút.
- Khi bạn cần kiểm tra và phân tích các mối quan hệ liên kết và dữ liệu.
- Khi có nhiều mối quan hệ (mối quan hệ).
Ở đây, từ khóa MATCH được sử dụng để truy vấn bảng Đồ thị và sắp xếp dữ liệu, với sự trợ giúp của một truy vấn, người dùng có thể truy vấn trên đồ thị và dữ liệu quan hệ.
Luôn có sẵn (truy cập dữ liệu chéo)
Với sự trợ giúp của tính năng này, giờ đây có thể trao đổi chéo cơ sở dữ liệu giữa các phiên bản SQL khác nhau (một phiên bản SQL có thể kết nối với các phiên bản cá thể khác). Nó cũng hỗ trợ trao đổi cơ sở dữ liệu phân tán. [SQL 2016 cũng hỗ trợ truy cập cơ sở dữ liệu chéo nhưng chỉ giữa các phiên bản trong cùng một SQL Server.]
Cải tiến trên DTA
Trong SQL 2017, đã có những cải tiến về hiệu suất trong Cố vấn điều chỉnh cơ sở dữ liệu (DTA). Cụ thể, các tùy chọn cho DTA đã được thêm vào.
Nếu bạn không biết DTA là gì, hãy:
DTA là công cụ cơ sở dữ liệu thực hiện xử lý truy vấn (đã xử lý) và sau đó đưa ra các cách giúp bạn cải thiện hiệu suất, có thể bằng cách thay đổi cấu trúc cơ sở dữ liệu. dữ liệu (ví dụ:chỉ mục, khóa) .DTA có thể được sử dụng theo hai cách sau:
- Sử dụng GUI (giao diện)
- Sử dụng tiện ích lệnh
Hàm chuỗi mới
SQL 2017 cung cấp cho người dùng một số hàm chuỗi mới như TRANSLATE, CONCAT_WS, STRING_AGG, TRIM . Hãy khám phá từng chức năng một.
BẢN DỊCH
Về cơ bản, hàm này nhận một ký tự string dưới dạng dữ liệu đầu vào và sau đó chuyển đổi các ký tự này thành một số ký tự mới, hãy xem cú pháp bên dưới:
TRANSLATE (inputString, characters, translations)
Trong cú pháp trên, độ dài của 'ký tự' phải giống như trong 'bản dịch', nếu không hàm sẽ trả về giá trị lỗi. Ví dụ:
TRANSLATE ( '6 * {10 + 10} / [6-4]' , '[] {}' , '() ()' )
Kết quả trả về của ví dụ trên sẽ là 6 * (10 + 10) / (6-4). Chúng ta có thể thấy rằng dấu ngoặc nhọn và dấu ngoặc nhọn được chuyển đổi thành dấu ngoặc tròn.
Hàm này có cơ chế tương tự như hàm REPLACE, nhưng cách sử dụng đơn giản hơn là thay thế hàm REPLACE, ví dụ nếu chúng ta muốn trả về kết quả như trên nhưng sử dụng Hàm REPLACE thì ta phải viết hàm sau, nhìn sơ qua sẽ không dễ:
SELECT REPLACE (REPLACE (REPLACE (REPLACE ( '6 * {10 + 10} / [6-4]' , '{' , '(' ), '}' , ')' ), '[' , '(' ), ']' , ')' );
CONCATE_WS
Chức năng của hàm này chỉ đơn giản là nối tất cả các đối số đầu vào với dấu phân cách được chỉ định. Vui lòng tham khảo cú pháp bên dưới:
CONCAT_WS (separator, argument1, argument1 [, argumentN] .)
Hàm này tạo các chuỗi đơn bằng cách nối tất cả các đối số lại với nhau với sự trợ giúp của dấu phân tách, vì vậy nó cần ít nhất 2 đối số để tạo ra kết quả, nếu không kết quả trả về khoảng sẽ bị lỗi. ví dụ:
SELECTCONCAT_WS (',', 'Đếm số numers', 'một', 'hai', 'ba', 'bốn') AScounter;
Kết quả được trả về bởi lệnh trên sẽ là: một, hai, ba, bốn
Bạn cũng có thể sử dụng tên cột cơ sở dữ liệu thay vì các chuỗi được mã hóa.
TRIM
Cuối cùng, hàm này cũng đã xuất hiện trong SQL 2017. Về cơ bản, nó hoạt động giống như hàm trim của C #, tức là loại bỏ tất cả các khoảng trắng thừa ở đầu và cuối chuỗi. cú pháp như sau:
SELECT TRIM ( 'trim me' ) AS result;
Kết quả được trả về bởi lệnh trên sẽ là: trim me
Hàm này sẽ không xóa khoảng trắng ở giữa chuỗi.
STRING_AGG
Hàm này nối các giá trị của chuỗi với sự trợ giúp của dấu phân tách trong khi không thêm dấu phân tách vào cuối chuỗi. Dữ liệu đầu vào có thể là VARCHAR, NVARCHAR, bạn có thể tùy chọn chỉ định thứ tự hiển thị của các kết quả bằng mệnh đề WITHIN GROUP.
Xem cú pháp bên dưới:
STRING_AGG (expression, separator) []
:: =
WITHIN GROUP ( ORDER BY [ ASC | DESC ])
Vui lòng tham khảo ví dụ sau:
SELECT city,
STRING_AGG (name, ';' ) WITHIN GROUP ( ORDER BY name ASC ) AS names
FROM Students GROUP BY city;
Trong ví dụ trên, tất cả các tên đã được ghép nối và phân tách bằng dấu chấm phẩy (;). Mệnh đề WITHIN GROUP giúp chúng ta sắp xếp theo thứ tự. Kết quả trả về sẽ được hiển thị dưới dạng sau:
Có gì mới trong SSRS (Dịch vụ báo cáo) của SQL 2017
- Từ bây giờ, thiết lập SSRS không còn khả dụng trên cài đặt SQL Server nữa, bạn cần tải xuống từ cửa hàng tải xuống [tại đây].
- Từ bây giờ, trình thiết kế truy vấn sẽ hỗ trợ DAX. Có thể tạo các truy vấn DAX gốc để ngăn chặn SSAS (dịch vụ phân tích). Tính năng này sẽ xuất hiện trên các bản cập nhật mới nhất của công cụ SQL và trình tạo báo cáo.
- OpenAPIcommandsare được hỗ trợ bởi RESTful API và hiện tại RESTful API được SSRS hỗ trợ.
- Từ bây giờ, bạn có thể đính kèm nhiều tệp hơn vào nhận xét của mình.
- Bạn cũng có thể thêm nhận xét vào báo cáo.
- Cổng dịch vụ báo cáo đã được nâng cấp đáng kể (tính năng này có sẵn trong SQL 2016).
Có gì mới trong SSIS (Dịch vụ tích hợp) trong SQL 2017
Từ bây giờ, bạn có thể thực hiện SSIS trên Linux, tăng âm lượng cũng như trích xuất và chuyển đổi dữ liệu trực tiếp trên Linux.
Tính năng mở rộng quy mô cho phép các hệ thống tích hợp phức tạp với nhiều máy hiệu suất cao. Tính năng chia tỷ lệ có thể thực hiện tất cả các hoạt động với sự trợ giúp của Scale Out Master và Scale Out worker.
Có gì mới trong Dịch vụ phân tích (SSAS) trong SQL 2017?
- Giao diện mới của Lấy dữ liệu được phát hành trên SQL 2017 tương tự như MS Excel, power BI. Ngoài tính năng chuyển đổi dữ liệu và kết hợp dữ liệu cũng đã xuất hiện, bạn có thể thực hiện điều đó bằng cách sử dụng trình tạo truy vấn và biểu thức M.
- Chế độ dạng bảng cho SSAS - một đế chế được giới thiệu trong SQL 2012, hiện đã được nâng cấp đáng kể trong SQL 2017.
- SQL 2017 cung cấp các gợi ý Mã hóa mới, được sử dụng để tối ưu hóa dữ liệu bảng trong bộ nhớ lớn.
- Cải thiện hiệu suất cho PIVOT.
Máy học
Tất cả chúng ta đều biết rằng SQL 2016 hiện hỗ trợ các dịch vụ R và kể từ bây giờ, dịch vụ này sẽ được đổi tên thành dịch vụ Máy chủ SQL. Lợi ích từ sự thay đổi này là bạn có thể dễ dàng sử dụng hệ thống lệnh R hoặc Python trên SQL Server.
Với tính năng mới này, Python có thể chạy trong các thủ tục được lưu trữ, thậm chí bạn có thể thực thi lệnh từ xa thông qua SQL Server, điều này thực sự hữu ích cho các nhà phát triển Python. Tuy nhiên, tính năng này hiện không được hỗ trợ trên Linux, vui lòng đợi bản nâng cấp tiếp theo.
Để sử dụng học máy theo cách hiệu quả và tối ưu hơn, SQL sử dụng các giải pháp sau:
- thu hồi tài khoản là một loại thư viện mới làm nền tảng cho các thuật toán, tính toán hiệu suất cao và các tình huống từ xa. Về cơ bản revoscalepy là dựa trên nền tảng RevoScaleR (một gói dịch vụ R).
- microsoftml là một Microsoft R cụm máy chủ hỗ trợ các thuật toán ngôn ngữ máy, Microsoft đã phát triển thư viện này để học máy trong nội bộ.
Hỗ trợ Linux
Về cơ bản, ngay từ cái tên "SQL 2017 trên Linux và Windows" chúng ta có thể biết rằng mục đích chính của bản nâng cấp này là hỗ trợ phát hành các sản phẩm trên nền tảng Linux. Dưới đây là một số tính năng chính của "SQL trên Linux":
- Khả năng lưu trữ cơ sở dữ liệu cốt lõi
- Hỗ trợ IPV6
- Hỗ trợ NFS
- Xác minh AD trên linux
- Hỗ trợ mã hóa
- Có thể cài đặt SSIS trên Linux
- Công cụ lệnh MSSQL-conf hiện có sẵn
- Liền mạch và tự do hóa quá trình cài đặt
- Lõi SQL cho Visual studio (Lõi VS có sẵn trên Linux)
- Trình tạo tập lệnh đa nền tảng
tóm tắt
Sẽ còn rất nhiều điều để nói và tìm hiểu về SQL Server, chúng ta sẽ tiếp tục hành trình này trong các phần tiếp theo. Đừng ngần ngại đưa ra nhận xét và câu hỏi!
Xem thêm:
- 7 cách chạy phần mềm Linux trên Windows
- 8 điểm khác biệt chính giữa Windows và Linux
- Cách đăng nhập cơ sở dữ liệu trên MS SQL Server
- Cách khởi động và dừng dịch vụ trong MS SQL Server