

 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/). 

# Exemplos de gravações simultâneas
<a name="r_Serializable_isolation_example"></a>

Os seguintes exemplos de pseudocódigo demonstram como as transações continuam ou aguardam ao serem executadas simultaneamente.

## Exemplos de gravação simultânea com isolamento serializável
<a name="r_Serializable_isolation_example-serializable"></a>

### Operações COPY simultâneas na mesma tabela com isolamento serializável
<a name="r_Serializable_isolation_example-concurrent-copy-operations-into-the-same-table"></a>

A transação 1 copia linhas na tabela LISTING: 

```
begin;
copy listing from ...;
end;
```

A transação 2 começa simultaneamente em uma sessão separada e tenta copiar mais linhas na tabela LISTING. A transação 2 deve aguardar até que a transação 1 libere o bloqueio de gravação na tabela LISTING para então proceder. 

```
begin;
[waits]
copy listing from ;
end;
```

O mesmo comportamento ocorreria se uma ou ambas as transações contivessem um comando INSERT em vez de um comando COPY.

### Operações DELETE simultâneas da mesma tabela com isolamento serializável
<a name="r_Serializable_isolation_example-concurrent-delete-operations-from-the-same-table"></a>

A transação 1 exclui linhas de uma tabela: 

```
begin;
delete from listing where ...;
end;
```

A transação 2 começa simultaneamente e tenta excluir linhas da mesma tabela. Ela terá êxito, pois ela espera até que a transação 1 seja concluída antes de tentar excluir linhas.

```
begin
[waits]
delete from listing where ;
end;
```

O mesmo comportamento ocorreria se uma ou ambas as transações contivessem um comando UPDATE na mesma tabela em vez de um comando DELETE.

### Transações simultâneas com uma combinação de operações de leitura e de gravação com isolamento serializável
<a name="r_Serializable_isolation_example-concurrent-transactions"></a>

Neste exemplo, a transação 1 exclui linhas da tabela USERS, recarrega a tabela, executa uma consulta COUNT(\$1) e ANALYZE antes de confirmar: 

```
begin;
delete one row from USERS table;
copy ;
select count(*) from users;
analyze ;
end;
```

Enquanto isso, a transação 2 começa. Essa transação tenta copiar linhas adicionais na tabela USERS, analisar a tabela e executar a mesma consulta COUNT (\$1) da primeira transação:

```
begin;
[waits]
copy users from ...;
select count(*) from users;
analyze;
end;
```

A segunda transação terá êxito, pois ela deve aguardar a conclusão da primeira. Sua consulta COUNT retornará a contagem com base no carregamento que foi concluído.

## Exemplos de gravação simultânea com isolamento de snapshot
<a name="r_Serializable_isolation_example-snapshot"></a>

### Operações COPY simultâneas na mesma tabela com isolamento de snapshot
<a name="r_Serializable_isolation_example-concurrent-copy-operations-into-the-same-table-snapshot"></a>

A transação 1 copia linhas na tabela LISTING:

```
begin;
copy listing from ...;
end;
```

A transação 2 começa simultaneamente em uma sessão separada e tenta copiar mais linhas na tabela LISTING. A Transação 2 pode progredir simultaneamente até que qualquer transação precise gravar dados na tabela de destino `listing`, momento em que as transações serão executadas sequencialmente. 

```
begin; 
//When the COPY statement from T1 needs to write data to the table, the COPY statement from T2 waits.
copy listing from ...; 
end;
```

O mesmo comportamento ocorreria se uma ou ambas as transações contivessem um comando INSERT em vez de um comando COPY.

### Operações DELETE simultâneas da mesma tabela com isolamento de snapshot
<a name="r_Serializable_isolation_example-concurrent-delete-operations-from-the-same-table-snapshot"></a>

As operações simultâneas DELETE ou UPDATE da mesma tabela com isolamento de snapshot são executadas da mesma forma que as operações executadas com isolamento serializável.

### Transações simultâneas com uma combinação de operações de leitura e de gravação com isolamento de snapshot
<a name="r_Serializable_isolation_example-concurrent-transactions-snapshot"></a>

As transações simultâneas que são executadas com combinações de operações com isolamento de snapshot são executadas da mesma forma que as transações com combinações de operações executadas com isolamento serializável.