quarta-feira, 31 de março de 2010

Um ano longe da nave mãe

Bom dia pessoal.
Vamos com um post não técnico…

Na semana passada eu completei um ano longe da nave mãe, vulgo Microsoft, estou em minha própria empresa, a Sr. Nimbus, e aproveito para deixar uma pequena retrospectiva e comentários rápidos sobre o que eu ando observando.

Obs: quando eu digo "longe" realmente significa sem ser funcionário da empresa, pois nunca deixei de conversar com meus amigos, trabalhar junto ao MSDN/TechNet e de falar sobre produtos e frameworks que eu tenho um pouco mais de contato.

Já se foi um ano como empresário, instrutor, consultor, estudante, ajudante da comunidade e SQLGeek. Muitas máscaras para um mesmo indivíduo, muito trabalho acompanhado de muito crescimento profissional e, felizmente, tudo mais ou menos dentro das minhas expectativas e planejamento.


O trabalho

Frequentemente me perguntam se eu me arrependo de ter saído da Microsoft, e a resposta é: ainda não deu tempo para arrepender e até agora as coisas estão fluindo relativamente bem.

Hoje eu tenho maior liberdade para atuar em diversas frentes e posso trabalhar como suporte, evangelista, consultor, instrutor, enfim, desfrutar de várias frentes e desafios. Isso é excelente, pois me permite estar acompanhando as novidades e ao mesmo tempo colocando a mão na massa, então trabalho com a combinação ideal (ao meu ver), onde posso trazer vivências para os treinamentos e ensinar os clientes durante uma consultoria através de passagem de conhecimento, sem guardar segredos.

Porém nem sempre tenho acesso aos casos mais desafiadores (apesar se já ter pego algumas boas pedreiras) e aquele antigo costume de trabalhar diariamente com grandes clientes sempre bate à porta, mas uso isso como um incentivo.

Nunca consegui trabalhar poucas horas no meu dia (são 4:59 da manhã e estou com esse post desde 3:45), então seja na Microsoft ou na Sr. Nimbus eu me dedico muito mais do que as 8 horas de regra, as preocupações são diferentes, mas o volume de trabalho é um pouco maior.


O mercado

Esse é um tema polêmico e sim, acho que participamos de um dos mercados mais caóticos e prostituídos, o de TI.

Acho que no fundo todas as empresas procuram evoluir com seus processos e melhorando paulatinamente, mas ainda acho que falta em muitas empresas uma mentalidade de longo prazo e ações concretas para realmente implementarem aquele discurso bonito dos homens engravatados. Por outro lado temos os profissionais, que devem se manter atualizados e procurar serem melhores no que fazem, mas nem sempre é isso que acontece.

Hoje vivemos um cenário onde é necessário economizar e fazer bom uso do dinheiro (como se isso não fosse importante sempre), e mesmo assim fico vendo empresas rasgando dinheiro e não investindo em um de seus bens mais importantes, os funcionários.

A área de TI muda com uma frequência inacreditável e para o profissional se manter atualizado não é fácil, então é necessário que a pessoa se dedique a isso e a empresa também abrace a causa. Mas o que vejo é:

• Muitos funcionários que não se importam com sua evolução técnica e profissional.
• Funcionários que não recebem treinamentos adequados para o papel que desempenham.
• Empresas que optam por gastar o mínimo possível na capacitação dos funcionários, normalmente depois que a tecnologia em questão já foi (mal) empregada.

Faço muitas visitas a clientes e ouço gerentes de TI reclamando da prostituição dos seus funcionários e vice-versa. E acho que nós, talvez uma característica da nação, preferimos reclamar a fazer alguma coisa a respeito.

Vou citar alguns exemplos das atrocidades que vejo por aí:

