Como excluir dados da tabela de forma eficiente?
Sim. TRUNCATE é mais eficiente que DELETE para excluir dados em massa.
Para obter detalhes, consulte TRUNCATE.
Função
TRUNCATE remove rapidamente todas as linhas de uma tabela de banco de dados.
Tem o mesmo efeito que DELETE incondicional, mas TRUNCATE é mais rápido, especialmente para tabelas grandes, porque não verifica tabelas.
Funções
- TRUNCATE TABLE funciona como uma instrução DELETE sem cláusula de WHERE, ou seja, esvaziando uma tabela.
- TRUNCATE TABLE usa menos recursos do sistema e do log de transações.
- DELETE exclui uma linha a cada vez e registra cada exclusão no log de transações.
- TRUNCATE TABLE exclui todas as linhas em uma tabela liberando a página de dados e registra apenas cada liberação da página de dados no log de transações.
- TRUNCATE, DELETE e DROP são diferentes em que:
- TRUNCATE TABLE exclui conteúdo, libera espaço, mas não exclui definições.
- DELETE TABLE exclui conteúdo, mas não exclui definições ou libera espaço.
- DROP TABLE exclui conteúdo e definições e libera espaço.
Exemplos
- Crie uma tabela.
1
CREATE TABLE tpcds.reason_t1 AS TABLE tpcds.reason;
Trunque a tabela.
1
TRUNCATE TABLE tpcds.reason_t1;
Exclua a tabela.
1
DROP TABLE tpcds.reason_t1;
- Crie uma tabela particionada.
1 2 3 4 5 6 7 8 9 10 11 12 13
CREATE TABLE tpcds.reason_p ( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) )PARTITION BY RANGE (r_reason_sk) ( partition p_05_before values less than (05), partition p_15 values less than (15), partition p_25 values less than (25), partition p_35 values less than (35), partition p_45_after values less than (MAXVALUE) );
Insira dados.
1
INSERT INTO tpcds.reason_p SELECT * FROM tpcds.reason;
Trunque a partição p_05_before.
1
ALTER TABLE tpcds.reason_p TRUNCATE PARTITION p_05_before;
Trunque a partição p_15.
1
ALTER TABLE tpcds.reason_p TRUNCATE PARTITION for (13);
Trunque a tabela particionada.
1
TRUNCATE TABLE tpcds.reason_p;
Exclua a tabela.
1
DROP TABLE tpcds.reason_p;
Uso do banco de dados Perguntas frequentes
- Como alterar as colunas de distribuição?
- Como exibir e definir a codificação de caracteres do banco de dados?
- O que devo fazer se o tipo de data for convertido automaticamente para o tipo de carimbo de data/hora durante a criação da tabela?
- Preciso executar VACUUM FULL e ANALYZE em tabelas comuns periodicamente?
- É necessário definir uma chave de distribuição após definir uma chave primária?
- O GaussDB(DWS) é compatível com os procedimentos armazenados do PostgreSQL?
- Quais são tabelas particionadas, partições e chaves de partição?
- Como exportar a estrutura da tabela?
- Como excluir dados da tabela de forma eficiente?
- Como exibir informações de tabela estrangeira?
- Se nenhuma coluna de distribuição for especificada, como os dados serão armazenados?
- Como substituir o resultado nulo por 0?
- Como verificar se uma tabela é armazenada em linha ou em coluna?
- Como consultar as informações sobre tabelas de armazenamento de colunas do GaussDB(DWS)?
- Por que às vezes os índices de consulta do GaussDB(DWS) se tornam inválidos?
- Como usar uma função definida pelo usuário para reescrever a função CRC32()?
- Quais são os esquemas começando com pg_toast_temp* ou pg_temp*?
- Soluções para resultados de consultas inconsistentes do GaussDB(DWS)
- Em quais catálogos do sistema a operação VACUUM FULL não pode ser executada?
- Em quais cenários uma instrução fica "idle in transaction"?
- Como o GaussDB(DWS) implementa a conversão de linha para coluna e de coluna para linha?
- Quais são as diferenças entre restrições únicas e índices únicos?
- What Are the Differences Between Functions and Stored Procedures?
Feedback
Esta página foi útil?
Deixar um comentáriomore