

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# SVCS\_EXPLAIN
<a name="r_SVCS_EXPLAIN"></a>

Exibe o plano EXPLAIN para uma consulta que foi enviada para execução.

**nota**  
Visualizações do sistema com o prefixo SVCS fornecem detalhes sobre consultas nos clusters principal e de escalabilidade da simultaneidade. As visualizações são semelhantes às tabelas com o prefixo STL, exceto que as tabelas STL fornecem informações somente para consultas executadas no cluster principal.

SVCS\_EXPLAIN permanece visível para todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para obter mais informações, consulte [Visibilidade de dados em tabelas e visualizações de sistema](cm_chap_system-tables.md#c_visibility-of-data).

## Colunas da tabela
<a name="r_SVCS_EXPLAIN-table-columns"></a>


| Nome da coluna  | Tipo de dados  | Descrição  | 
| --- | --- | --- | 
| userid | integer | O ID do usuário que gerou a entrada. | 
| consultar | integer | ID da consulta. A coluna de consulta pode ser usada para unir outras tabelas e exibições do sistema. | 
| nodeid  | integer  | O identificador do nó de plano, onde o nó mapeia para uma ou mais etapas na execução da consulta.  | 
| parentid  | integer  | O identificador do nó de plano para um nó pai. Um nó pai tem um certo número de nós filho. Por exemplo, uma junção de mesclagem é o pai das varreduras em tabelas unidas.  | 
| plannode  | character(400)  | O texto do nó de saída de EXPLAIN. Os nós de plano que se referem à execução em nós de computação recebem o prefixo XN na saída EXPLAIN.  | 
| info  | character(400)  | As informações sobre o qualificador e o filtro do nó de plano. Por exemplo, as condições de junção e as restrições da cláusula WHERE estão incluídas nesta coluna.  | 

## Consultas de exemplo
<a name="r_SVCS_EXPLAIN-sample-queries"></a>

Considere a seguinte saída de EXPLAIN para uma consulta de junção agregada: 

```
explain select avg(datediff(day, listtime, saletime)) as avgwait
from sales, listing where sales.listid = listing.listid;
                                  QUERY PLAN
                                  
------------------------------------------------------------------------------
 XN Aggregate  (cost=6350.30..6350.31 rows=1 width=16)
  ->  XN Hash Join DS_DIST_NONE  (cost=47.08..6340.89 rows=3766 width=16)
        Hash Cond: ("outer".listid = "inner".listid)
        -> XN Seq Scan on listing  (cost=0.00..1924.97 rows=192497 width=12)
        -> XN Hash  (cost=37.66..37.66 rows=3766 width=12)
              -> XN Seq Scan on sales  (cost=0.00..37.66 rows=3766 width=12)
(6 rows)
```

Se você executar essa consulta e o ID de consulta for 10, use a tabela SVCS\_EXPLAIN para visualizar os mesmos tipos de informações que o comando EXPLAIN retorna: 

```
select query,nodeid,parentid,substring(plannode from 1 for 30),
substring(info from 1 for 20) from svcs_explain
where query=10 order by 1,2;

query| nodeid |parentid|           substring            |    substring
-----+--------+--------+--------------------------------+-------------------
10   |      1 |      0 |XN Aggregate  (cost=6717.61..6  |
10   |      2 |      1 |  -> XN Merge Join DS_DIST_NO| Merge Cond:("outer"
10   |      3 |      2 |       -> XN Seq Scan on lis |
10   |      4 |      2 |       -> XN Seq Scan on sal |
(4 rows)
```

Considere a seguinte consulta: 

```
select event.eventid, sum(pricepaid)
from event, sales
where event.eventid=sales.eventid
group by event.eventid order by 2 desc;

eventid |   sum
--------+----------
    289 | 51846.00
   7895 | 51049.00
   1602 | 50301.00
    851 | 49956.00
   7315 | 49823.00
...
```

 Se o ID da consulta é 15, a consulta de tabela do sistema a seguir retorna os nós de plano que foram executados. Nesse caso, a ordem dos nós é invertida para mostrar a ordem real de execução: 

```
select query,nodeid,parentid,substring(plannode from 1 for 56)
from svcs_explain where query=15 order by 1, 2 desc;

query|nodeid|parentid|                          substring
-----+------+--------+--------------------------------------------------------
15   |    8 |      7 |                                -> XN Seq Scan on eve
15   |    7 |      5 |                          -> XN Hash(cost=87.98..87.9
15   |    6 |      5 |                          -> XN Seq Scan on sales(cos
15   |    5 |      4 |                    -> XN Hash Join DS_DIST_OUTER(cos
15   |    4 |      3 |              -> XN HashAggregate(cost=862286577.07..
15   |    3 |      2 |        -> XN Sort(cost=1000862287175.47..10008622871
15   |    2 |      1 |  -> XN Network(cost=1000862287175.47..1000862287197.
15   |    1 |      0 |XN Merge(cost=1000862287175.47..1000862287197.46 rows=87
(8 rows)
```

A consulta a seguir recupera os IDs de consulta de todos os planos de consulta que contêm uma função de janela: 

```
select query, trim(plannode) from svcs_explain
where plannode like '%Window%';

query|                                     btrim
-----+------------------------------------------------------------------------
26   | -> XN Window(cost=1000985348268.57..1000985351256.98 rows=170 width=33)
27   | -> XN Window(cost=1000985348268.57..1000985351256.98 rows=170 width=33)
(2 rows)
```