explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 48CS

Settings
# exclusive inclusive rows x rows loops node
1. 0.005 1.192 ↑ 1.0 25 1

Limit (cost=1.40..476.45 rows=25 width=223) (actual time=0.757..1.192 rows=25 loops=1)

  • Output: (enumtostring('MessageStatusEnum'::character varying, m."Status")), m0."NextAttemptDate", (enumtostring('MessageTypeEnum'::character varying, m."MessageType")), (CASE WHEN (m0."ID" IS NULL) THEN m."NumAttempts" ELSE m0."NumAttempts" END), ((d."ID" IS NULL)), d."Code", d."Name", (enumtostring('ReceiverTypeEnum'::character varying, m."SendToReceiverType")), m."SendToAddress", t0."Name", m."ID", m."CreatedDate
  • Buffers: shared hit=233 dirtied=1
2. 0.807 1.187 ↑ 2,701.2 25 1

Nested Loop Left Join (cost=1.40..1,283,174.33 rows=67,529 width=223) (actual time=0.756..1.187 rows=25 loops=1)

  • Output: enumtostring('MessageStatusEnum'::character varying, m."Status"), m0."NextAttemptDate", enumtostring('MessageTypeEnum'::character varying, m."MessageType"), CASE WHEN (m0."ID" IS NULL) THEN m."NumAttempts" ELSE m0."NumAttempts" END, (d."ID" IS NULL), d."Code", d."Name", enumtostring('ReceiverTypeEnum'::character varying, m."SendToReceiverType"), m."SendToAddress", t0."Name", m."ID", m."CreatedDate
  • Inner Unique: true
  • Join Filter: (t."TicketFunctionID" = t0."ID")
  • Buffers: shared hit=233 dirtied=1
3. 0.021 0.380 ↑ 2,701.2 25 1

Nested Loop Left Join (cost=1.40..1,225,210.83 rows=67,529 width=180) (actual time=0.098..0.380 rows=25 loops=1)

  • Output: m."Status", m."MessageType", m."NumAttempts", m."SendToReceiverType", m."SendToAddress", m."ID", m."CreatedDate", m0."NextAttemptDate", m0."ID", m0."NumAttempts", d."ID", d."Code", d."Name", t."TicketFunctionID
  • Inner Unique: true
  • Buffers: shared hit=232 dirtied=1
4. 0.005 0.209 ↑ 2,701.2 25 1

Nested Loop Left Join (cost=0.98..1,155,142.95 rows=67,529 width=180) (actual time=0.073..0.209 rows=25 loops=1)

  • Output: m."Status", m."MessageType", m."NumAttempts", m."SendToReceiverType", m."SendToAddress", m."ID", m."CreatedDate", m."TicketID", m0."NextAttemptDate", m0."ID", m0."NumAttempts", d."ID", d."Code", d."Name
  • Inner Unique: true
  • Buffers: shared hit=132 dirtied=1
5. 0.026 0.154 ↑ 2,701.2 25 1

Nested Loop Left Join (cost=0.70..1,135,168.56 rows=67,529 width=132) (actual time=0.062..0.154 rows=25 loops=1)

  • Output: m."Status", m."MessageType", m."NumAttempts", m."SendToReceiverType", m."SendToAddress", m."ID", m."CreatedDate", m."SendToDestinationID", m."TicketID", m0."NextAttemptDate", m0."ID", m0."NumAttempts
  • Inner Unique: true
  • Buffers: shared hit=90 dirtied=1
6. 0.078 0.078 ↑ 2,701.2 25 1

Index Scan Backward using "IX_Messages_CreatedDate" on public."Messages" m (cost=0.43..1,115,891.99 rows=67,529 width=104) (actual time=0.038..0.078 rows=25 loops=1)

  • Output: m."ID", m."LastModifyDateTime", m."OneCallCenterID", m."Status", m."MessageType", m."Source", m."CreatedDate", m."Content", m."SendToDestinationID", m."TicketID", m."SendToAddress", m."SendToReceiverType", m."DeliveryDate", m."NumAttempts", m."ExternalMessageID", m."ExternalProtocol", m."BroadcastMessageID
  • Filter: ((m."DeliveryDate" >= '2020-07-21 00:00:00-04'::timestamp with time zone) AND (m."DeliveryDate" < '2020-07-27 00:00:00-04'::timestamp with time zone) AND (m."Status" = 1))
  • Rows Removed by Filter: 7
  • Buffers: shared hit=26
7. 0.050 0.050 ↓ 0.0 0 25

Index Scan using "IX_MessageQueue_MessageID" on public."MessageQueue" m0 (cost=0.27..0.29 rows=1 width=44) (actual time=0.002..0.002 rows=0 loops=25)

  • Output: m0."ID", m0."LastModifyDateTime", m0."MessageID", m0."NextAttemptDate", m0."NumAttempts", m0."SendPriority", m0."ManualCallPersonServiceAreaID
  • Index Cond: (m0."MessageID" = m."ID")
  • Buffers: shared hit=64 dirtied=1
8. 0.050 0.050 ↑ 1.0 1 25

Index Scan using "PK_Destinations" on public."Destinations" d (cost=0.28..0.30 rows=1 width=64) (actual time=0.002..0.002 rows=1 loops=25)

  • Output: d."ID", d."Code", d."IsActive", d."IsDeleted", d."LastModifyDateTime", d."Name", d."OneCallCenterID", d."CurrentDeviceID", d."MemberID", d."SendEnabled", d."SendSingleCopy", d."ServiceProviderID", d."EODAuditMessageFormatID", d."TicketMessageFormatID
  • Index Cond: (d."ID" = m."SendToDestinationID")
  • Buffers: shared hit=42
9. 0.150 0.150 ↑ 1.0 1 25

Index Scan using "PK_Tickets" on public."Tickets" t (cost=0.42..1.04 rows=1 width=32) (actual time=0.006..0.006 rows=1 loops=25)

  • Output: t."ID", t."AgentPersonID", t."ExpiresDate", t."LastModifyDateTime", t."OneCallCenterID", t."Status", t."TakenStartDate", t."TicketNumber", t."TicketTypeID", t."Version", t."WorkStartDate", t."LocateTypeID", t."ParentTicketID", t."TicketLinkID", t."IsCanceled", t."ActualGeocodeType", t."TakenEndDate", t."IsDamage", t."TicketFunctionID", t."ResponseDueDate", t."DateCalcSeedDate", t."CreateSource", t."FormID", t."ChildTicketNumber", t."ParentTicketNumber", t."IsMeetRequested", t."DigSiteBounds", t."DigSiteCentroid", t."LockedByPersonID", t."LockedDate", t."QAStatus", t."CopyOfTicketNumber", t."ReferenceTicketNumber", t."IsWorkComplete
  • Index Cond: (t."ID" = m."TicketID")
  • Buffers: shared hit=100
10. 0.000 0.000 ↑ 8.0 1 25

Materialize (cost=0.00..1.12 rows=8 width=26) (actual time=0.000..0.000 rows=1 loops=25)

  • Output: t0."Name", t0."ID
  • Buffers: shared hit=1
11. 0.006 0.006 ↑ 8.0 1 1

Seq Scan on "Configuration"."TicketFunctions" t0 (cost=0.00..1.08 rows=8 width=26) (actual time=0.006..0.006 rows=1 loops=1)

  • Output: t0."Name", t0."ID
  • Buffers: shared hit=1
Planning time : 1.192 ms
Execution time : 1.271 ms