Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Mức độ tương thích cơ sở dữ liệu Microsoft SQL Server

Mức độ tương thích của cơ sở dữ liệu, một trong những cài đặt mức cơ sở dữ liệu, ảnh hưởng đến cách hoạt động của cơ sở dữ liệu quảng cáo. Mỗi phiên bản mới của Microsoft® SQL Server® giới thiệu nhiều tính năng mới, hầu hết trong số đó yêu cầu các từ khóa mới và thay đổi các hành vi nhất định đã tồn tại trong các phiên bản trước đó. Để cung cấp khả năng tương thích ngược tối đa, Microsoft cho phép chúng tôi đặt mức tương thích theo nhu cầu của bạn.

Giá trị mặc định về mức độ tương thích của cơ sở dữ liệu

Theo mặc định, mọi cơ sở dữ liệu kế thừa mức độ tương thích của phiên bản cơ sở dữ liệu mô hình mà từ đó nó được tạo ra. Ví dụ:mức độ tương thích của cơ sở dữ liệu SQL Server 2012 được mặc định là 110 trừ khi bạn thay đổi nó.

Mức độ tương thích sau khi khôi phục

Khi bạn khôi phục bản sao lưu cơ sở dữ liệu được thực hiện trên phiên bản SQL cũ hơn, mức độ tương thích của cơ sở dữ liệu vẫn giống như trên phiên bản mà bạn đã sao lưu, trừ khi mức độ tương thích nguồn thấp hơn mức hỗ trợ tối thiểu. Trong trường hợp đó, mức độ tương thích của cơ sở dữ liệu sẽ thay đổi thành phiên bản được hỗ trợ thấp nhất. Ví dụ:nếu chúng tôi khôi phục bản sao lưu cơ sở dữ liệu SQL Server2005 sang SQL Server 2017, thì mức độ tương thích của cơ sở dữ liệu được khôi phục sẽ được đặt thành 100 vì đó là mức SQL 2017 tối thiểu được hỗ trợ.

Mức độ tương thích sau khi nâng cấp

Mức độ tương thích của cơ sở dữ liệu tempdb, model, msdb và tài nguyên được đặt thành mức tương thích hiện tại sau khi nâng cấp. Cơ sở dữ liệu hệ thống chính giữ lại mức độ tương thích mà nó có trước khi nâng cấp.

Xác định mức độ tương thích

Để xác định mức độ tương thích hiện tại, hãy truy vấn mức độ tương thích cột sys.databases .

Để thay đổi sang một mức độ tương thích khác, hãy sử dụng ALTER DATABASE lệnh được cung cấp trong ví dụ sau:

Use Master
Go
ALTER DATABASE <database name>SET COMPATIBILITY_LEVEL = <compatibility-level>;

Nếu muốn, bạn có thể sử dụng trình hướng dẫn để thay đổi mức độ tương thích. Tuy nhiên, nếu cơ sở dữ liệu được người dùng truy cập trực tuyến, trước tiên bạn nên thay đổi chế độ người dùng đơn lẻ của cơ sở dữ liệu. Sau đó, sau khi bạn sử dụng trình hướng dẫn để thay đổi cấp độ, bạn nên đặt cơ sở dữ liệu ở chế độ nhiều người dùng.

Để thay đổi mức độ tương thích với trình hướng dẫn, nhấp chuột phải vào cơ sở dữ liệu -> thuộc tính–> tùy chọn -> Mức độ tương thích của cơ sở dữ liệu như thể hiện trong hình ảnh sau:

Mức độ tương thích cơ sở dữ liệu Microsoft SQL Server (/article/uploadfiles/202207/2022070812110977.png)

Mức độ tương thích mặc định và được hỗ trợ

Bảng sau đây hiển thị các phiên bản SQL Server với khả năng tương thích mặc định của chúng và danh sách các mức độ tương thích được hỗ trợ:

Mức độ tương thích cơ sở dữ liệu Microsoft SQL Server (/article/uploadfiles/202207/2022070812110959.png)

Nguồn :https://www.sqlskills.com/blogs/glenn/database-compatibility-level-in-sql-server/

Mức độ tương thích và hiệu suất của cơ sở dữ liệu

Trong các phiên bản SQL Server trước SQL 2014, quản trị viên cơ sở dữ liệu không bao giờ lo lắng về mức độ tương thích cơ sở dữ liệu từ góc độ hiệu suất. Mức độ tương thích cơ sở dữ liệu chủ yếu được sử dụng như một cơ chế để kiểm soát xem các tính năng mới được giới thiệu trong phiên bản đó có được sử dụng hay không hoặc các tính năng không được hỗ trợ có bị vô hiệu hóa hay không. Nó cũng được sử dụng để kiểm soát khả năng tương thích ngược.

Bây giờ, khi bạn di chuyển từ phiên bản này sang phiên bản khác, bạn nên thực hiện kiểm tra toàn bộ để hiểu sự thay đổi về hiệu suất. Đôi khi, một truy vấn hoạt động tốt hơn với mức tương thích cũ ngay cả sau khi di chuyển. Tuy nhiên, trong các trường hợp khác, nó có thể ngược lại, vì vậy hãy đảm bảo thực hiện kiểm tra hồi quy đầy đủ.

