Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Ulepszenia Service Broker w SQL Server 2016

Przed zbliżającym się w tym tygodniu PASS Summit, a na pewno dziesiątkami ogłoszeń dotyczących SQL Server 2016, pomyślałem, że podzielę się ciekawostką o funkcji, która od jakiegoś czasu była ukryta w CTP, ale Microsoft nie miał szansy do opublikowania:Dodatkowe operacje konserwacyjne dostępne dla kolejek Service Broker.

Remus Rusanu (@rusanu) omówił w tym poście problemy, jakie może powodować fragmentacja przy dużej głośności w kolejkach:

  • Radzenie sobie z dużymi kolejkami

Tam ujawnił, że faktycznie można użyć DBCC REINDEX w stosunku do tabeli wewnętrznej, ale trzeba było określić nazwę tabeli wewnętrznej i połączyć się przez DAC. Niezupełnie wygodne.

Teraz, prawie sześć lat później, jeśli uważasz, że masz problemy z fragmentacją z powodu dużego obciążenia, możesz wymusić indeks REORGANIZE lub REBUILD operacje na wewnętrznej tabeli kolejki, odwołując się bezpośrednio do kolejki:

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

Skąd wiesz, ile masz fragmentacji w kolejce? Cóż, dodano kolejki jako dozwolony obiekt do przekazania do sys.dm_db_index_physical_stats też:

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

I otrzymujesz podobne dane wyjściowe do tego samego zapytania dla zwykłej tabeli.

Dodatkowo możesz przenieść kolejkę do innej grupy plików; ta operacja odbuduje wewnętrzną tabelę kolejek i wszystkie jej indeksy na nowej grupie plików:

ALTER QUEUE dbo.myQueue MOVE TO [MY_FILEGROUP];

Te nowe możliwości powinny umożliwić większą skalowalność rozwiązań Service Broker.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Popraw wydajność zapytań SQL Server na dużych tabelach

  2. Czas zbierania alarmów w chmurze Spotlight

  3. 6 sposobów konwersji ciągu na wartość daty/godziny w SQL Server

  4. Rozmyte dopasowanie przy użyciu T-SQL

  5. Jak używać zmiennej tabeli w dynamicznej instrukcji sql?