Arquivo

Posts Tagged ‘SQL Server’

Mundança de Domínio

28 de janeiro de 2011 Deixe um comentário

Fala Pessoal,

Por diversos motivos resolvi criar meu próprio domínio.

Agora o endereço do meu blog é http://fabriciolima.net/blog/

Atualizem seus feeds por favor.

Espero por vocês lá!

Atualizado dia 24/10/2012

Para quem tiver interesse, agora estou realizando um serviço de consultoria remota. Aos interessados, segue o link abaixo para maiores informações:

http://fabriciolima.net/blog/consultoria-remota/

Abraços,

Fabrício França Lima

Quanto tempo levaria para descobrir uma database corrompida?

3 de novembro de 2010 Deixe um comentário

Fala Pessoal,

Hoje saiu a edição 18 da resvista Codificando.NET e-magazine e com um artigo meu publicado. =)

O título do meu artigo é: Quanto tempo levaria para descobrir uma database corrompida?

Não deixem de ler!!! Segue o link para a realização do download grátis da Revista: Codificando.Net

Agradeço a Fernanda Sallai (Blog) pelo convite.

Fabrício França Lima demonstra Quanto tempo levaria para descobrir uma database corrompida.

Anderson Castro faz uma Introdução ao Windows Phone 7 Series.

Fernando Gonçalves ensina como Autenticar usuários em ASP.NET Web Forms.

Fabrício Sanchez aborda sobre Visual Studio LightSwitch – É bom, mas é preciso entendê-lo!.

Ítalo Chesley explica o Entity Framework: Trabalhando com Model First.

Everton José Benedicto escreve sobre SQL Server Integration Services (SSIS).

Alliston Carlos apresenta O novo Visual Studio LightSwitch.

Antonio Lucas Finotti Pereira explica como Gerar Gráficos com Silverlight, WCF e LINQ.

Leandro Alves Santos demonstra como Reutilizar Código Nativo no .NET.

Alexandre Tarifa relata E se foi mais um Tech·Ed na sua coluna .Close()

 

Abraços,

Fabrício França Lima



Casos do Dia a Dia: Exclusão de campo Text não libera espaço em disco?

15 de outubro de 2010 4 comentários

Fala pessoal,

Compartilhando mais uma experiência que tive no meu dia a dia de trabalho, após a verificação com a equipe de desenvolvimento da possibilidade de exclusão de 2 campos do tipo text de uma tabela muito utilizada, fui com toda empolgação na minha base de testes verificar o quanto de espaço em disco eu ganharia. Para isso, rodei a sp_spaceused para essa tabela, exclui os 2 campos text e rodei novamente a sp_spaceused.

Para minha surpresa, o espaço em disco utilizado por essa tabela continuava o mesmo. Ah não! É impossível! Como que esses campos não ocupam nenhum espaço no banco?

Vamos visualizar essa situação. Com o script abaixo criamos e populamos uma tabela comum:

SET NOCOUNT ON

CREATE TABLE Anotacao(
Id_Anotacao INT IDENTITY(1,1),
Dt_Anotacao DATETIME DEFAULT(getdate()),
Ds_Anotacao TEXT,
CONSTRAINT PK_Anotacao PRIMARY KEY(Id_Anotacao)) — Índice clustered
GO
INSERT INTO Anotacao(Ds_Anotacao)
SELECT REPLICATE(‘A’,4000)
GO 10000

Em seguida, executando o comando:

exec sp_spaceused Anotacao

 Temos o seguinte resultado:

spaceused_antes

Como podemos ver, a tabela possui mais de 40 MB de dados.

Agora excluímos o campo com o comando abaixo:

ALTER TABLE Anotacao
DROP COLUMN Ds_Anotacao 

Mais uma vez, executando a sp_spaceused temos o resultado abaixo:

exec sp_spaceused Anotacao

spaceused_antes

Como assim? O resultado não mudou?

Nesse momento abri uma thread no fórum do technet e após trocar alguns posts com o Gustavo Aguiar (Blog), obtive uma resposta muito esclarecedora:

