Arquivo

Archive for julho \30\America/Sao_Paulo 2009

My fault…

30 de julho de 2009 2 comentários

De vez em quando(felizmente bem de vez em quando mesmo) acontece algumas  coisas comigo que eu não admito.

Vou postar essa no blog para desabafar… rs… ok eu sei que vocês não vem aqui pra isso, mais escrever me ajuda a relexar e estou precisando disso…

Vivemos num mundo corporativo que não tem memória e não admite erros… não adianta você fazer tudo certo e sem nenhum errinho por 5 anos seguidos, quando você errar, vai dar merda, e ninguém vai lembrar do passado. Não sou contra essa filosofia, sei que é assim, mas não admito que eu erre. Não sei porque, mas quando eu faço alguma coisa errada, fico PUTO comigo mesmo… isso acaba com meu dia e demoro pra poder me desculpar… não sei se isso é bom ou ruim.. mas sou assim…

Bom chega de choramingar… o erro que cometi  foi MUITO SIMPLES …. mas que pode causar um barulho danado… felizmente desta vez encontrei uma solução paliativa (ok ok, foi marretada mesmo…) pra poder amenizar as coisas. No projeto que estou trabalhando, estamos em um estagio em que simplesmente não temos 2 chances pra fazer uma coisa… tenho que programar e enviar pro ambiente pra teste… não tem essa de vamos testar local antes pra ver se deu certo…

O que eu fiz?

Eu escrevi isso:

SELECT TOP 1

       @ID_Tipo_Documento        = ID_Tipo_Documento,

       @ID_Documento             = ID_Documento,

       @ID_Tipo_Documento_Boleto = ID_Tipo_Documento_Boleto,

       @ID_Documento_Boleto      = ID_Documento_Boleto

  FROM CONPV005

 WHERE ID_Agente        = @ID_Agente

   AND NO_Identificador = @NO_Identificador

   AND CONVERT(VarChar, CONVERT(Numeric(25,0), NO_Identificador)) = RIGHT(RTRIM(LTRIM(@NO_Identificador)), DataLength(NO_Identificador));

 

Ao invés disso:

SELECT TOP 1

       @ID_Tipo_Documento        = ID_Tipo_Documento,

       @ID_Documento             = ID_Documento,

       @ID_Tipo_Documento_Boleto = ID_Tipo_Documento_Boleto,

       @ID_Documento_Boleto      = ID_Documento_Boleto

  FROM CONPV005

 WHERE ID_Agente        = @ID_Agente

   AND CONVERT(VarChar, CONVERT(Numeric(25,0), NO_Identificador)) = RIGHT(RTRIM(LTRIM(@NO_Identificador)), DataLength(NO_Identificador));

 

Reparou no erro? Não? Veja denovo com calma…

Eu dei um ctrl-c em um código que já existia e inclui a clausula AND CONVERT… mas esqueci de remover o AND NO_Identificador (repare que ele não existe na segundo consulta)…

Foi um erro simples, mas fica ai a dica… tente manter a calma sempre…. isso aconteceu comigo por causa da correria e falta de atenção… não tem desculpa… mesmo trabalhando sobre pressão temos que ser capazes de manter a calma pra poder trabalhar direito… lembro do tropa de elite… o Capitão Nascimento falando – O Pau pode estar comendo do seu lado, mantenha a calma e faça seu trabalho direito….

Viu, pronto, já estou mais calmo… 🙂

 

Categorias:Pessoal

Transaction Log for tempdb is full…

6 de julho de 2009 5 comentários

Essa não foi tão difícil mas pode ser que nem todos sigam a mesma linha de raciocínio que eu, então segue ai o que fiz pra resolver o problema.

Cheguei hoje cedo e um de nossos clientes havia me enviado um e-mail na sexta dizendo que não estavam conseguindo rodar um processo de exportação de dados no servidor de homologação. Segue a mensagem de erro do aplicativo responsável pela carga…

clip_image002

Se você procurar bem, verá que existe uma mensagem bem clara do problema…

Bom, vendo isso, fui dar uma olhada no espaço ocupado pelo Tempdb…

Rodei um sp_helpdb tempdb e obtive o seguinte retorno:

name

fileid

filename

filegroup

size

maxsize

growth

usage

tempdev

1

E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\tempdb.mdf

PRIMARY

10439680 KB

Unlimited

10%

data only

templog

2

E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\templog.ldf

NULL

149696 KB

Unlimited

10%

log only

10gb de espaço pro tempdb dependendo do cenário até que é normal… mas e o espaço no disco E: como está?

Rodei a xp_fixeddrives para ver o espaço livre…

