quinta-feira, 17 de setembro de 2015

24hs of PASS - Summit Preview

Hoje começa o 24hs of PASS - Summit Preview.
São diversas sessões técnicas para você assistir, não perca!

http://www.sqlpass.org/24hours/2015/summitpreview/Schedule.aspx

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

[SQLServerDF] Encontro XXVII – Suporte XML nativo no SQL Server 2014/2016

Mais um encontro do grupo SQLServerDF, dessa vez a ideia é abordar o suporte nativo do SQL Server 2014/2016 a XML (eXtensible Markup Language), que será apresentado pelo Rogério Moraes de Carvalho.

A ideia dele é apresentar os principais recursos de suporte nativo do SQL Server 2014/2016 a documentos XML. Além disso, ele tem como objetivo reservar uma parte da apresentação para debater com os participantes sobre casos de uso e quando o uso de XML em bancos de dados relacionais podem simplificar o modelo entidade-relacionamento e a manutenção. Traga seus casos de uso de XML no SQL Server para debatermos e compartilharmos nossas experiências.

De resto vocês já sabem o que fazer, por favor confirmar presença com nome e e-mail no Google Groups. Para aqueles que não estão no grupo, basta ir até http://groups.google.com/group/sqlserverdf, fazer sua inscrição e aguardar minha moderação.

Data e horário: 01/10/2015, das 18h às 20h
Local: Xperts Trainning Center
Palestrante: Rogério Moraes de Carvalho
Título: Suporte XML nativo no SQL Server 2014/2016
Descrição: Nesta sessão será apresentado o suporte XML nativo no SQL Server 2014/2016. O tipo de dado xml, que foi introduzido no SQL Server 2005, e a diferença entre uma coluna “tipada” (validada por uma coleção de XML Schemas) e “não tipada” (sem validação). Os cinco métodos do tipo de dados xml (query, value, exist, modify e nodes), usados para consultar ou modificar uma instância XML armazenada em uma coluna do tipo xml, com suporte parcial a XQuery para consultas de dados XML e a extensão XML DML da Microsoft ao XQuery (insert, delete e replace value of) para modificação de dados XML.
Mini-cv do palestrante:
Rogério Moraes de Carvalho é consultor e instrutor de TI. Ele é MVP em .NET. Trabalha com desenvolvimento de sistemas na plataforma .NET, e outras plataformas, e tem uma grande preocupação em utilizar bem os recursos da infraestrutura de dados utilizada pelos sistemas. Ele procura entender com mais profundidade os recursos das fontes de dados utilizadas nos sistemas, num momento em que a moda do desenvolvedor “moderno, antenado e competente” é codificar o modelo do seu domínio na aplicação e deixar que um framework de mapeamento objeto-relacional gere, automaticamente, o modelo relacional do banco de dados. Ele prefere procurar entender o funcionamento interno do framework de mapeamento-objeto relacional e não ficar dependente dele, uma vez que ele não é capaz de avaliar, por exemplo, quando é melhor estruturar parte dos dados em XML na modelagem de um sistema.

Xperts Trainning Center
SHIS QI 15 Conjunto 8/9 Área especial Bloco D, Subsolo - Lago Sul  (ao final da rua)
CEP 71635-565 - Brasília - DF
Telefone: (61) 4063-8177 | 9545-9241
Ponto de referência: Próximo ao Hospital Brasília; Ao lado da escola Red Balloon;

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

sexta-feira, 4 de setembro de 2015

Nível de isolamento e sp_reset_connection

Ajudando um cliente encontrei um comportamento do ADO.NET que eu desconhecia e, sinceramente, acredito que todos que trabalham com ADO.NET deveriam saber.

Cenário: uma mudança no EF 6.1 fez com que este cliente mudasse a aplicação e chamasse explicitamente a instrução SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ao instanciar o DBContext.
O problema surgiu quando a aplicação começa a abrir/utilizar/fechar as conexões, e o nível de isolamento READ UNCOMITTED é mantido.

Minha reação inicial: o ADO.NET não está chamando o sp_reset_connection ao reutilizar a conexão do pool, então pode ser um problema na configuração do pool de conexões.

Ao pesquisar sobre a configuração do pool de conexões me deparei com o comportamento que não conhecia: a sp_reset_connection não redefine o nível de isolamento.

Referências:


O item do Connect foi fechado como by design.