“Olá Fabrício,

Antes da exclusão da coluna, o espaço estava alocado e os dados organizados. Se você excluir a coluna, para que o espaço seja imediatamente liberado, o SQL Server teria que reorganizar tudo. Para reorganizar, fatalmente haveria um trabalho de IO envolvido bem como uma possível indisponibilidade. Como o SQL Server não sabe a criticidade da tabela, ele opta por não reorganizar e manter o espaço alocado mesmo após a exclusão da coluna.

O espaço será liberado assim que você promover um REINDEX do índice clustered. Se a tabela não possuir um, será necessário criar e depois removê-lo (a menos que seja SQL Server 2008).”

Pronto, acredito que agora tudo já esteja esclarecido para vocês. Vamos testar?

Basta dar um REBUILD no índice:

ALTER INDEX PK_Anotacao ON Anotacao REBUILD

Agora, executando a sp_spaceused novamente, temos o seguinte resultado:

spaceused_depois

Agora podemos visualizar o espaço que ganhamos com a exclusão do campo. O tamanho da tabela diminuiu 40 MB.

Bom, depois da ajuda do gustavo, verifiquei que no meu caso ganharia 10GB de espaço em disco com a exclusão dos meus 2 campos text. =)

Abraços,

Fabrício França Lima

Casos do Dia a Dia: Database em modo Suspect

8 de outubro de 2010 9 comentários

 

Fala Pessoal,

Gostaria de compartilhar com vocês uma experiência que tive no ambiente de banco de dados que administro. Realizando um boot em um dos meus servidores SQL Server devido as atualizações de segurança do windows, uma de minhas databases subiu em modo Suspect. Como essa database é restaurada diariamente do servidor de produção para esse servidor D-1 e é utilizada por poucos relatórios, tive tempo de pesquisar se havia algum modo de recuperá-la sem precisar voltar um backup da mesma.

Mas Fabrício, como vou saber se alguma de minhas databases está em modo Suspect?

R: Além de ser possível visualizar no próprio Object Explore do Management Studio, rodando a query abaixo também podemos verificar se existe alguma database suspect em nosso ambiente:

SELECT NAME,STATE_DESC FROM SYS.DATABASES
WHERE STATE_DESC=’SUSPECT’

Após algumas buscas, encontrei o seguinte artigo onde é ensinado um passo a passo de como voltar uma database em modo suspect: How to repair a Suspect Database in SQL Server.

Esse artigo identifica 5 possíveis motivos para uma database ficar como Suspect, são eles:

1. Database could have been corrupted.

2. There is not enough space available for the SQL Server to recover the database during startup.

3. Database cannot be opened due to inaccessible files or insufficient memory or disk space.

4. Database files are being held by operating system, third party backup software etc.

5. Unexpected SQL Server Shutdown

Tudo indica que comigo aconteceu o problema de número 5. E para resolve-lo, apenas segui o passo a passo desse artigo.

Com a database em estado suspect, não era possível verificar as propriedades e enchergar as tabelas dessa database no Object Explore do Management Studio, o que já deixa os usuários da database bem desesperados com medo de terem perdido os dados.

Para iniciar o processo de recuperação, executei o comando:

ALTER DATABASE NOME_DATABASE SET EMERGENCY

Nesse momento minha database ja estava em modo de emergencia e já era possível acessar as tabelas. Nessa hora já bate um aquele alívio. UFA, minhas tabelas estão acessíveis.

Entretanto, quando uma database está em modo de emergencia ela se torna READ_ONLY e o acesso fica limitado a membros da server role sysadmin. Para deixa minha database online novamente, executei o comando:

ALTER DATABASE NOME_DATABASE SET ONLINE

Minha database ficou totalmente acessível e meus usuários puderam utilizá-la normalmente.

Após deixar a database online, executei o comando DBCC CHECKDB para verificar se existia alguma corrupção nessa base. O resultado foi “found 0 errors and repaired 0 errors”.

Com isso, não precisei restaurar um backup da minha database para poder recuperá-la. Espero que possa ajudar alguém que passe por esse problema. Caso você tenha alguma experiência com uma database Suspect, deixe um comentário para compartilhar sua experiência com outras pessoas.

Abraços,

Fabrício França Lima

Worldwide Online TechDay 2010 – INSCRIÇÕES ABERTAS!!

3 de outubro de 2010 Deixe um comentário

 

Vocês ja devem ter ouvido falar no Worldwide Online TechDay que acontecerá no dia 30/10/2010 com 19 horas de palestras e a participação de grandes nomes da comunidade Brasileira e Internacional.

As incrições são gratuitas e já estão abertas.

Eu ja fiz a minha inscrição. E você, vai perder essa grande oportunidade de aprendizado?

Faça sua inscrição nos links abaixo para cada palestra:

30/10 – 9h00
Djonatas Tenfen
Silverlight
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464233&Culture=pt-BR

30/10 – 10h00
Fabiano Amorim
Lipoaspiração no seu Banco de Dados!
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464230&Culture=pt-BR

30/10 – 11h00
Alexandre Tarifa
Iniciando com ASP.NET MVC
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464228&Culture=pt-BR

30/10 – 12h00
Rob Ranches
SQL 2008 Data Mining, how to
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464225&Culture=pt-BR

30/10 – 13h00
Fabrício Catae
Como funciona um banco de dados?
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464223&Culture=pt-BR

30/10 – 14h00
Nilton Pinheiro
Introdução ao SQL Server 2008 R2 Failover Clustering
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464216&Culture=pt-BR

30/10 – 15h00
Diego Nogare
Reporting Services integrados com Mapas
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464168&Culture=pt-BR

30/10 – 16h00
Fábio Hara
Green IT na Prática: O que o gerente de TI, o Administrador de Rede e o Desenvolvedor podem fazer a respeito?
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464431&Culture=pt-BR

30/10 – 18h00
Max Trinidad
PowerShell Working with SQL Agent
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464166&Culture=pt-BR

30/10 – 19h00
Chad Miller
PowerShell ETL
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464151&Culture=pt-BR

30/10 – 20h00
Jorge Segarra
Policy-Based Management in a Nutshell
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464128&Culture=pt-BR

30/10 – 21h00
Steve Jones
The Modern Resume
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464126&Culture=pt-BR

30/10 – 22h00
Buck Woody
Why is PowerShell Important for the DBA?
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464123&Culture=pt-BR

30/10 – 23h00
Aaron Nelson
PowerShell for Data Professionals
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464120&Culture=pt-BR

31/10 -00h00
Thiago Cruz Soares
Benefícios da utilização de dashboards de BI no SharePoint 2010
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464118&Culture=pt-BR

31/10 – 01h00
Marcelo Fernandes
Particionando tabelas no SQL Server 2008
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464116&Culture=pt-BR

31/10 – 02h00
Thiago Zavaschi
Descubra o Self-Service BI com o PowerPivot
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464114&Culture=pt-BR

31/10 – 03h00
Felipe Ferreira
Introdução ao Master Data Services no SQL Server 2008 R2
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032464098&Culture=pt-BR

Categorias:Eventos Tags:, ,

Utilização de mais de 3GB de memória no SQL Server em um ambiente 32 bits

9 de agosto de 2010 5 comentários
 Esse post foi transferido para o novo domínio do Blog. Clique aqui para acessá-lo.

Prudente Tech Day 2010 – Faça sua Inscrição

Fala Pessoal,Passando para deixar uma excelente dica para o pessoal de Presidente Prudente-SP e região. Dia 14/08/2010 acontecerá o Prudente TechDay com vários MVP’s e funcionários da microsoft. Tudo de graça, bastando levar apenas 1 kg de alimento não perecível.Se não fossem os 1.500 km de distância daqui de Vitória-ES, com certeza estaria lá.Segue abaixo o link para realizar a inscrição:http://www.prudente.techday.net.br/Registro/ Abraços,Fabrício França Lima

Categorias:Eventos Tags: