Arquivo
Palestra FACAT Tupã dia 10/11/2011
Galera, post rápido, hoje as 19:30 vou dar uma palestra na Faculdade FACAT em Tupã.
Vou falar sobre “SQL Server VS mercado de trabalho” se você deseja saber mais sobre o que o SQL Server pode oferecer para você em relação a trabalho, chegue mais e participe.
Abs
Free Execution Plans e-book, e é meu :-)
|
Galera, essa notícia eu vinha esperando por um bom tempo. O Simple-Talk publicou um e-book com vários artigos que escrevi sobre os operadors dos planos de execução. Você pode fazer o download do livro aqui, é “di gratis”: http://www.simple-talk.com/books/sql-books/complete-showplan-operators/ Espero que gostem, eu realmente adorei escrever os article, e agora fico hiper mega feliz de ver que isso virou um livro |
Tem vários textos que eu gosto muito, mas eu acho que meu predileto é o seguinte:
To show the functionality of the Eager Spool we’ll go back in time a bit, to the time when I was just a project being planned, but some other geeks working intensively with databases.
It was Halloween; the cold winter’s night was black as pitch, (I really don’t know if was winter, but I thought it would sound more thrilling) and the wind howled in the trees. It was 1976 and the children was demanding “tricks or treat” in the houses. The full moon shone and illuminated the whole city when suddenly, some clouds crossed the moon making the night even more dark and gloomy. It was possible to smell and taste the tension in the air like a stretched rubber band so close to burst. People walking in the street felt that someone was observing them, and when they looked closely in their back, they see two red eyes waiting and looking out for a prey unprotected.
Was that their imagination? Or just the wrong night to work with databases?
Meanwhile in a place not far away, an update was started on a database by a skeleton staff, to update the salary by 10% of all employees who earned less than $ 25.000,00 dollars. Their feelings of impending doom increased as the query failed to complete in the expected time. When, at length, it did, they found to their horror that every employee had their pay increased to $ 25.000,00. It was the stuff of DBA nightmares.
Agora uma boa notícia para quem vai no SQLSaturday 100, a Red-Gate me enviou alguns livros impressos pra eu poder distribuir pra galera
. É isso mesmo, vou distribuir alguns livros na minha sessão, portanto compareça.
Não ficou muito grande, portanto você consegue ler rápidinho
.
Thanks so much for Red-Gate and Simple Talk to make this possible, I loved!
Abs.
Estou indo para Sr.Nimbus!
– “A partir do dia 01/11/2011 estarei com a cabeça nas nuvens (Sr.Nimbus)”.
Pra quem ainda não conhece, a Sr.Nimbus é uma empresa de consultoria e treinamento em tecnologias Microsoft, com uma frente muito forte em SQL Server. Tudo o que eu gosto de fazer, treinamentos, e consultoria. É a minha cara.
| Um dos profissionais que fazem parte do time de SQL Server da Nimbus, é o Luciano Caixeta Moreira o Luti. Eu não vou dizer novamente que devo muito ao Luti, que ele me ajudou bastante, que aprendi muito com ele e blablabla… Eu já disse isso várias vezes aqui no meu Blog. O que quero dizer é que iremos criar muita coisa boa, e que vocês podem ter certeza de que teremos o melhor time de tuning e especialistas SQL Server do Brasil, tenho várias ideias que na Nimbus vou poder colocar em pratica, e iremos oferecer serviços fantásticos relacionados a SQL Server. | |
Tenho tudo a ver com a Sr.Nimbus e com o Luti, nossa ideias batem muito bem, ele gosta de SQL Server (será?) e eu também, ele endoidou com o final de The Dig e eu também, ele gosta de jogar futebol e eu também (apesar de eu ser totalmente diferenciado neste quesito, leia-se, craque), ele gosta de ensinar a comunidade e eu também, ele gosta de treinar pessoas e eu também. Tenho certeza que vai dar certo, tem tudo pra dar “liga”.
É isso, não quero deixar este post muito longo, mas quero dizer que estou extremamente ansioso para começar logo. Muita coisa boa virá, aaa com certeza.
Agora é trabalho meu filho.
Abraços
Material palestra PASSLatam 24 Horas, Windows Functions
Conforme combinado segue o link para download do material que usei na minha sessão do PASS24 horas.
Abs.
24 horas PASS Latam–Evento online e gratuito
Galera, nessa semana acontecerá mais um evento organizado pelo PASS. O PASS LATAM 24 horas irá iniciar no dia 19 e vai até dia 20.
Serão 24 horas de palestras sobre SQL Server todas com foco na nova versão do SQL Server 2012.
O evento conta com a participação de vários brasileiros, eu novamente irei palestrar sobre Windows Functions.
Para ver a agenda com todas as palestras e fazer a inscrição basta seguir as instruções do seguinte link:
https://www323.livemeeting.com/lrs/8000181573/Registration.aspx?pageName=b7tqr85g08m9br8r
Opcionalmente você pode ver a grade no Blog no Nogare: http://www.diegonogare.net/blog/post/24hr-of-PASS-Latam-e28093-Evento-gratuito-em-04-e-05Out.aspx
Nos vemos por lá:
Abs.
Luto: Steve Jobs 1955 – 2011
Esse vai fazer falta… sem dúvida uma das pessoas mais criativas de todos os tempos.
Curioso em pensar que, na minha palestra no TechEd eu mencionei o nome dele… Quem diria que dali a alguns dias ele não estaria mais vivo.
Eu lembro que disse: “Como diria nosso amigo Steve Jobs, eim, quem? Quando você rodar essa consulta, BOOM”…
Steve, descance em Paz e que Deus console sua família!
“Lembrar que estarei morto em breve é a ferramenta mais importante que já encontrei para me ajudar a tomar grandes decisões. Porque quase tudo – expectativas externas, orgulho, medo de passar vergonha ou falhar – caem diante da morte, deixando apenas o que é apenas importante. Não há razão para não seguir o seu coração. Lembrar que você vai morrer é a melhor maneira que eu conheço para evitar a armadilha de pensar que você tem algo a perder. Você já está nu. Não há razão para não seguir seu coração.”
Jobs, Steve
Windows Functions – Parte 6
Galera, segue alguns links sobre windows functions que o Bob Beauchemins (Blog | Twitter ) escreveu, vale a pena investir um tempo por lá.
http://www.sqlskills.com/BLOGS/BOBB/post/What-exactly-does-PERCENTILE_CONT-do-anyhow.aspx
http://www.sqlskills.com/BLOGS/BOBB/post/An-FAQ-about-the-window-clause-in-SQL-Server-Denali.aspx
http://www.sqlskills.com/BLOGS/BOBB/post/Denali-window-clause-followup-question.aspx
http://www.sqlskills.com/BLOGS/BOBB/post/Remember-LAG-function-in-SQL-Server-Denali-uses-rows.aspx
http://www.sqlskills.com/BLOGS/BOBB/post/Window-clause-range-specification-and-missing-values.aspx
Abs
Novo artigo no Simple-Talk–“Statistics on Ascending Columns”
Galera, novo artigo no ar, leia e vote com 5 estrelinhas ok? ![]()
http://www.simple-talk.com/sql/database-administration/statistics-on-ascending-columns/
Se você ainda não leu meus artigos no S-T, segue o link para todos eles:
http://www.simple-talk.com/author/fabiano-amorim/
Abs
Não confie em ninguém
Como diria meu amigo Luti, o assunto deste post está mais pra conversa de boteco, mas ultimamente creio que valha um post.
Duas coisas aconteceram e me fizeram criar coragem para escrever sobre isso. Primeiro o Paul Randal (Blog | Twitter) começou com essa história aqui e segundo foi o Grant Frinchey (Blog | Twitter). O Grant esta fazendo a revisão de meu último artigo pro Simple-Talk onde escrevi sobre “colunas ascendentes” e ele me fez mudar um texto onde eu dizia algo mais ou menos assim:
“Por isso que recomendo que você atualize as estatísticas de sua tabela 1 vez por dia com a opção fullscan”.
O Grant levantou a bola dizendo que ele não gosta de fazer estas recomendações genéricas, porque isso depende muito de cenário para cenário. Tive que concordar com ele, e acabei mudando um pouco minha frase, realmente isso depende, e nossa intenção é evitar que pessoas digam: – “Eu só atualizo as estatísticas 1 vez por dia, porque li em um artigo no Simple-Talk o Fabiano dizendo pra eu fazer isso.”.
Vivendo e aprendendo, a partir de agora não faço mais isso.
Mas voltando ao assunto deste post.
Algo que tem me incomodado bastante é a quantidade de informações incorretas que tem se espalhado por ai. Hoje é muito fácil criar um blog e escrever sobre um determinado assunto. Temos milhares de blogs por ai falando sobre SQL Server, com assuntos para todos os gostos, básico, intermediário, avançado e alguns posts impossível de entender (http://blogs.msdn.com/b/psssql/).
A questão é, será que com isso tudo de informação, podemos realmente fazer uma busca no google sobre um determinado assunto e confiar no que será retornado? A resposta é, leia tudo, não confie em nada.
Um post é quase sempre relacionado a um caso específico, que nem sempre se aplica ao seu ambiente. Um exemplo sobre isso é uma discussão interessante que estou tendo com o pessoal da MS sobre a recomendação de criar 1 arquivo de tempdb para cada CPUs (cores) existentes na máquina. Isso é sempre necessário? Não, #Fato.
Eu sempre gosto de dizer o seguinte, se fosse pra você confiar em uma recomendação geral, confie na seguinte: “Nunca confie em uma recomendação geral”.
Escrever sobre SQL é de fato uma ótima maneira de aprender mais sobre a ferramenta. Mas cuidado com o que você escreve, estude e teste muito antes de escrever sobre algo. A ideia é a seguinte, preciso escrever sobre Extend Events para poder aprender mais sobre isso… Ou seja, vou estudar e compartilhar o que aprendi no meu blog.
Ultimamente tenho lido muita coisa equivocada, muito mesmo, e isso me preocupa.
Não estou falando que sou o cara, para com isso, por favor me entenda, eu com certeza já escrevi muita baboseira no meu blog, btw preciso fazer uma revisão para ver se acho algo nos posts antigos, coisas que eu achava que funcionavam de um jeito mas que com o tempo descobri que não é funcionam bem assim.
Atenção, sim eu estou dizendo para você não confiar cegamente nos meus posts, eu não sou Guru em SQL. Posso escrever algo errado, claro que sim. Mas uma coisa te garanto, antes de escrever eu estudo MUITO e pesquiso demais sobre o assunto para evitar falar asneira.
Agora que virei MVP tenho acesso a um grupo com todos os MVPs em SQL Server do mundo, eu MORRO de medo dos caras que trocam e-mails por lá, os caras sabem MUITO, é inacreditável. Um assunto simples sobre ODBC, vira livro, o conhecimento dos caras é MUITO grande. Quer um exemplo disso, leia o posto que o @bobbeauch escreveu sobre OleDB ontem.
Como vocês devem ter percebido, tento sempre escrever sobre coisas que sou especialista, T-SQL, tuning etc… Vocês não vão me ver escrevendo sobre DataMining porque não sou especialista nisso.
Moral da história, se você tem um blog, cuidado para não escrever asneira. E ao ler algo, mesmo que seja de uma fonte “confiável” sempre tenha em mente que uma recomendação não se aplica para todos os ambientes, sempre teste tudo o que você leu. E sim, critique, questione, isso faz com que todos aprendam mais, os leitores e o autor.
Criticar é diferente de xingar, esculachar. Criticas são bem vindas, sempre, principalmente as negativas. Por favor me critiquem. Críticas positivas são boas para nosso ego, mas não servem pra nada.
Como diria Salomão (alguns acham que não foi ele) no livro dos Eclesiastes – “Elogios vazios são como gravetos atirados em uma fogueira”.
A frase acima é muito bonita e vem a calhar com este post. Mas tem um problema. De acordo com o google, existem 6.280 páginas citando esta frase e dizendo que ela faz parte de um comentário do Max Gehringer onde ele menciona que essa frase faz parte do livro do Eclesiastes.
Eu já li o livro de Eclesiastes e nunca vi isso por lá. Talvez seja uma tradução especifica que não conheço, mas pelo que sei, não creio que esta frase faça parte da Bíblia Sagrada.
Isso é exatamente o que quero mostrar e dizer com este post. Renomado e famoso Max Gueringer pode estar errado, e por conta disso, 6.280 pessoas também erram republicando o texto incorreto.
UPDATE: O Max tava certo :-), ainda bem. Ainda não sei qual tradução ele usou porque ele não me respondeu, mas tenho uma Biblia chamada A Biblia Vida e em Eclesiastes 6:7 temos um texto parecido com isso que ele disse acima :-).
Questione, teste!
Obs.: Mandei um e-mail para o Max perguntando sobre qual tradução da Bíblia ele utilizou para achar esse “versículo” no livro de Eclesiastes. Depois atualizarei este post com a resposta dele.
Eu gostaria muito de continuar a escrever e falar sobre outra coisa que me incomoda muito, plágio, mas isso fica para falarmos no boteco mesmo J.
O que você acha em relação a isso? Eu adoraria ler seu comentário.
Obs.: Como confiar no texto de alguém que esta dizendo para você não confiar em ninguém? ![]()
Abs
PSP–Parameter Sniffing Problem + DMV CachePlans
Estou em um cliente e desconfiei de um problema relacionado ao parameter snifing em uma proc, pra variar um pouco…
Dai lembrei de uma sessão do Jason Strate sobre XML e Execution Plans sensacional…
http://www.jasonstrate.com/presentations/past-presentations/
A sessão é a “Using XML to Query Execution Plans”, e tem um arquivo na pasta de scritps chamado “005 – Parameterization.sql”. Eu usei o mesmo conceito utilizado por lá e fiz uma modificação para especificar uma proc em uma variável e verificar quais foram os parâmetros utilizados para criação do plano em cache para a proc.
Sensacional, segue um exemplo:
— test
DBCC FREEPROCCACHE
GO
use master
GO
sp_help sysobjects
GO
Para testar rodei um exec na proc sp_help passando como parâmetro a “tabela” sysobjects.
Agora consigo consultar os parâmetros utilizados para gerar o plano de execução para a proc sp_help usando o código abaixo:
— Query para consultar parâmetros utilizados para criação de um plano
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GODECLARE @ProcName VarChar(500)
SET @ProcName = ‘sp_help’;—http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx
WITH XMLNAMESPACES (DEFAULT ‘http://schemas.microsoft.com/sqlserver/2004/07/showplan’)
,PlanHandles AS (
SELECT DISTINCT plan_handle
FROM sys.dm_exec_query_stats
)
,PlanParameters
AS (
SELECT ph.plan_handle, qp.query_plan, qp.dbid, qp.objectid
FROM PlanHandles ph
OUTER APPLY sys.dm_exec_query_plan(ph.plan_handle) qp
WHERE qp.query_plan.exist(‘//ParameterList’)=1
and OBJECT_NAME(qp.objectid, qp.dbid) = @ProcName
)
SELECT
DB_NAME(pp.dbid) AS DatabaseName
,OBJECT_NAME(pp.objectid, pp.dbid) AS ObjectName
,n2.value(‘(@Column)[1]’,’sysname’) AS ParameterName
,n2.value(‘(@ParameterCompiledValue)[1]’,’varchar(max)’) AS ParameterValue
,n1.query(‘.’) AS N1_XML
,n2.query(‘.’) AS N2_XML
From PlanParameters pp
CROSS APPLY query_plan.nodes(‘//ParameterList’) AS q1(n1)
CROSS APPLY n1.nodes(‘ColumnReference’) as q2(n2)
It’s that nice or what?
Abs





