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

Các cải tiến của Service Broker trong SQL Server 2016

Trước Hội nghị thượng đỉnh PASS tuần này, và chắc chắn hàng chục thông báo xung quanh SQL Server 2016, tôi nghĩ rằng tôi sẽ chia sẻ một chút về một tính năng đã bị ẩn trong CTP một thời gian, nhưng Microsoft đã không có cơ hội để công khai:Các hoạt động bảo trì bổ sung có sẵn cho hàng đợi của Nhà môi giới dịch vụ.

Remus Rusanu (@rusanu) đã thảo luận về các vấn đề mà sự phân mảnh ở khối lượng lớn có thể gây ra cho hàng đợi trong bài đăng này:

  • Đối phó với hàng đợi lớn

Tại đó, anh ấy tiết lộ rằng bạn thực sự có thể sử dụng DBCC REINDEX chống lại bảng bên trong, nhưng bạn phải xác định tên bảng bên trong và kết nối qua DAC. Không hoàn toàn thuận tiện.

Bây giờ, gần sáu năm sau, nếu bạn tin rằng bạn đang gặp sự cố phân mảnh do tải cao, bạn có thể buộc chỉ mục REORGANIZE hoặc REBUILD các hoạt động đối với bảng nội bộ của hàng đợi bằng cách tham chiếu trực tiếp đến hàng đợi:

ALTER QUEUE dbo.myQueue REORGANIZE;
-- or
ALTER QUEUE dbo.myQueue REBUILD;

Làm thế nào để bạn biết bạn có bao nhiêu phân mảnh trong một hàng đợi? Chà, hàng đợi đã được thêm làm đối tượng được phép để chuyển tới sys.dm_db_index_physical_stats , quá:

SELECT * FROM sys.dm_db_index_physical_stats
  (
    DB_ID(), 
    OBJECT_ID(N'dbo.QueryNotificationErrorsQueue'), 
    -1, 0, 'SAMPLED'
  );

Và bạn nhận được kết quả tương tự với cùng một cuộc thẩm vấn của một bảng thông thường.

Ngoài ra, bạn có thể di chuyển hàng đợi sang nhóm tệp khác; thao tác này sẽ xây dựng lại bảng hàng đợi nội bộ và tất cả các chỉ mục của nó trên nhóm tệp mới:

ALTER QUEUE dbo.myQueue MOVE TO [MY_FILEGROUP];

Những khả năng mới này sẽ cho phép các giải pháp Service Broker có khả năng mở rộng lớn hơn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo bí danh kiểu dữ liệu do người dùng xác định trong SQL Server bằng T-SQL

  2. Trả về danh sách các trình kích hoạt trong SQL Server

  3. Làm cách nào để loại bỏ tất cả các ký tự không phải chữ cái khỏi chuỗi trong SQL Server?

  4. Định dạng SQL trong SQL Server Management Studio

  5. Chuỗi làm giá trị mặc định cho một cột