Então suponha o seguinte, você uma aplicação que funciona perfeitamente bem. Um novo módulo é desenvolvido e para uma interface específica você define o nível de isolamento READ UNCOMMITTED ou SERIALIZABLE, quando essa conexão é devolvida para o pool, uma outra classe da sua aplicação pode pegar essa conexão e trabalhar com um nível de isolamento inadequado, causando efeitos colaterais inesperados na aplicação. Nada bom.

Se você é desenvolvedor .NET e já trabalha com o ADO.NET provavelmente já sabe disso, mas achei importante registrar aqui para referência futura.

The devil is in the details…

Quer fazer o teste você mesmo?
Utilize os scripts abaixo para:

1. Criar o banco de dados e deixar uma transação aberta
2. Executar uma aplicação console em C# com pool de conexão habilitado
a. A segunda execução não vai ficar bloqueada (comportamento READ UNCOMMITTED)
3. Executar uma aplicação console em C# com pool de conexão desabilitado
a. A segunda execução vai ficar bloqueada (comportamento READ COMMITTED)

Você pode brincar com o profiler e DMVs para monitorar o comportamento das sessões.

1 - Scripts para testar comportamento (SSMS e VS)

USE master
go

CREATE DATABASE IsolationLevel
go

USE IsolationLevel
go

IF (OBJECT_ID('dbo.TabelaBase') IS NOT NULL)
DROP TABLE dbo.TabelaBase
go

CREATE TABLE dbo.TabelaBase
(Codigo INT IDENTITY NOT NULL PRIMARY KEY,
 Nome VARCHAR(100) NOT NULL,
 DataHora DATETIME2 NOT NULL DEFAULT SYSDATETIME())
GO

INSERT INTO DBO.TabelaBase (Nome) VALUES ('Sr. Nimbus')
INSERT INTO DBO.TabelaBase (Nome) VALUES ('SQL Server')
INSERT INTO DBO.TabelaBase (Nome) VALUES ('ADO.NET')
GO

-- Monitorar as sessões
-- 1 = read uncommitted
-- 2 = read committed
SELECT session_id, transaction_isolation_level, * 
FROM sys.dm_exec_sessions 
WHERE program_name = '.Net SqlClient Data Provider'


BEGIN TRANSACTION
UPDATE dbo.TabelaBase SET Nome = 'Luti @ Sr. Nimbus' WHERE Codigo = 1
SELECT @@TRANCOUNT





static void Main(string[] args)
{

    SqlConnection con = new SqlConnection("Server=LUTIXPS;Database=IsolationLevel;UID=sa;PWD=.sql2014.;");
    // SqlConnection con = new SqlConnection("Server=LUTIXPS;Database=IsolationLevel;UID=sa;PWD=.sql2014.;Pooling=false;");            
    SqlCommand com = new SqlCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED", con);
    con.Open();
    com.ExecuteNonQuery();

    com.CommandText = "SELECT * FROM dbo.TabelaBase";
    SqlDataReader dr = com.ExecuteReader();
    while(dr.Read())
    {
        Console.WriteLine(dr["Nome"].ToString());
    }                        
    con.Close();

    // novamente...
    con.Open();
    dr = com.ExecuteReader();

    while (dr.Read())
    {
        Console.WriteLine(dr["Nome"].ToString());
    }

    con.Close();
}


Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quinta-feira, 3 de setembro de 2015

Obsessão por excelência nos treinamentos

Mais um post sobre treinamentos (eu sei, overdose de treinamentos nesse blog, só uma breve fase, já mudo de assunto), dessa vez para compartilhar uma pequena vitória profissional, pois ela é muito importante para mim.

Sim, admito, tenho uma obsessão por capacitação e criar treinamentos especializados e diferenciados. Quero que o aluno saia de sala com outra percepção do que pode conseguir com a tecnologia, com uma mentalidade diferente em relação ao trabalho e quanto a seu potencial. Não é uma combinação simples, mas é factível, então leio, releio e trabalho em cima de todas as avaliações.

Dois itens da avaliação me interessam mais do que os outros, pois são os de maior impacto quando mal avaliados:

  • Em geral, como você avalia o treinamento?
  • Como você avalia o instrutor (didática, conhecimento, interesse pelo aprendizado do aluno, etc.)?

Então compartilho pela primeira vez algo que me orgulha bastante: o resultado das duas perguntas para todas as avaliações do curso Mastering SQL Server (ex-Internals) que foram feitas desde 2009. Os alunos não são obrigados a responder (mesmo eu pedindo encarecidamente) e as perguntas podem ser respondidas de forma anônima.

