Inquiridor
Atach Database

Pergunta
-
Olá,
Fiz um atach de uma base sql server 2000 no 2005 e funcionou normalmente porém ficou mais lento que no 2000.
Então alterei o nivel de compatiblidade para 2005 e mesmo assim continuou lento e por ultimo mandei recriar as estatisticas e não teve jeito.
Alguma dica?
Obrigado.
Todas as Respostas
-
-
Barbosa,
Também é meio estranho.
Você já pensou em excluir esta banco, criá-lo novamente no SQL Server 2005, com o nível de compatibilidade 80, restaurar o backup do banco que esta no SQL Server 2000 e depois mudar novamente o nível de compatibilidade 90.
Outra possibilidade seria restaura um backup realizado ainda com o banco no SQL Server 2000, mas restaurando somente os dados sem sobrepor o banco.
Ou então eliminar o banco, criar novamente com o nível de compatibilidade 90, e restaurar o backup do banco existente no SQL Server, mas somente os dados.
-
-
em um base de testes tente rodar essa rotina
CREATE Proc sp_NEW_RBMS_DBMaintenenceProcess_Reindex
As
Set NoCount On
Declare @Tabelas Table (Idx Int Identity(1,1), TblName Varchar(100))
Insert into @Tabelas (TblName)
Select Table_Name From Information_Schema.Tables Where Table_Type = 'Base Table'Declare @Start Int
Declare @End Int
Declare @Command Varchar(1000)Select @Start = 1, @end = Max(Idx) From @Tabelas
While @Start <= @End
Begin
Select @Command = 'Dbcc DbReindex (' + TblName + ','''',80)' From @Tabelas Where Idx = @Start
exec(@Command)
Set @Start = @Start + 1
Enddepois retorne para ver como ficou.
Abs;
-
-
-
Verifique o campo scan density na consulta abaixo.
DBCC SHOWCONTIG WITH TABLERESULTS, ALL_INDEXES.
Caso os valores estejam distantes de 100 execute o script em anexo em um ambiente de teste e verifique se a lentidão persiste.
set nocount on
declare @comando varchar(255)
declare @comando1 varchar(255)
declare @comando2 varchar(255)
declare @comando3 varchar(255)
declare @comando4 varchar(255)
declare @tabela varchar (100)
declare @database varchar (225)declare base cursor for
SELECT distinct TABLE_CATALOG FROM INFORMATION_SCHEMA.TABLES
open base
fetch next from base into @database
declare tabelas cursor for
select name from sysobjects where type='U' order by nameopen tabelas
fetch next from tabelas into @tabela
while @@fetch_status=0
beginprint 'Reindexando os indices da Tabela '+ @tabela
set @comando = 'dbcc dbreindex ('+@tabela+')'
exec (@comando)
print '---------------------------------------------'
print ' '
print 'Verificando estrututura da tabela '+ @tabela
set @comando1 ='dbcc checktable ('+@tabela+')'
exec (@comando1)
print '---------------------------------------------'
print ' '
print 'Verificando espaco alocado na tabela'+@tabela
set @comando2= 'dbcc updateusage ('+@database+','+@tabela+')'
exec (@comando2)
print '---------------------------------------------'
print ' '
fetch next from tabelas into @tabela
endPrint 'Final da Manuntencao'
print '*******************************************************************************************'
print '**********************************************************************************'
print '***************************************************************'
close base
close tabelas
deallocate tabelas
deallocate base
Rafael Cardoso de Araújo MCTS - SQL Server 2005