• Gerente de TI reclama que profissionais recém (ou ainda não) formados estão pedindo salários altos e achando que são especialistas. Verdade, temos muitos moleques arrogantes hoje no mercado que ainda não perceberam o valor da experiência.
○ Mas este se recusa a liberar o funcionário 1/2 período para este fazer um treinamento, que ele próprio está pagando do seu bolso, já que empresa não vai pagar.
• Recebo uma ligação de um potencial cliente reclamando que o consultor atual não está atendendo a altura e não conhece de verdade o SQL Server.
○ Quando faço minha proposta o cliente reclama que o preço está um pouco mais alto do que o consultor que já atua na casa... Fico perplexo. O que ele esperava? Então aproveite o atual.
• Empresa faz seleção para analista júnior de banco de dados e eu estou tomando um café perto de um candidato que comenta "putz, me deu um branco e esqueci o que é join".
○ Eu não me candidataria a algo que eu não estou preparado ou conseguiria me preparar, é diferente planejar, aprender e executar, de simplesmente achar que o jeitinho brasileiro funciona.
○ O candidato que passa na prova diz que seu salário atual é de R$ 15.000 e quando empresa diz que o salário é R$ 4.000 (números fictícios) ele diz: aceito! Algo muito estranho no ar... Melhor mandar o cara embora.
• Já ouvi mais de uma vez: prefiro pagar menos e ter algo 75% do que gastar um pouco mais agora e ter algo próximo de 100%.
○ Pasmem, isso é o que me deixa mais assustado. Vejo clientes perdendo centenas de milhares de reais mensalmente, mas se recusando a investir um pouco mais e resolver o problema. A conta não bate na minha calculadora…

Formou-se um ciclo vicioso, as empresas em busca do lucro (e minimizar o prejuízo de projetos mal feitos) paga bem a um ou dois e fica no resto com uma equipe fraca. Esse profissional quando estuda qualquer coisa (durante uma semana) sai pulando entre empregos (trampolim) para tentar aumentar um pouco o salário. A empresa não vê fidelidade nos funcionários e acaba não investindo, pois eles vão sair de qualquer jeito. E aquele funcionário que quer fazer a coisa direito? Boa sorte...

Acho que temos que corrigir os dois lados e gosto de ver quando existe uma parceria entre empresa e funcionário. Quando ouço um ou outro reclamando eu digo: ou faça a coisa melhorar ou então vá embora. Se sua empresa não investe em você, procure uma que o faça, mas também faça o máximo para corresponder a altura, senão é apenas um idiota pedindo algo que não merece.

Tenho muitos exemplos de cenários tristes que vi nos últimos anos e vou ficar com uma frase que ouvi de um arquiteto da Microsoft "As empresas nunca têm dinheiro para fazer o projeto da maneira certa, mas sempre têm dinheiro para corrigir o que foi feito de errado".


A empresa

Hoje a Sr. Nimbus está engatinhando e iniciando uma jornada que, esperamos, dure longos anos e tenha uma história feliz para contar. E o lado bom de fazer parte disso é que você pode colocar na empresa o que acredita ser certo e moldá-la de acordo com o seu perfil de seus mentores. Não acredito em dinheiro rápido e lucros astronômicos, mas sim em trabalho árduo e dedicação.

Planejamos investimentos pesados em nossos funcionários, com participação em eventos nacionais e internacionais, além de tempo para estudar. Precisamos de um veio capitalista (ou senão falimos, né?), mas queremos que todos tenham uma visão mais aberta, ajudem a comunidade técnica e tenham responsabilidade social. Não é o lucro pelo lucro.

Hoje fazemos algumas trocas que poucas empresas fariam, facilidade de uma startup, mas que vai se manter pois está na cultura da Sr. Tudo isso sempre buscando a excelência no que fazemos e a diferenciação no mercado e, sei que ouvimos isso todo dia e já virou piada, mas temos que fazer melhor.

No fim vamos aos poucos abraçando as tecnologias que nos são familiares e crescendo de forma cadenciada e consolidada. E claro, dentro da empresa cada frente possui seu líder e seus objetivos de curto e longo prazo, e eu sou quem orienta nossas ofertas de SQL Server. Então, enquanto não tivermos os melhores treinamentos e serviços de SQL Server reconhecidos pelo mercado, acho que vou continuar inquieto e acordando de madrugada, para pensar na Sr. Nimbus e em nossas ações.

Utopia? Só o tempo vai nos dizer...

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

sexta-feira, 26 de março de 2010

SQL Server 2008 Internals em São Paulo

Bom dia pessoal.

Todas as notícias e informações da Sr. Nimbus podem ser encontradas no site http://www.srnimbus.com.br.

Com base no levantamento e interesse nos treinamentos da Sr. Nimbus, voltarei inicialmente para São Paulo (onde a demanda é maior) para entregar novamente o curso SQL03 - SQL Server 2008 Internals.
Da última vez que eu estive em São Paulo a avaliação mostrou que 100% das pessoas acharam o curso e instrutor excelentes, e fariam um novo treinamento da Nimbus, então vamos repetir a dose!

O treinamento acontecerá em São Paulo no mês de Maio e gostaria de destacar alguns pontos...

1. O treinamento acontecerá nos dias 11, 12, 13, 18, 19 e 20 de Maio/2010. Trabalharemos período integral, com exceção dos dias 11 e 18, quando o treinamento se iniciará 14:00h.
a. Espero que quebrando-o em duas semanas fique mais simples a negociação da ausência de cada um no trabalho.
2. A turma precisa de um mínimo de 8 alunos para se confirmar, então assim que receber oito propostas assinadas já confirmarei o treinamento.
a. O número mínimo de alunos deve ser atingido até o dia 21 de Abril para confirmação da turma.
b. Recebemos proposta assinada por via digitalizada ou fax (número na proposta).
3. O local ainda não está definido, mas ouvindo as sugestões que recebi, vou procurar uma sala perto de estação do metrô e da avenida paulista.
4. Iremos trabalhar com o limite de espaço da sala escolhida, então como ainda não tenho o número exato, as vagas serão priorizadas pela ordem de recebimento das propostas assinadas.
5. O curso é bem denso, então aconselho aproveitar o intervalo entre as aulas para dar uma revisada no que discutiremos.

Espero em breve estar em São Paulo para mais um treinamento de Internals do SQL Server 2008.
Quaisquer dúvidas, estou à disposição.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

quinta-feira, 25 de março de 2010

[Download] Webcast - Introdução ao StreamInsight

Oi turma, beleza?
Hoje no horário do almoço eu gravei mais um webcast, dessa vez sobre o StreamInsight, apesar das falhas do meu áudio o resultado foi legal e acredito que eu tenha conseguido esclarecer um pouco o que é o StreamInsight, agora é continuar aprofundando no assunto que é mais do que interessante.

Infelizmente a documentação sobre o assunto ainda está se formando e quem estiver brincando com o StreamInsight pode esperar uma pequena curva de aprendizado. Já li toda a documentação disponível (incrível, né? RTFM!) e ainda tenho muitos questionamentos , então o jeito vai ser começar a perguntar aos universitários e, se tudo der certo, arranjar uma prova de conceito para destrinchar o distinto.

Aproveitando o gancho, eu acho que no SQL Server 2008 R2 o pessoal fala muito sobre PowerPivot, Multi-server management, Datacenter, Parallel data warehouse, enfim, sobre coisas bem interessantes, mas acabam esquecendo o StreamInsight e Master Data Services.

Como acredito que ambos são tão interessantes quanto os outros e que teremos muitos cenários para aplicá-los, digo em voz alta que são assuntos onde estou investindo tempo de estudo no SQL Server 2008 R2. Já tenho no pipe alguns eventos onde vou falar sobre o SI (pronto, comecei a dar apelidos) e MDS, assim que tiver mais informações eu anuncio para vocês.

Disponibilizei o PDF da apresentação e o projeto do Visual Studio 2010 que eu utilizei durante a apresentação. AQUI.



Para quem está ligado no MDS e SI, vamos trocar umas figurinhas!

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

quarta-feira, 24 de março de 2010

[Webcast] Introdução ao StreamInsight

Bom dia pessoal, tudo bem?
Na correria isso já ia passar em branco. É amanhã, 12:00h!
Amanhã eu volto ao LiveMeeting para fazer mais um webcast do MSDN, e dessa vez vou explorar um assunto bem novo, o StreamInsight. O StreamInsight é um recurso do SQL Server 2008 R2 e é a solução da Microsoft para cenários CEP (Complex Event Processing).

Na apresentação eu vou falar um pouco do objetivo do StreamInsight, exemplos de cenários que podem se beneficiar da tecnologia, visão arquitetural da solução e onde ele se encaixa, além de explorar uma demonstração do StreamInsight para tentar clarear um pouco. Ficou curioso?