Kể từ SQL Server 2014, bất kỳ cơ sở dữ liệu nào chạy ở mức tương thích 120 trở lên đều có thể sử dụng ước tính số lượng mới hàm số. Cardinality ước tính logic diễn ra để xác định cách SQL Server thực hiện một truy vấn, dựa trên chi phí ước tính của nó. Ước tính được tính toán bằng cách sử dụng dữ liệu thống kê đầu vào được liên kết với các đối tượng liên quan đến truy vấn đó. Trên thực tế, ở cấp độ cao, ước tính bản số là ước tính số lượng hàng được kết hợp trong thông tin về sự phân phối của các giá trị, số lượng giá trị riêng biệt và số lượng trùng lặp có trong các bảng và đối tượng được tham chiếu trong truy vấn. / O do cấp bộ nhớ không đủ (chẳng hạn như tràn TempDB) hoặc do lựa chọn thực hiện kế hoạch nối tiếp thay vì thực hiện kế hoạch song song, để nêu ra một số khả năng. Tôi dự định thảo luận thêm về ước tính dung lượng trong bài đăng blog tiếp theo của tôi.

Tác động của việc thay đổi mức độ tương thích

Việc thay đổi mức độ tương thích sẽ yêu cầu cơ sở dữ liệu thay đổi bộ tính năng của nó, nghĩa là một số tính năng được thêm vào và đồng thời, một số tính năng cũ bị loại bỏ. Ví dụ:FOR BROWSE mệnh đề không được phép trong INSERTSELECT INTO các câu lệnh ở mức độ tương thích 100 và nó được cho phép nhưng bị bỏ qua ở mức độ tương thích 90. Nếu ứng dụng của bạn sử dụng tính năng này, sự thay đổi này sẽ tạo ra kết quả không mong đợi.

Khi bạn di chuyển cơ sở dữ liệu từ mức tương thích thấp hơn lên mức tương thích cao hơn, bạn sẽ thấy rằng bạn không thể sử dụng tính năng mới nếu không thay đổi được tính tương thích. Tuy nhiên, điều đó không hoàn toàn chính xác. Điều này chỉ đúng với tính năng cấp dữ liệu. Bạn có thể sử dụng các tính năng cấp phiên bản ngay cả khi bạn không thay đổi cấp độ tương thích.

Kết luận

Mức độ tương thích cơ sở dữ liệu xác định cách SQL Server sử dụng các tính năng nhất định. Cụ thể, nó khiến chúng hoạt động giống như một phiên bản SQL Server nhất định, thường được thực hiện để cung cấp một số mức độ tương thích ngược. Bởi vì đây là thuộc tính cơ sở dữ liệu, tính tương thích chỉ ảnh hưởng đến các tính năng cấp cơ sở dữ liệu cho cơ sở dữ liệu cụ thể đó.

Nếu bạn nâng cấp cơ sở dữ liệu bằng cách di chuyển nó sang máy chủ có phiên bản cao hơn bằng cách thực hiện nâng cấp phiên bản tại chỗ, thì mức độ tương thích vẫn như vậy miễn là mức đó được hỗ trợ.

Nếu mức độ tương thích được đặt thành SQL 2014 trở lên, SQL Server sẽ sử dụng tính năng ước tính số lượng mới. Nếu mức độ tương thích được đặt thành 2012 orlower, trình tối ưu hóa cũ sẽ được sử dụng.

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.

Tối ưu hóa môi trường của bạn với quản trị, quản lý và cấu hình chuyên gia

Dịch vụ ứng dụng của Rackspace (RAS) các chuyên gia cung cấp các dịch vụ chuyên nghiệp và được quản lý sau trên nhiều danh mục ứng dụng:

  • nền tảng Thương mại điện tử và Trải nghiệm Kỹ thuật số
  • Hoạch định Nguồn lực Doanh nghiệp (ERP)
  • Kinh doanh Thông minh
  • Quản lý quan hệ khách hàng của Salesforce (CRM)
  • Cơ sở dữ liệu
  • Lưu trữ Email và Năng suất

Chúng tôi cung cấp:

  • Chuyên môn không thiên vị :Chúng tôi đơn giản hóa và hướng dẫn hành trình hiện đại hóa của bạn, tập trung vào các khả năng mang lại giá trị tức thì.
  • Trải nghiệm cuồng tín ™:Chúng tôi kết hợp một Quy trình trước. Công nghệ thứ hai. Tiếp cận với hỗ trợ kỹ thuật chuyên dụng để cung cấp các giải pháp toàn diện.
  • Danh mục đầu tư vô song :Chúng tôi áp dụng nhiều kinh nghiệm về đám mây để giúp bạn lựa chọn và triển khai công nghệ phù hợp trên đám mây phù hợp.
  • Phân phối nhanh :Chúng tôi đáp ứng bạn ở nơi bạn đang ở trong hành trình và thành công vượt bậc với bạn.

Trò chuyện ngay bây giờ để bắt đầu.