No total são 131 avaliações:
  • Em geral, como você avalia o treinamento?
  •       Excelente: 117
  •       Bom: 14
  •       Regular: 0
  •       Fraco: 0
  •       Ruim: 0
  • Como você avalia o instrutor (didática, conhecimento, interesse pelo aprendizado do aluno, etc.)?
  •       Excelente: 129
  •       Bom: 2
  •       Regular: 0
  •       Fraco: 0
  •       Ruim: 0

As duas pessoas que responderam como bom, fizeram os seguintes comentários:
  • Otimo nivel de conhecimento teórico alinhado com vivencia e experiencia no assunto.
  • Demonstra profundo conhecimento do que está falando. Ao menos, se não conhece, engana bem! Brincadeiras a parte, sanou todas as dúvidas, soube ouvir e incentivar as discussões.

Infelizmente não foi um 100%, mas continuaremos a melhorar. Espero que você também possa no futuro preencher uma avaliação e descobrir se isso é verdade ou não.

De quebra, também deixo (de forma anônima) os comentários da pesquisa sobre os treinamentos da Nimbus para a pergunta "O que você gosta ou odeia na Nimbus? (pode mandar ver!)".

OBS: Ainda estamos conduzindo a pesquisa sobre os treinamentos da Nimbus, participe: https://pt.surveymonkey.com/r/9FXLQ3F
OBS2: A pergunta é opcional e em torno de 50% das respostas possuem esse item preenchido.

==========================================================================

Qualidade inquestionável e profundidade adequada dos treinamentos e material dos cursos e dos instrutores.
9/3/2015 11:49 AM View respondent's answers

Como não tive oportunidade de fazer treinamentos online ou presencial fica difícil julgar a Nimbus.
9/2/2015 5:44 PM View respondent's answers

Instrutor muito capacitado. Colegas que fizeram algum curso sempre comentam isto. Elas voltaram com outra mentalidade. Mas não vi nenhuma revolução nas ações das pessoas depois do treinamento, porém seria injusto dizer que a culpa é do curso. Talvez, a pessoa não soube aplicar o conhecimento ou não tenha assimilado tudo.
9/2/2015 2:09 PM View respondent's answers

tenho interesse na nimbus mas nunca fiz um curso com vcs, por isso é díficil responder. O que me atrai é que o conteúdo parece ser completo, tenho relatos de que a matéria e dada a fundo. O que não me atrai é o preço e ter dúvida em qual conteúdo seria mais adequado para eu começar um assunto.
9/1/2015 11:50 AM View respondent's answers

Ótima explicação, exemplos muito bons e demonstração da aplicação dos conhecimentos passados no dia-a-dia.
8/31/2015 5:23 PM View respondent's answers

Qualidade, competência e disponibilidade da equipe para tá sempre junto da comunidade
8/31/2015 10:22 AM View respondent's answers

Gosto do nível técnico, dos instrutores gostarem de dar aula e da preocupação com a infraestrutura. Não há nada que eu não goste mas tem vários cursos que eu gostaria de fazer que nunca tem turma na minha cidade (SP)
8/31/2015 9:46 AM View respondent's answers

Pontos positivos: Facilidade para pagar Qualidade acima da média Pós venda (grupo criado com ex alunos) A melhorar: Eu sugeri que o treinamento tenha 1 dia a mais com a inenção de passar um cenário e os alunos tivessem de melhorar o ambiente com base no que foi aprendido nos últimos dias. Não é regra em muitos treinamentos mas acredito ser diferencial.
8/31/2015 9:10 AM View respondent's answers

Gosto da didatica e das turmas enxutas e com pessoas realmente interessadas no treinamento
8/28/2015 11:22 PM View respondent's answers

Bom: Detalhamento abordado nos assuntos e conhecimento dos instrutores; Ruim: Modelo de acesso aos treinamento on demand (seria melhor por assinatura mensal);
8/28/2015 6:34 PM View respondent's answers

Eu gosto da interatividade com o aluno, a forma de passar o conhecimento e a disposição para ajudar e ensinar (Blog, YouTube).O que eu não e que tem poucos treinamentos em São Paulo, apesar que nos últimos anos aumentou.
8/28/2015 11:13 AM View respondent's answers

Profissionais de alta qualidade
8/28/2015 10:35 AM View respondent's answers

do interesse do instrutor (luti) em educar
8/28/2015 3:26 AM View respondent's answers

Os instrutores são demais!
8/27/2015 9:55 PM View respondent's answers

