SQL Internals – Dias 4 e 5

Fala Pessoal,

Estou meio atrasado com o restante dos itens que vimos no treinamento SQL Internals da Sr. Nimbus. O treinamento acabou na sexta-feira passada mas só agora consegui uma brecha para escrever aqui sobre os dois últimos dias de treinamento.

Bem, na quinta-feira, quarto dia de treinamento, vimos muitas demos de índices, simulando diversos cenários, bem bacana. Falamos também sobre armazenamento especial (BLOBs, Filestream), Compactação de Dados e falamos também bastante sobre Bloqueios.

O ápice da quinta-feira foi o famigerado e altamente esperado Happy Hour, para os íntimos, o HH! Que maravilha!
Papo vai, papo vem, muitas risadas, e diria o seguinte, quando crescer, quero ser como o Padre Neco! (Só sabe quem foi… rs) Enfim …

Na sexta-feira encerramos o tópico sobre bloqueios e o Luti passou a bola para o Fabiano falar de Query Optimizer e Planos de Execução. Mandou bem! Falamos uma pancada de coisas sobre Plan Cache também.

Levem em consideração que estou fazendo um resumo, do resumo, do resumo de todos os pontos que foram tratados no treinamento. Quem quiser saber mais detalhes, pode acessar os detalhes no site da Nimbus ou fazer o treinamento ( =D ).

O que posso afirmar aqui é o seguinte: vale MUITO a pena fazer o treinamento! Para quem trabalha com banco de dados e está num nível de intermediário a avançado, vai aproveitar bastante.

É isso ae, até a próxima.

Abraços,
Erickson Ricci

SQL Internals – Dia 3

Fala Galera!

Fechamos hoje mais um dia de treinamento do SQL Internals. Hoje a casa caiu! Conteúdo de alto nível!

Hoje foi dia de falarmos de tabelas e índices. Nada de CREATE TABLE ou brincadeiras de índices aqui e ali. Descemos o nível da conversa mesmo… rsrs.

Para tabelas, falamos da menor unidade de armazenamento de dados dentro do SQL Server, nossa boa e velha amiga, a página de dados. Isso mesmo! Aquela de 8Kb, ou 8192 bytes, 96 bytes no cabeçalho, 8096 bytes para registros e ainda um slot array no final dela pra registrar os ponteiros para cada registro contido dentro da página. Lembrou?! Ótimo, isso foi só pra esquentar…

Analisamos cada detalhe do armazenamento interno de um registro, literalmente falando bit a bit como cada informação é armazenada no registro. \o/! Muito loco!!! Claro, não podiam faltar algumas análises das páginas utilizando o comando não-documentado DBCC PAGE. Para fechar com chave de ouro, falamos sobre planejamento da capacidade de tabelas.

Partimos pra falar sobre índices. E ai meu amigo, o bicho pegou. Incrível como um quadro branco e um especialista (Luti) podem fazer miséria!!! kkkk
Uma das melhores explicações sobre índices que qualquer administrador e desenvolvedor de banco de dados deveria ver e ouvir! Putz, pena que não tirei uma foto, mas, pra ter uma idéia, em aproximadamente 1h tivemos uma explicação sobre árvore B-Tree+, índices clusterizados, não-clusterizados, Bookmark Lookup, Index Seek, Index Scan, com uma pontinha em Range Scan, Cover Index, opção INCLUDE…ufa!

Sensacional! Está valendo cada centavo!

O coffee break não está sendo lá essas coisas, a internet cai direto (quando funciona), mas ficou claro que isso não foi culpa da Sr. Nimbus… fica a experiência…. Mas o treinamento, junto com o PTO com um cara que chamo de “mestre” (essa é interna minha…), é o melhor treinamento que já fiz.

A sensação é a de já estar a mais de uma semana falando de SQL intensamente! E ainda temos mais 2 dias pela frente! Muito bom!!! Vamos em frente!

Galera, é hora de dormir porque amanhã tem mais. Pelo visto vou ter que tomar um “café dos campeões”, com RedBull e qualquer outra coisa pra comer e forrar o estômago… Maravilha! #NOT

Amanhã tem mais, depois trago as novidades.

Abraços
Erickson Ricci

SQL Internals – Dia 2

Olá Galera!

Ontem tivemos o segundo dia do treinamento SQL Internals, em SP. No dia anterior, dentre outros assuntos, começamos a falar da arquitetura do SQL Server. No início deste segundo dia de treinamento começamos falando de gerenciamento de memória, passando por alguns itens Buffer Pool, Buffer Manager, Lazy Writer, etc.

Falamos também de Datafiles, Filegroups, Instant File Inicialization, page, extent, e o mais legal do dia, na minha opinião, páginas de alocação. PFS, GAM, SGAM, IAM e por ai vai.

E só falou disso ae!? Acha pouco???

Foi conversa pra mais de metro! Dentro desses poucos tópicos surgiram várias discussões na sala sobre cenários reais de utilização e problemas que cada um já vivenciou. Muito interessante.

Hoje estamos no terceiro dia, mas esse post vai ficar pra outra hora… bora focar no treinamento agora…

Até mais!
Erickson Ricci

SQL Internals – Dia 1

Fala Galera!

Como é de conhecimento de alguns, essa semana está acontecendo o treinamento SQL Internals, aqui em São Paulo, ministrada pela Sr. Nimbus, em pessoa pelo “gente boníssima” Luti ( twitter | blog ). Para quem quiser saber mais informações sobre a Sr. Nimbus e sobre os treinamentos oferecidos, clique aqui.

Já era de se esperar que o treinamento fosse de alto nível, e assim está correspondendo. Eu estou fazendo algumas anotações durante o treinamento e vou compartilhar aqui com vocês. Ah, então quer dizer que eu vou ter detalhes do treinamento sem ter de pagar por ele!? Não!!! São apenas anotações como pontos de referência para tudo que está sendo visto. O bom mesmo do treinamento são as discussões que temos tido em sala de aula. Se você quiser ter uma prévia do treinamento, comece lendo o livro SQL Server 2008 Internals.

Assuntos que vimos no primeiro dia do treinamento:

– Arquitetura do Sistema Operacional
– Kernel Mode
– User Mode
– CPU
– Processos
– Threads
– Contadores de performance associados a CPU
– Modelo preemptivo e modelo cooperativo
– Threads
– Context Switch
– Memória
– VAS
– PTE
– /3GB
– PAE
– AWE
– DBCC MemoryStatus
– Disco
– Configurações RAID (RAID 0, RAID 1, RAID 5, RAID 10)
– Contadores de performance associados a Disco
– Métricas base
– Erros relacionados a I/O (823, 824, 825)
– Arquitetura do SQL Server
– Desenho da arquitetura
– Arquitetura NUMA
– SQLOS
– Schedulers
– Worker Threads
– Tasks
– Affinity Mask

É galera, já deu pra sentir que é um treinamento de conteúdo avançado. E se você não é um expert em SQL Server, não pode fazer o treinamento?!

Muito pelo contrário!!!

Além de DBAs, o treinamento é bem vindo também para desenvolvedores com conhecimentos um pouco mais avançados de banco de dados SQL. Há muita informação útil para desenvolvedores também, mas claro, a maior parte dos interessados é de DBAs que trabalham com SQL Server.

Logo mais mando um post com os dados do dia 2, que aconteceu hoje.

 

Grande Abraço!
Erickson Ricci