Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Cancelar uma consulta

Modo de foco
Cancelar uma consulta - Amazon Redshift

Se você executar uma consulta que esteja demorando muito ou consumindo uma quantidade excessiva de recursos, cancele-a. Por exemplo, crie uma lista de vendedores de ingressos que inclua o nome do vendedor e a quantidade de ingressos vendidos. A consulta a seguir seleciona dados da tabela SALES e da tabela USERS e une as duas tabelas, correspondendo SELLERID e USERID na cláusula WHERE.

SELECT sellerid, firstname, lastname, sum(qtysold) FROM sales, users WHERE sales.sellerid = users.userid GROUP BY sellerid, firstname, lastname ORDER BY 4 desc;

O resultado é parecido com o mostrado a seguir.

sellerid | firstname | lastname | sum ----------+-----------+----------+------ 48950 | Nayda | Hood | 184 19123 | Scott | Simmons | 164 20029 | Drew | Mcguire | 164 36791 | Emerson | Delacruz | 160 13567 | Imani | Adams | 156 9697 | Dorian | Ray | 156 41579 | Harrison | Durham | 156 15591 | Phyllis | Clay | 152 3008 | Lucas | Stanley | 148 44956 | Rachel |Villarreal| 148
nota

Essa é uma consulta complexa. Para este tutorial, não se preocupe em saber como a consulta foi criada.

A consulta anterior é executada em segundos e retornará 2.102 linhas.

Suponha que você se esqueça de inserir a cláusula WHERE.

SELECT sellerid, firstname, lastname, sum(qtysold) FROM sales, users GROUP BY sellerid, firstname, lastname ORDER BY 4 desc;

O conjunto de resultados inclui todas as linhas da tabela SALES multiplicadas por todas as linhas da tabela USERS (49989*3766). Isso é chamado de junção cartesiana, e não é uma prática recomendada. O resultado é mais de 188 milhões linhas e o tempo de execução é bastante longo.

Para cancelar uma consulta em execução, use o comando CANCEL com o ID da sessão da consulta. Com o Editor de Consultas do Amazon Redshift v2, é possível cancelar uma consulta escolhendo o botão Cancelar enquanto a consulta está em execução.

Para localizar o ID da sessão, inicie uma nova sessão e consulte a tabela STV_RECENTS, conforme mostrado na etapa anterior. O exemplo a seguir mostra como você pode fazer os resultados mais legíveis. Para fazer isso, use a função TRIM para cortar os espaços à direita e mostrar somente os 20 primeiros caracteres da consulta.

Para determinar o ID da sessão de uma consulta em execução, execute a declaração SELECT a seguir.

SELECT user_id, session_id, start_time, query_text FROM sys_query_history WHERE status='running';

O resultado é parecido com o mostrado a seguir.

user_id | session_id | start_time | query_text ---------+---------------+----------------------------+---------------------------------------------------------------- 100 | 1073791534 | 2024-03-19 22:26:21.205739 | SELECT user_id, session_id, start_time, query_text FROM ...

Para cancelar a consulta com o ID de sessão 1073791534, execute o comando a seguir.

CANCEL 1073791534;
nota

O comando CANCEL não interrompe uma transação. Para parar ou reverter uma transação, use o comando ABORT ou ROLLBACK. Para cancelar uma consulta associada a uma transação, primeiro cancele a consulta e pare a transação.

Se a consulta que você cancelou estiver associada a uma transação, use o comando ABORT ou ROLLBACK para cancelar a transação e descartar quaisquer alterações feitas nos dados:

ABORT;

A menos que esteja conectado como um superusuário, você só pode cancelar suas próprias consultas. Os superusuários podem cancelar todas as consultas.

Se sua ferramenta de consulta não oferece suporte à execução de consultas simultaneamente, inicie outra sessão para cancelar a consulta.

Para ter mais informações sobre cancelamento de uma consulta, confira CANCEL no Guia do desenvolvedor de banco de dados do Amazon Redshift.

Cancelar uma consulta usando a fila de superusuários

Se a sua sessão atual tiver muitas consultas sendo executadas simultaneamente, talvez não seja possível executar o comando CANCEL até que uma outra consulta seja concluída. Nesse caso, execute o comando CANCEL usando uma fila de consulta de gerenciamento de workload diferente.

Usando o gerenciamento de workload, você pode executar consultas em diferentes filas de consulta para que não precise esperar a conclusão de outra consulta. O gerenciador de workload cria uma fila separada, chamada a fila de superusuários, que você pode usar quando estiver solucionando problemas. Para usar a fila Superusuário, faça logon em um superusuário e defina o grupo de consulta como “superusuário” usando o comando SET. Depois de executar os comandos, redefina o grupo de consultas usando o comando RESET.

Para cancelar uma consulta usando a fila de superusuários, execute estes comandos:

SET query_group TO 'superuser'; CANCEL 1073791534; RESET query_group;
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.