O link para inscrição para o Webcast: "Introdução ao Microsoft SQL Server 2008 R2 StreamInsight" está aqui: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032440207&EventCategory=4&culture=pt-BR&CountryCode=BR

Até amanhã.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

Cópia de conteúdo na era da Internet

Vou aproveitar um gancho e falar de um assunto importante: cópia de conteúdo.

Eu acompanho blogs e twitters de gente conhecida e nos últimos dias andou rolando trocas de farpas públicas, qual o motivo? Tudo por conta de um consultor SQL Server que estava colocando no blog dele links para uma série de artigos, juntamente com trechos desses artigos (o que não é permitido pela empresa que publicou o artigo). Seja para atrair pessoas para o seu blog ou para realmente ajudar as pessoas e apontar para bons recursos, isso deve ser feito com parcimônia, então algumas figurinhas carimbadas foram direto ao ponto e uma baita discussão se formou.

Deixando a lavação de roupa suja de lado, acho que precisamos nos atentar a esse assunto. Já vi no passado alguns quebra-paus por conta de gente colocando código dos outros em seu livro, ou de RE-utilizarem scripts em uma apresentação sem darem crédito ao autor, enfim, coisas que você observa quando está atuando no mercado e com a comunidade técnica, dito isso escrevo algumas sugestões.

0 – Não vamos restringir demais e evitar do conteúdo se espalhar, pelo contrário, copiem à vontade e ajudem outras pessoas, mas sejam respeitosos e atribuam os devidos créditos.
1 – Se você têm um recurso na web que gostou bastante pode livremente blogar e twittar a respeito, mas não copie fielmente o conteúdo, simplesmente teça seus comentários e aponte para a página onde o conteúdo se encontra.
2 – Não é feio usar como base outras apresentações ou reutilizar o script de alguém, afinal temos que partir de algo para aprender, mas deixe claro para todos a fonte que foi utilizada. A maneira certa seria perguntar para o autor se você pode usar a informação, mas nesse mundo globalizado o controle e pouco e não preciso de ninguém me perturbando por algo simples.
3 – Se você não têm propriedade para falar sobre um determinado assunto ou está aprendendo, então não faça a apresentação ou deixe claro para os ouvintes, pois pior do que não ensinar os outros é ensinar errado. Todos erram e eu também, mas podemos evitar alguns tipos de constrangimentos.
4 – Procure criar novos conteúdos ou variações do que você encontra, que possam ser úteis. O mundo já está cheio de assuntos repetidos e acho que precisamos gerar mais conteúdo técnico diferenciado. Torço para nós no Brasil continuarmos a elevar o nível das discussões e ficarmos de igual para igual com os EUA, por exemplo.
5 – Se vai precisar usar vários (muitos mesmo!) recursos criados por outro profissional, aí é melhor conversar com ele antes. Dessa forma você garante a amizade e quem sabe ainda não consegue de quebra um mentor.
6 – Ler alguns artigos e fazer uma demo não torna você um especialista, cuidado com essa falsa impressão. Procure continuamente se aprimorar e a reconhecer suas fraquezas.

Eu tenho milhares de posts apontando para artigos, downloads ou novidades, e continuarei fazendo isso, pois acho que estou bem antenado nas novidades e gosto de repassar isso às pessoas, mas vou procurar sempre colocar assuntos diferentes, afinal eu acho que é isso que as pessoas mais gostam de ver.

No fim das contas o rapaz já se retratou: http://sqltechconsulting.com/2010/03/24/plagiarism-and-attributions-on-the-internet/
E até fizeram uma piadinha no YouTube: http://www.youtube.com/watch?v=4DWR3zdUsQA

Continue estudando, sempre!
Eu brinco com o SQL Server faz uns 10 anos, então quem sabe daqui a mais uns 10 eu começo a realmente entender o assunto de verdade... ;-)

Docendo discimus

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

terça-feira, 23 de março de 2010

[Artigo] Herança no EF4 e Identity no SSDL

Este artigo descreve brevemente o uso de herança (type per hierarchy) no Entity Framework 4.0, mas destaca um problema que enfrentei com o modelo de entidades quando estava fazendo o mapeamento a partir do banco de dados.
No fim o problema talvez poderá ser resolvido com o RTM do Visual Studio 2010 ou continuar em aberto (existe uma entrada no connect), então pode ser que você precise de uma mãozinha sobre o assunto.