Gosto do conhecimento técnico dos instrutores, é um diferencial.
8/27/2015 8:59 PM View respondent's answers

Gostei muito do treinamento que fiz com o Fabiano. Gosto na Nimbus o fato de existirem cursos fora da caixa, voltados para o dia a dia e aperfeiçoamento.
8/27/2015 5:43 PM View respondent's answers

poderiam ampliar os treinamentos para Oracle
8/27/2015 5:31 PM View respondent's answers

O sólido conhecimento dos instrutores, nos treinamentos disponiveis.
8/27/2015 4:20 PM View respondent's answers

[Gosto] - Conhecimento técnico que a empresa entrega é inquestionável - Os cursos focam no que realmente importa. Muitos cursos focam em diversidade de conteúdo o que em geral deixa os cursos rasos. 4 [Não gosto] -
8/27/2015 4:13 PM View respondent's answers

Eu não conheço tanto da empresa pra fazer tal Critica.
8/27/2015 4:04 PM View respondent's answers

Ótimos instrutores. Não se prender a provas para certiifcação, apresentando cases que acontecem durante o dia-a-dia. Um ponto negativo talvez seja falta de disponibilidade para treinamentos nos fins de semana de alguns cursos. Nem sempre é possível ficar fora uma semana do trabalho para participar.
8/27/2015 3:10 PM View respondent's answers

Gosto muito do nível de conhecimento dos instrutores.
8/27/2015 2:47 PM View respondent's answers

Gosto do nível dos instrutores
8/27/2015 2:45 PM View respondent's answers

Gosto, da experiencias dos instrutores. Não gosto dos horarios de alguns treinamentos, pois não tem flexibilidade.
8/27/2015 2:44 PM View respondent's answers

Pouca agenda
8/27/2015 2:41 PM View respondent's answers

Experiência dos instrutores.
8/27/2015 1:08 PM View respondent's answers

De positivo a qualidade de sempre. De negativo nada. A única questão para mim (e reforço o "para mim") foi a mudança do local. O anterior, por ser perto do trabalho e residência era mais prático. Sei que a mudança foi para melhor e isso não impedirá de fazer cursos, mas impede de participar das sessões do SQL Server DF.
8/27/2015 12:21 PM View respondent's answers

O material de estudo poderia ter uma padronização como o pessoal da Caelum
8/27/2015 11:57 AM View respondent's answers

Os cursos on-demand são excelentes, infelizmente ainda não tive oportunidade de fazer o treinamento presencial, mas está nos meus planos. Algo que considero bem interessante seria uma assinatura mensal, pois, Fantástico. O difícil é conseguir participar de todos, como temos que tirar a semana no trabalho hoje o $$ de cada curso online acaba sendo alto e nos faz pensar 2x se realmente vale a pena, se fosse "aberto" eu mesma acessaria vários outros cursos que tenho certa curiosidade.
8/27/2015 11:12 AM View respondent's answers

não tenho como avaliar.
8/27/2015 11:11 AM View respondent's answers

Simplesmente não tem oque odiar, a experiencia passada e oque conseguimos colher com o curso é complica um pouco e também tem conciliar com o bolso também ne rs
8/27/2015 10:50 AM View respondent's answers

O ponto forte é a qualidade técnica do instrutor (Luti). Acho que o ponto que poderia melhorar é a questão do conteúdo impresso. Deveria ter uma apostila especifica com os assuntos abordados no curso juntamente com o livro que é ofertado.
8/27/2015 10:48 AM View respondent's answers

Fiz treinamento na Nerv e o Portilho recomendou seu treinamento, bem como outros amigos PFE SQL na Microsoft, ainda farei mesmo com recursos próprios.
8/27/2015 10:41 AM View respondent's answers

Gosto: Dos treinamentos de alto nivel, e da profundidade que é abordado o assunto. Odeia..
8/27/2015 10:35 AM View respondent's answers

Os cursos que efetuei e os que vocês ministraram aqui dentro da empresa foram sempre muito bons.
8/27/2015 10:26 AM View respondent's answers

Gosto do conteudo aprofundado, da didatica do Lutti e o fato de ter saido do conceito chato do MoC para trazer cases do dia-a-dia e uma formatacao diferenciada.
8/27/2015 10:00 AM View respondent's answers

Fiz o treinamento de Performance com o Fabiano em São Paulo, foi Top o cara é Crazy, nível Hard.
8/27/2015 10:00 AM View respondent's answers

Gosto do Conteúdo de Qualidade.
8/27/2015 9:12 AM View respondent's answers

