sql >> Database >  >> RDS >> Sqlserver

Controleer hoeveel e-mailitems in de wachtrij staan ​​in Database Mail in SQL Server (T-SQL)

In SQL Server kunt u de sysmail_help_queue_sp opgeslagen procedure op de msdb database om te zien hoeveel e-mailitems zich in de wachtrij bevinden, de status van de wachtrij en wanneer deze voor het laatst is geactiveerd.

Er zijn twee soorten wachtrijen:de e-mailwachtrij en de statuswachtrij.

Je kunt ook accountgegevens retourneren op basis van het wachtrijtype.

Alle items in de wachtrij retourneren

Om alle items uit de wachtrij terug te halen, voert u gewoon de opgeslagen procedure uit zonder parameters.

EXEC msdb.dbo.sysmail_help_queue_sp;

Resultaat (met verticale uitvoer):

-[ RECORD 1 ]-------------------------
queue_type             | mail
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637
-[ RECORD 2 ]-------------------------
queue_type             | status
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637

Ik heb de resultaten weergegeven met verticale uitvoer, zodat u niet zijwaarts hoeft te scrollen om alle kolommen te zien.

In mijn geval staan ​​er twee e-mailitems in de wachtrij en worden er dus twee rijen geretourneerd.

De last_empty_rowset_time kolom geeft de datum en tijd weer waarop de wachtrij voor het laatst leeg was.

De last_activated_time kolom geeft de datum en tijd weer waarop de wachtrij voor het laatst is geactiveerd.

Merk op dat de sysmail_help_queue_sp opgeslagen procedure staat in de msdb database en is eigendom van de dbo schema. Daarom moet u een driedelige naamgeving gebruiken als msdb is niet de huidige database.

Filteren op wachtrijtype

Zoals vermeld, zijn er twee soorten wachtrijen (e-mail en status). Je kunt items ook retourneren op basis van hun wachtrijtype.

Geef hiervoor de @queue_type . op parameter en specificeer uw gewenste wachtrijtype.

Om alle items uit de mail te retourneren wachtrij:

EXEC msdb.dbo.sysmail_help_queue_sp
    @queue_type = 'mail';

Resultaat:

queue_type             | mail
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637

Om alle items van de status te retourneren wachtrij:

EXEC msdb.dbo.sysmail_help_queue_sp
    @queue_type = 'status';

Resultaat:

queue_type             | status
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637

  1. MySQL-prestaties:MySQL/MariaDB-indexen

  2. Een Oracle Associative Array gebruiken in een SQL-query

  3. Stel een standaard openbaar profiel in voor databasemail (SSMS)

  4. Selecteer rijen die niet aanwezig zijn in een andere tabel