Menjelang PASS Summit minggu ini, dan tentunya lusinan pengumuman seputar SQL Server 2016, saya pikir saya akan membagikan sedikit fitur yang telah disembunyikan di CTP untuk beberapa waktu sekarang, tetapi Microsoft belum memiliki kesempatan untuk mempublikasikan:Operasi pemeliharaan tambahan tersedia untuk antrian Pialang Layanan.
Remus Rusanu (@rusanu) membahas masalah bahwa fragmentasi pada volume tinggi dapat menyebabkan antrian dalam posting ini:
- Menangani Antrean Besar
Di sana, dia mengungkapkan bahwa Anda sebenarnya dapat menggunakan DBCC REINDEX
terhadap tabel internal, tetapi Anda harus menentukan nama tabel internal, dan terhubung melalui DAC. Tidak terlalu nyaman.
Sekarang, hampir enam tahun kemudian, jika Anda yakin mengalami masalah fragmentasi karena beban tinggi, Anda dapat memaksa indeks REORGANIZE
atau REBUILD
operasi terhadap tabel internal antrian dengan merujuk antrian secara langsung:
ALTER QUEUE dbo.myQueue REORGANIZE; -- or ALTER QUEUE dbo.myQueue REBUILD;
Bagaimana Anda tahu berapa banyak fragmentasi yang Anda miliki dalam antrian? Nah, antrian telah ditambahkan sebagai objek yang diizinkan untuk diteruskan ke sys.dm_db_index_physical_stats
, juga:
SELECT * FROM sys.dm_db_index_physical_stats ( DB_ID(), OBJECT_ID(N'dbo.QueryNotificationErrorsQueue'), -1, 0, 'SAMPLED' );
Dan Anda mendapatkan hasil yang mirip dengan interogasi yang sama dari tabel biasa.
Selain itu, Anda dapat memindahkan antrean ke grup file lain; operasi ini akan membangun kembali tabel antrian internal dan semua indeksnya pada filegroup baru:
ALTER QUEUE dbo.myQueue MOVE TO [MY_FILEGROUP];
Kemampuan baru ini seharusnya memungkinkan skalabilitas solusi Service Broker yang lebih besar.