Cơ sở dữ liệu Azure SQL là dịch vụ cung cấp cơ sở dữ liệu của Microsoft cung cấp tính linh hoạt và bảo mật to lớn, đồng thời là một phần của Nền tảng như một dịch vụ của Microsoft, tận dụng các tính năng bổ sung. Vì Cơ sở dữ liệu Azure SQL là phạm vi cơ sở dữ liệu, có một số khác biệt lớn khi nói đến điều chỉnh hiệu suất.
Điều chỉnh phiên bản
Nhiều mục cấp phiên bản mà bạn đã quen định cấu hình trên các bản cài đặt đầy đủ bị giới hạn. Một số mặt hàng này bao gồm:
- Đặt bộ nhớ máy chủ tối thiểu và tối đa
- Bật tính năng tối ưu hóa cho khối lượng công việc đột xuất
- Thay đổi ngưỡng chi phí cho tính song song
- Thay đổi mức độ song song tối đa ở cấp phiên bản
- Tối ưu hóa tempdb với nhiều tệp dữ liệu
- Cờ theo dõi
Đừng quá buồn về một số trong số này. Câu lệnh ALTER DATABASE SCOPED CONFIGURATION cho phép khá nhiều cài đặt cấu hình ở cấp độ cơ sở dữ liệu riêng lẻ. Điều này đã được giới thiệu với Cơ sở dữ liệu Azure SQL và trong SQL Server bắt đầu với SQL Server 2016. Một số cài đặt này bao gồm:
- Xoá bộ nhớ cache của thủ tục
- Đặt MAXDOP thành một giá trị khác 0
- Đặt mô hình ước tính số lượng của trình tối ưu hóa truy vấn
- Bật hoặc tắt các bản sửa lỗi tối ưu hóa truy vấn
- Bật hoặc tắt tính năng dò tìm tham số
- Bật hoặc tắt bộ nhớ cache nhận dạng
- Bật hoặc tắt một sơ đồ kế hoạch đã biên dịch để được lưu trữ trong bộ nhớ cache khi một lô được biên dịch lần đầu tiên.
- Bật hoặc tắt tính năng thu thập thống kê thực thi cho các mô-đun T-SQL được biên dịch nguyên bản.
- Bật hoặc tắt trực tuyến theo các tùy chọn mặc định cho các câu lệnh DDL hỗ trợ cú pháp ONLINE =ON / OFF.
- Bật hoặc tắt tùy chọn có thể tiếp tục theo mặc định cho các câu lệnh DDL hỗ trợ cú pháp RESUMABLE =ON / OFF.
- Bật hoặc tắt chức năng tự động thả của các bảng tạm thời chung
Như bạn có thể thấy từ danh sách các cấu hình theo phạm vi, bạn có rất nhiều quyền kiểm soát và độ chính xác để tinh chỉnh các hành vi cụ thể cho các cơ sở dữ liệu riêng lẻ. Đối với một số khách hàng, các giới hạn đối với kiểm soát cấp độ phiên bản có thể có tác động tiêu cực, trong khi những khách hàng khác sẽ coi đó là một lợi ích.
Đối với các công ty có cơ sở dữ liệu cho mỗi khách hàng, cần sự tách biệt hoàn toàn, cơ sở dữ liệu đó được tích hợp vào Cơ sở dữ liệu SQL Azure. Đối với những người cần các khả năng cấp phiên bản của SQL Server nhưng muốn tận dụng lợi thế của việc cung cấp PaaS của Microsoft, có Azure SQL Managed Instance, được cung cấp phạm vi phiên bản. Mục tiêu là có khả năng tương thích 100% diện tích bề mặt với SQL Server; do đó, bạn có thể đặt bộ nhớ máy chủ tối thiểu và tối đa, bật tối ưu hóa cho khối lượng công việc adhoc và thay đổi cả MAXDOP và ngưỡng chi phí cho song song. Tempdb trên Phiên bản được quản lý đã có nhiều tệp, nhưng bạn có thể thêm nhiều tệp hơn và tăng kích thước mặc định. Theo nhiều cách, nó thực sự giống như cài đặt đầy đủ SQL Server.
Điều chỉnh truy vấn
Một điểm khác biệt giữa Cơ sở dữ liệu Azure SQL và SQL Server là Cửa hàng truy vấn được bật theo mặc định trong Cơ sở dữ liệu Azure SQL. Bạn có thể tắt Cửa hàng truy vấn, nhưng sau đó bạn giới hạn các công cụ Hiệu suất thông minh trong Cổng Azure sử dụng nó. Cửa hàng truy vấn là một tính năng cung cấp thông tin chi tiết về hiệu suất truy vấn và lựa chọn kế hoạch. Query Store cũng ghi lại lịch sử các truy vấn, kế hoạch và thống kê thời gian chạy để bạn có thể xem lại những gì đang diễn ra. Bạn có muốn biết truy vấn nào có thời gian biên dịch lại cao nhất, thời gian thực thi, số lần thực thi, mức sử dụng CPU, mức sử dụng bộ nhớ, số lần đọc / ghi vật lý nhiều nhất và hơn thế nữa? Cửa hàng truy vấn có thông tin đó. Đối với SQL Server, bạn phải bật tính năng này trên mỗi cơ sở dữ liệu. Nếu bạn chưa quen với Query Store, đồng nghiệp của tôi Erin Stellato có một khóa học ba giờ về Pluralsight sẽ giúp bạn bắt đầu.
Danh mục công cụ Hiệu suất Thông minh có bốn tính năng. Thứ nhất, tổng quan về hiệu suất cung cấp tóm tắt về hiệu suất cơ sở dữ liệu tổng thể của bạn bằng cách liệt kê 5 truy vấn hàng đầu theo mức tiêu thụ CPU, bất kỳ đề xuất nào từ điều chỉnh tự động, hoạt động điều chỉnh và cài đặt điều chỉnh tự động hiện tại. Trang đích này để cung cấp cho bạn cái nhìn sơ lược về hiệu suất của bạn.
Thứ hai, tùy chọn đề xuất hiệu suất sẽ liệt kê bất kỳ đề xuất hiện tại nào cho việc tạo chỉ mục hoặc nếu bất kỳ chỉ mục nào nên bị loại bỏ. Nếu bất kỳ hành động nào gần đây đã được hoàn thành, bạn cũng sẽ thấy lịch sử.
Thứ ba, Query Performance Insight là nơi bạn có thể tìm thấy cái nhìn sâu sắc hơn về mức tiêu thụ tài nguyên của mình bằng cách xem 5 truy vấn hàng đầu theo CPU, Data I / O hoặc Log I / O. 5 truy vấn hàng đầu được mã hóa bằng màu sắc để bạn có thể nhanh chóng xem phần trăm tiêu thụ tổng thể một cách trực quan. Bạn có thể nhấp vào id truy vấn để biết thêm chi tiết bao gồm cả văn bản SQL. Ngoài ra còn có một tab truy vấn đang chạy dài. Tôi thực sự thích rằng Microsoft đã đưa một tính năng như thế này vào Cổng Azure miễn phí. Nó cung cấp giá trị bằng cách cung cấp cho khách hàng một cổng thông tin để xem các truy vấn vi phạm hàng đầu. Điều tôi thấy thách thức ở đây là có một cách để xem đường cơ sở tổng thể để so sánh ngày này qua ngày khác, tuần này sang tuần khác và tháng trước. Tuy nhiên, để phân tích nhanh và tổng quan, Thông tin chi tiết về hiệu suất truy vấn rất hữu ích.
Tính năng cuối cùng trong danh mục này là điều chỉnh tự động. Đây là nơi bạn có thể định cấu hình kế hoạch buộc, tạo chỉ mục và thả cài đặt chỉ mục. Bạn có thể buộc bật, tắt hoặc chọn kế thừa từ máy chủ. Kế hoạch lực lượng cho phép Azure chọn những gì nó cảm thấy sẽ tốt hơn trong số các kế hoạch thực thi cho các truy vấn hồi quy. Tính năng này cũng tồn tại trong SQL Server 2017 Enterprise Edition dưới dạng sửa chữa kế hoạch tự động. Một số DBA cảm thấy lo lắng khi nghe về các tính năng điều chỉnh tự động, vì họ lo sợ nó có thể thay thế nhu cầu sử dụng DBA trong tương lai. Tôi luôn muốn đặt câu hỏi, “Bạn dành bao nhiêu thời gian mỗi ngày để chủ động điều chỉnh các truy vấn?”. Phản hồi áp đảo là mọi người thực sự có thể dành rất ít thời gian để chủ động điều chỉnh và hầu hết phản hồi rằng thời gian duy nhất họ thực sự 'điều chỉnh' là sau khi phát hành mã hoặc khi người dùng bắt đầu phàn nàn.
Ngoài các công cụ tích hợp sẵn và có giá trị sử dụng Cửa hàng truy vấn, các DMV cũng luôn sẵn có. Glenn Berry có toàn bộ bộ sưu tập các tập lệnh chỉ dành cho Cơ sở dữ liệu Azure SQL mà bạn có thể sử dụng. Một DMV cụ thể mà tôi muốn gọi là sys.dm_os_wait_stats. Điều này sẽ kéo từ cấp máy chủ, vì vậy nếu bạn thực sự muốn xem số liệu thống kê chờ cho cấp cơ sở dữ liệu, bạn sẽ cần sử dụng sys.dm_db_wait_stats để thay thế.
Phần cứng - Chia tỷ lệ
Một lĩnh vực khác cần xem xét khi xem xét hiệu suất với Cơ sở dữ liệu Azure SQL là phần cứng bên dưới. Cơ sở dữ liệu Azure SQL được định giá bởi Đơn vị giao dịch cơ sở dữ liệu (DTU) và vCores. DTU là một thước đo kết hợp giữa CPU, bộ nhớ và I / O, và có ba cấp; Cơ bản, Tiêu chuẩn và Cao cấp. Cơ bản chỉ có 5 DTU, Tiêu chuẩn dao động từ 10-3.000 DTU và Cao cấp dao động từ 125-4.000 DTU. Đối với các cấp dựa trên vCore, chúng tôi có Mục đích Chung và Trọng yếu Kinh doanh, từ 1-80 vCore.
Trong mô hình DTU, Basic nên được xem xét để phát triển và thử nghiệm. Nó chỉ có thời gian lưu giữ sao lưu 7 ngày nên tôi sẽ không coi nó là khả thi đối với bất kỳ dữ liệu sản xuất nào. Tiêu chuẩn phù hợp với nhu cầu CPU thấp, trung bình và cao với nhu cầu I / O trung bình đến thấp. Tầng Cơ bản và Tiêu chuẩn cung cấp 2,5 IOPS trên mỗi DTU với 5ms (đọc), 10ms (ghi). Cấp Premium dành cho nhu cầu CPU từ trung bình đến cao và I / O cao cung cấp 48 IOPS mỗi DTU với 2ms (đọc / ghi). Cấp Premium có bộ nhớ có mức độ nhanh hơn so với tiêu chuẩn đó. Trong mô hình vCore, bạn có bộ xử lý Gen4 cung cấp 7GB RAM cho mỗi lõi vật lý và bộ xử lý Gen 5 cung cấp 5,1 GB RAM cho mỗi lõi logic. Từ góc độ I / O Mục đích chung cung cấp 500 IOPS trên mỗi vCore với mức tối đa là 7.000. Business Critical cung cấp 5.000 IOPS mỗi lõi với tối đa 200.000.
Tóm tắt
Cơ sở dữ liệu Azure SQL là tuyệt vời cho những hệ thống cần cách ly cơ sở dữ liệu trong khi Azure SQL Managed Instance là tuyệt vời cho những môi trường mà bạn cần khả năng tương thích cấp phiên bản (hỗ trợ truy vấn cơ sở dữ liệu chéo). Khi bạn cần điều chỉnh Cơ sở dữ liệu Azure SQL, bạn phải thực hiện mọi việc ở cấp cơ sở dữ liệu vì các tùy chọn cấp phiên bản bị giới hạn, vì vậy cài đặt cấu hình phạm vi cơ sở dữ liệu là tùy chọn tinh chỉnh của bạn. Với việc khắc phục sự cố các truy vấn hoạt động kém, bạn có một số công cụ tích hợp sẵn để trợ giúp, bao gồm Cửa hàng truy vấn và hầu hết các tập lệnh điều chỉnh thông thường của bạn sẽ hoạt động. Bạn có thể thấy mình vẫn cần thêm, chẳng hạn như đường cơ sở, thêm dữ liệu lịch sử và khả năng tạo điều kiện tư vấn để giúp bạn quản lý khối lượng công việc của mình. Đây là nơi mà các giải pháp giám sát mạnh mẽ như SentryOne DB Sentry có thể trợ giúp.
Khi tất cả những cách khác không thành công hoặc khối lượng công việc của bạn chỉ đơn giản là tăng vượt quá tài nguyên phần cứng hiện tại của bạn, hãy mở rộng quy mô lên cấp cao hơn.