Fiz apenas um curso na Nimbus e não tenho nada de ruim para falar, foi ótimo o curso, material, instrutor (Fabiano Amorim).
8/27/2015 9:09 AM View respondent's answers

Gosto da qualidade técnica dos profissionais que ministram os trainementos
8/27/2015 9:02 AM View respondent's answers

Cursos extremamente específicos e com níveis de conteúdo "acima de 400" na escala Microsoft.
8/27/2015 8:53 AM View respondent's answers

São ótimos profissionais, espero fazer treinamentos o quanto antes.
8/27/2015 8:51 AM View respondent's answers

Só tive oportunidade de fazer treinamento e foi muito bom
8/27/2015 8:47 AM View respondent's answers

Gostaria de ver exemplos mais praticos baseado em bases de dados Grandes no meu caso SQL Server
8/27/2015 8:47 AM View respondent's answers

Gosto da honestidade e transparência na condução dos assuntos e treinamentos, da capacidade de seus profissionais envolvidos em treinamentos.
8/27/2015 8:43 AM View respondent's answers

Os instrutores são bons, porém, quando enviamos e-mail com alguma dúvida não respondem, porém, se enviarmos e-mail perguntando sobre cursos o e-mail é respondido na hora.
8/27/2015 8:37 AM View respondent's answers

O profissionalismo é o ponto forte. Os instrutores realmente sabem e vivenciam o conteúdo das aulas. Já fiz cursos com outras empresas e achei superficial (até demais). Como sou do interior de São Paulo, a localidade do curso acaba pesando no orçamento, mesmo os em São Paulo. Exatamente por isso prefiro cursos presenciais e integral.
8/27/2015 8:30 AM View respondent's answers

Poucas opções de horário. Poucas turmas.
8/27/2015 8:15 AM View respondent's answers

Nada contra...gosto dos treinamentos e de como sao ministrados
8/27/2015 8:14 AM View respondent's answers

Treinamentos avançados
8/27/2015 7:57 AM View respondent's answers

Eu gosto!, bom... fiz o curso que eu esperava, SQL internals, supriu minhas expectativas, qualidade técnica do palestrante, é isso!
8/27/2015 7:49 AM View respondent's answers

Gosto muito do comprometimento demonstrado e cuidado com os cursos e materiais disponibilizados.
8/27/2015 7:49 AM View respondent's answers

Eu gosto justamente pelos treinamentos abordarem temas diferentes dos centros de treinamento do mercado e por serem temas específicos.
8/27/2015 7:43 AM View respondent's answers

Conheço grande parte dos profissionais que atuam nessa empresa e sei das suas capacidades, possibilitando treinamentos de alto nível.
8/27/2015 12:31 AM View respondent's answers

======================================================================

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

Treinamentos SQL Server - Brasília, 2016

Pessoal, publiquei os treinamentos da Sr. Nimbus em Brasília para o primeiro semestre de 2016.


Se você quiser fazer um pacote com todos os treinamentos, entre em contato com a Nimbus!

Sinceramente, tenho dúvida se conseguirei reproduzir o mesmo formato no segundo semestre, então até este momento não existem mais planos para Brasília em 2016.

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quarta-feira, 2 de setembro de 2015

SQL27 - Alta Disponibilidade com o SQL Server AlwaysOn

Já comentei que estou investindo em novas ofertas de treinamentos na Sr. Nimbus, não foi?
Depois de um bom período no forno, publicamos hoje o primeiro treinamento de alta disponibilidade da Sr. Nimbus! E este cobre os assuntos: failover cluster e availability group.

SQL27 - Alta Disponibilidade com o SQL Server AlwaysOn

Publicamo"s" no plural mesmo, pois estou trabalhando com o especialista Edvaldo Castro nesse treinamento, cuidando de todo pequeno detalhe, para garantir o pedigree dos cursos da Nimbus. Até onde eu sei não existe outro centro de treinamento oferecendo um curso semelhante no Brasil, e mesmo que houvesse, estamos trabalhando para o conteúdo ser imbatível.

A primeira turma vai acontecer em Maio/2016 em Brasília, e já está confirmada! Todos os detalhes você encontra no site da Nimbus: http://www.srnimbus.com.br/calendario/sql27_bsbmaio2016/

PS: Não deixe de preencher a pesquisa de treinamentos da Nimbus e concorra a treinamentos on-demand (https://pt.surveymonkey.com/r/9FXLQ3F).

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br