Qual é a maneira mais eficiente de recuperar espaço em disco após excluir muitos dados de um banco de dados no Sybase ASE 15?

1

Pelo que entendi, com base em algumas pesquisas, mas sem experiência no mundo real com Sybase ASE, a única maneira de recuperar espaço em disco depois de alocado para um banco de dados é exportar esse banco de dados, criar um novo banco de dados com o mesmo esquema e recarregar todos os dados exportados para o novo banco de dados. Está correto ou há algum outro método?

Então: assumindo que o acima está correto e uma recarga de exportação-recria completa é necessária, qual é a maneira mais eficiente de fazer isso? Existem ferramentas que automatizarão todo ou parte desse processo? Estou sendo informado que teríamos que escrever comandos bcp export e import separados para cada objeto no banco de dados, o que, se for verdade, soa facilmente passível de script por alguém que conheça bem o Sybase ASE. (Eu não faço.)

Isto parece-me uma tarefa de manutenção básica e parece que estou a perder algo óbvio.

    
por Ernie Longmire 26.10.2011 / 22:52

3 respostas

1

reconstrução de reorganização

Altere as configurações de gerenciamento de espaço antes da reconstrução, se necessário. Quando a reconstrução da reorganização recria uma tabela, ela reescreve todas as linhas de tabela e índice de acordo com as configurações atuais da tabela para reservepagegap , fillfactor e exp_row_size . Todas essas propriedades afetam a rapidez com que as inserções fazem com que uma tabela fique fragmentada, conforme medido por uma baixa proporção de cluster.

    
por 26.10.2011 / 23:59
1

Sua pesquisa está absolutamente correta. Depois de alocar o espaço do dispositivo a um banco de dados, você não poderá reivindicar esse espaço novamente. A única maneira de recuperar o espaço em disco é descartar o banco de dados e os dispositivos de dados associados.

Para obter os objetos de banco de dados necessários do banco de dados, se você ainda não os tiver, use o utilitário ddlgen . Isso fará engenharia reversa dos objetos de banco de dados (tabelas, colunas, gatilhos, procedimentos etc.) e os colocará em um arquivo de script que pode ser executado para recriar os objetos em um banco de dados vazio.

Para exportar os dados, você pode obter a listagem de tabelas de usuários com a seguinte consulta:

select name from [YOUR_DATABASE_NAME]..sysobjects where type = "U"
go

Capture a saída em um arquivo separado, e é fácil percorrer até bcp todos os dados.

    
por 19.12.2012 / 21:19
0

Confira os novos recursos do sp100, incluindo a redução do banco de dados. link

    
por 04.02.2018 / 18:52