drive

MB free

C

2229

E

126

F

13577

Umm, 126 mb livre…

Temos varias formas de resolver o problema.

1. Reiniciar o servidor pro SQL recriar o tempdb

2. Rodar um shrink no TempDB

3. Criar mais um arquivo de Log e de Dados para o TempDB no disco F que tem mais espaço livre.

Como é um servidor de homologação e não sou eu que administro, optei por apenas fazer o shrink no tempdb. Mesmo sabendo que possivelmente este problema volte a ocorrer, por enquanto pra mim só isso resolve…

Se fosse meu servidor, com certeza a disposição dos arquivos de dados estariam bem diferentes…

Falow…

Categorias:Não categorizado

Em um projeto não muito distante….

1 de julho de 2009 1 comentário

Galera, a alguns meses atrás escrevi que estava participando de um projeto bem interessante e que logo eu postaria algumas novidades em relação a ele.

Bom, faz tempo que estou querendo escrever este post… tenho certeza que muitos que estão lendo vão se identificar com as situações que encontramos em nosso dia a dia.

Coisas que rolaram no projeto

Frases que ouvi:

– Eu não mexi em nada! Só apertei o OFF. (Essa foi f. Então mexeu caramba, rs…)

– Faz um Cola e Copia.(Umm? Não seria Copia e Cola? rs)

– Mas posso fazer o backup com os usuários logados na base? Não vai derrubar todo mundo?

DataCenter que ganha mais de 150 reais hora pra administrar o banco SQL liga de madrugada. – Esta faltando espaço no disco do servidor SQL. Vou dar uma olhada, …. Arquivo de paginação no C: com 16 GB, detalhe, era o tamanho padrão…. 5 GB de dados na lixeira WTF…

Como mania, rodo um DBCC SHOWCONTIG em uma de nossas maiores tabelas só pra ver como andam as coisas… resultado?

Densidade da Verificação [Melhor Contagem : Contagem Real]…….: 12.14% [1521:15869]

Havia um script rodando a mais de 2 dias e meio, daí vieram me falar… – Ou aquele script que enviaram esta rodando no servidor a mais de 2 dias e não termina. Na hora já falei, – Para meu!, ta em LOOP infinito. Fui ver… batata, ainda estava no primeiro registro, hahuauauhua.

Não pude usar SSIS e criptografia MD5(aqui até tive que concordar um pouco).

Reuniões e mais reuniões com pessoas que não decidem, para decidir qualquer coisa que não precisava ser decidida naquela hora, e que futuramente, seria decidido que seria feito de maneira diferente do que foi decidido. Com pessoas que falam assim:

– Anyway, pelo feedback de nossos customers, na reunião do GO to GO vamos ter que adiar o esclarecimento com os PMOs para a próxima meeting.

Em uma das conversões, fiquei 36 horas online direto no cliente só na base do café :-). E no fim de tudo, a conversão não deu certo e escutamos um sermão(com razão) de nosso Diretor que havia ido pro cliente pra ver como estava o projeto.

Coisas que aprendi, e outras que deram certo.

Fizemos um script de mais de 4 mil linhas que quando executado lia os dados de duas bases e gerava uma outra base com a informação das duas empresas, ou seja, Le os dados do Banco x e insere no banco y. Resultado, banco final do Grupo que comprou os bancos x e y.

Conheci profissionais acima da média. Tive contato com Diretores e Superintendentes que dava pra perceber fácil porque ocupavam estes cargos.

Entendi porque algumas pessoas ganham muito mais que as outras.

Frase de meu superior direto. – Precisamos conversar com a equipe, não possível. A impressão que tenho é que enquanto alguns estão na Formula1, outros estão no Parque do Hopi Hari.

Para trabalhar com clientes grandes, não tem jeito. Se você não documentar tudo, vai sofrer as conseqüências, e elas são severas.

Cuidado, existem mais pessoas interessadas em crescer a qualquer custo do que você pensa. Esteja sempre preparado.

Não pretendo sair do interior tão cedo. Não há dinheiro que pague o valor de uma vida com qualidade.

È galera comecei a escrever e vi que este post também foi mais pro lado pessoal do que eu pensava rs. Ainda tem muita coisa pra rolar e vou tentar escrever mais conforme as coisas vão surgindo, daí não esqueço de nada.

Falow

Obs.: Todos os fatos acima mencionados são meramente ficticios ou nunca aconteceram, ou não vão acontecer, ou não fui eu quem viu, ou me contaram, ou eu li, ou eu ouvi, resumindo: Se precisar, Eu nego!

Categorias:Não categorizado