No artigo eu também comento sobre as exceções “A member named cannot be defined in class . It is defined in ancestor class ” e “A value shared across entities or associations is generated in more than one location. Check that mapping does not split an EntityKey to multiple store-generated columns”.

Parti do pressuposto que você já conhece um pouco do Entity Framework, caso contrário, eu já gravei alguns webcasts sobre o assunto e um artigo que escrevi sobre as novidades do EF 4.0 deve sair qualquer dia desses em uma publicação nacional.

Quer ver o artigo completo? Baixe-o aqui.



[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

sábado, 20 de março de 2010

Apresentação - SQL Server 2008 R2

Bom dia pessoal.
Acabei de fazer minha apresentação sobre o SQL Server 2008 R2 para o evento Community Launch em Brasília. Com um público moderado (usual de Brasília), optei por fazer uma apresentação com menos demos, mostrando a racionalidade detrás de cada nova funcionalidade, afinal de contas teremos em breve uma série de eventos para mostrar as novas funcionalidades.

Acho que o pessoal anda falando pouco do StreamInsight e Master Data Services, então vou procurar falar mais sobre essas novas funcionalidades que, na minha opinião, vão ser muito importantes em breve.

No fim eu acho que o pessoal gostou (pelo menos todo mundo me pareceu concentrado hahahaha) e já na próxima semana vou começar a apresentar detalhes dos recursos, como um webcast do StreamInsight.

Se você quer dar uma olhada no que eu falei, baixe o PDF.



[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

segunda-feira, 15 de março de 2010

Community Launch - Novos produtos e Copa Microsoft de Talentos

Bom dia pessoal.
Nesse sábado vários grupos de usuários espalhados pelo Brasil, com o apoio da Microsoft, irão realizar eventos que marcam o início da Copa Microsoft de Talentos e também uma introdução a uma série de novos produtos que veremos debutar neste ano. E nós de Brasília, claro, teremos nosso evento local, onde além de vermos o que está por vir podemos aproveitar para colocar em dia nosso networking e conhecer quem ajuda a tecnologia do DF girar.

Eu estarei lá, apresentando uma visão geral do SQL Server 2008 R2, que vai ser o ponto de partida para discutirmos o produto em outros eventos, inclusive no grupo SQLServerDF. Então se você é profissional de TI e trabalha com a plataforma Microsoft, não pode perder.

Vai participar? Então acesse o site http://www.brasildotnet.net/CopaMicrosoft/CLDF e faça sua inscrição.




Chegaremos 8:00h para um belo café da manhã e depois ouviremos a general session da Microsoft para todo o país, seguido de apresentações dos produtos.

Esse evento marca o início da divulgação técnica dos produtos, sendo que em abril teremos um roadshow da Microsoft aqui em Brasília, que promete muito.
Acho que ja falei demais, agora é esperar o evento e casa cheia!

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

[SQLServerDF] Reunião VII - Introdução a discos e storage

Bom dia pessoal, nessa quinta-feira temos nosso sétimo encontro do grupo SQLServerDF. Começamos 2010 em Março e agora o grupo está a todo vapor!

Seguem as informações do evento...

Local: Codeplan - SAIN Projeção “H” Edifício Codeplan s/108
Data e horário: 18/03/2010, 17:00h ~ 19:30h
Tema: Introdução a discos e storage
Descrição: Nesta apresentação faremos uma pequena jornada pelo mundo dos discos, desde sua criação e história, interfaces de comunicação, tipos de disco e RAID, componentes básicos de uma SAN e seu funcionamento. Após a apresentação o aluno entenderá melhor como funciona esse recurso, de suma importância para o funcionamento adequado do SQL Server.
Palestrante: Wagner Andrade
Mini-CV: Wagner é especialista em SQL Server e Storage, atuando nos últimos anos com a plataforma Microsoft e administração de bancos de dados/storage. Possui certificações Microsoft (MCP, MCTS e MCITP) e SNIA SCSP (SNIA Certified Storade Profissional).

Quer acompanhar o grupo? Começe se inscrevendo em http://groups.google.com/group/sqlserverdf.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

quinta-feira, 11 de março de 2010

Treinamento SQL01 e SQL02 em Brasília

Bom dia pessoal.
Mora em Brasília? É desenvolvedor ou DBA e quer aprimorar o seu T-SQL?

No dia 23/03 eu vou começar aqui em Brasília um intensivão T-SQL de 40 horas para aqueles que querem afiar seus conhecimentos e se tornarem melhores programadores T-SQL. A turma é fechada e pequena (máximo de 6 alunos), para ganharmos em produtividade e podermos ter discussões profundas, e vou compactar os nossos cursos SQL01 e SQL02~(você terá acesso a todo material e labs). Então se você não têm tempo a perder e quer eficiência no aprendizado... cá estamos!

Se tiver interesse em participar, envie um e-mail para mim.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

quinta-feira, 4 de março de 2010

Quais consultas estão utilizando meu índice

Estou dando uma olhada nos scripts que temos como referência para a reunião do SQLServerDF que vai rolar hoje e, por coincidência, um amigo me pegou no messenger para fazer a seguinte pergunta: "Como sei quais são as consultas que estão usando determinado índice?".

Note que ele não quer saber quais são os índices mais ou menos usados (isso temos fácil por DMVs e ele sabe disso), ele quer saber COMO o índice está sendo utilizado.

A maneira que me veio a cabeça foi consultar o plan cache para descobrir os planos de execução que temos guardados e, através do XML, descobrir aqueles que possuem em seu plano o índice que você está analisando.

Para colocar alguma coisa em cache, use o AdventureWorks e faça a consulta "SELECT * FROM Sales.SalesOrderDetail", que vai fazer um scan no índice PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID. Feito isso você já pode consultar a cache de procedimentos para saber quem está usando o índice em questão, usando por exemplo, a consulta (tosca, ok!) abaixo:

SELECT *
FROM sys.dm_exec_cached_plans as ECP
CROSS APPLY sys.dm_exec_query_plan(ECP.plan_handle) AS EQP
CROSS APPLY sys.dm_exec_sql_text(ECP.plan_handle) AS EST
WHERE CAST(EQP.query_plan as varchar(max))
like '%PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID%'


O problema dessa consulta não está somente na ineficiência, mas por procurar pela string, você pode encontrar consultas que não utilizam o índice mas fazem menção ao nome, como essa que acabamos de executar.

Dando uma rápida olhada no XML dos planos de execução, podemos escrever uma consultinha utilizando o método exist() do tipo XML.

SELECT
*,
CASE
EQP.query_plan.exist(N'//*:Object[@Index eq "[PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID]"]')
WHEN 1 THEN 'Usa o índice'
WHEN 0 THEN 'Não usa o índice'
ELSE 'XML é NULL'
END
FROM sys.dm_exec_cached_plans as ECP
CROSS APPLY sys.dm_exec_query_plan(ECP.plan_handle) AS EQP
CROSS APPLY sys.dm_exec_sql_text(ECP.plan_handle) AS EST


Essa consulta analisa cada plano existente procurando pelo elemento Object (em qualquer posição/namespace no XML) que possua o atributo "Index=[NomeIndice]". Com essa consulta conseguimos tirar os casos onde o nome do índice não é usado no plano efetivamente.

Você também poderia usar o exist() no where da sua consulta.

SELECT
*
FROM sys.dm_exec_cached_plans as ECP
CROSS APPLY sys.dm_exec_query_plan(ECP.plan_handle) AS EQP
CROSS APPLY sys.dm_exec_sql_text(ECP.plan_handle) AS EST
WHERE EQP.query_plan.exist(N'//*:Object[@Index eq "[PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID]"]') = 1

Legal né?
Tenho que colocar um disclaimer aqui, eu não sei de cabeça o schema (XSD) que rege o XML dos planos de execução, então escrevi consultas genéricas que me parecem funcionar corretamente, mas pode ser que algum caso ou outro fuja a regra. Se você se deparar com isso, conte para nós!
A consulta não é eficiente, mas como você não vai ficar rodando isso a todo momento, serve de base para brincarmos um pouco com o SQL Server.

Com isso vemos claramente que, com a enorme quantidade de informações que o SQL Server nos oferece, basta usarmos um pouco a criatividade para resolver nossos problemas.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm