sql >> Databasteknik >  >> RDS >> Sqlserver

Kontrollera hur många postförsändelser som finns i kön i Databas Mail i SQL Server (T-SQL)

I SQL Server kan du använda sysmail_help_queue_sp lagrad procedur på msdb databas för att se hur många försändelser som finns i kön, status för kön och när den senast aktiverades.

Det finns två typer av köer:e-postkön och statuskön.

Du kan också returnera kontoinformation baserat på kötypen.

Returnera alla objekt i kön

För att returnera alla objekt från kön, kör helt enkelt den lagrade proceduren utan några parametrar.

EXEC msdb.dbo.sysmail_help_queue_sp;

Resultat (med vertikal utdata):

-[ 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

Jag har listat resultaten med vertikal utdata så att du inte behöver rulla i sidled för att se alla kolumner.

I mitt fall finns det två postförsändelser i kön, så två rader returneras.

last_empty_rowset_time kolumnen visar datum och tid då kön senast var tom.

last_activated_time kolumnen visar datum och tid då kön senast aktiverades.

Observera att sysmail_help_queue_sp lagrad procedur finns i msdb databas och ägs av dbo schema. Därför måste du använda tredelad namngivning om msdb är inte den aktuella databasen.

Filtrera efter kötyp

Det finns som sagt två kötyper (mail och status). Du kan också returnera varor baserat på deras kötyp.

För att göra detta, ange @queue_type parameter och ange önskad kötyp.

För att returnera alla objekt från e-posten kö:

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

Resultat:

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

För att returnera alla objekt från status kö:

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

Resultat:

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. Huvudsaklig användning av sys.dm_os_wait_stats

  2. varbinär till sträng på SQL Server

  3. MySQL Hur infogar man i en tabell med en SELECT-underfråga som returnerar flera rader?

  4. Aktivera Databas Mail i SQL Server (T-SQL)