Innovation Day Curitiba | 27/08/2011

E ai pessoas! Recebi pelo Márcio Gomes o convite ao 3º Innovation Day de Curitiba-PR (pela minhas contas este deveria ser o quarto ( 1 2 3 )…  mas quem esta contando… rsss), que acontecerá no dia 27/08/2011 no Auditório do Centro Tecnológico Positivo. Infelizmente não vou participar, mas quem puder ir, vá e depois me mande um feedback, pois deve valer a pena.

Abaixo detalhes sobre o evento:

No Innovation Day serão apresentadas novidades sobre diversos temas: Conheça melhor os programas da Microsoft como o Students to Business, DreamSpark entre outros. Aproveite para ver as novidades em relação ao Windows Phone 7 e da plataforma ASP.NET 4 além de conhecer sobre a plataforma de BI no SQL Server 2008 R2.

Programas Microsoft
Palestrante: Márcio Luiz Rossato Gomes

Windows Phone 7 Novidades para Desenvolvedores
Palestrante: Rodolpho Marques do Carmo

Plataforma ASP.NET 4.0
Palestrante: Marcelo D’Avila de Pauli

BI no SQL Server 2008 R2
Palestrante: Tiago Luiz Balabuch

Este é um evento realizado pela COMUNIDADE TÉCNICA com o apoio da MICROSOFT.

Mais informações:
https://msevents.microsoft.com/CUI/EventDetail.aspx?eventID=1032492491&Culture=pt-BR

Centro de Treinamento SQL Server 2008 R2

Já faz um tempo que o Zavaschi e vários outros profissionais de SQL Server estavam organizando o “Centro de Treinamento: SQL Server 2008 R2, uma plataforma de dados completa” no TechNet Brasil, e finalmente neste final de semana vi o resultado no ar.

Este centro de treinamento disponibiliza de forma gratuita diversos vídeos e artigos sobre o SQL Server 2008 R2. Sendo estes materiais elaborados por algumas figuras já bem conhecidas no mundo SQL Server, como Nilton Pinheiro, Gustavo Maia Aguiar, Roberto Fonseca e Fabiano Neves Amorim, também outros profissionais de renome deste meio.

Sério, ficou bem legal! Deem uma olhada:

Centro de Treinamento – SQL Server 2008 R2: uma plataforma de dados completa
http://technet.microsoft.com/pt-br/hh210186

Vídeos que considerei interessantes:

Alta Disponibilidade no SQL Server 2008 R2 – Database Mirroring
http://technet.microsoft.com/pt-br/sqlserver/hh207251

Alta Disponibilidade no SQL Server 2008 R2 – Failover Clustering
http://technet.microsoft.com/pt-br/sqlserver/hh207252
http://technet.microsoft.com/pt-br/sqlserver/hh207253

Conhecendo o Transparent Data Encryption do SQL Server 2008 R2
http://technet.microsoft.com/pt-br/sqlserver/hh207211

Replicação de dados no SQL Server 2008 R2
http://technet.microsoft.com/pt-br/sqlserver/hh207193

Usando recurso de Full-Text Search do SQL Server 2008 R2
http://technet.microsoft.com/pt-br/sqlserver/hh241310

Meus vídeos (sim, também apareci por lá):

Controlando modificações no SQL Server 2008 R2 – Change Tracking
http://technet.microsoft.com/pt-br/sqlserver/hh207272

Rastreando as modificações dos seus dados no SQL Server 2008 R2 – Change Data Capture
http://technet.microsoft.com/pt-br/sqlserver/hh207257

Artigos relacionados:

Change Tracking
https://sqlfromhell.wordpress.com/2011/04/12/change-tracking-overview
https://sqlfromhell.wordpress.com/2011/04/16/change-tracking-demo

Change Data Capture
https://sqlfromhell.wordpress.com/2011/04/05/change-data-capture-cdc

Full-Text Search – FREETEXT e FREETEXTTABLE

Quem achou muito complicado este tal Full-Text Search com as funções CONTAINS e CONTAINSTABLE, pode ficar tranquilo, pois existe uma alternativa que simplifica toda a complexidade das pesquisas.

Esta alternativa é o uso da função FREETEXT, que possibilita pesquisas com todas as variações obtidas por clausulas (OR, AND), prefixação/sufixação e tesauros (sinônimos) de forma simplificada, deixando o Full-Text Search encarregado de recuperar todos os registros de uma determinada tabela que possuem alguma relação com alguma das palavras informadas.

Conforme o exemplo a seguir, para a pesquisa de todas as variações da palavra “Azul” com a função CONTAINS eram necessários os predicados INFLECTIONAL e THESAUROS, no caso da função FREETEXT, somente a palavra a ser pesquisada:

No caso de mais de uma palavra, a situação complicava mais ainda com a função CONTAINS, mas com FREETEXT, a solução ainda se mantém simples:

A função FREETEXT permite até a utilização de frases e textos como critérios para pesquisa:

E para aqueles que gostaram da função CONTAINSTABLE e querem ter a mesma facilidade da função FREETEXT, existe a função tabular FREETEXTTABLE:

Apesar de ser mais fácil utilizar a função FREETEXT, sempre verifique se a função CONTAINS é apta como solução ao seu cenário ao invés da FREETEXT, visto que a facilidade da função FREETEXT algumas vezes pode sair muito cara no quesito desempenho em comparação à função CONTAINS.

Espero que vocês tenham gostado deste quinto artigo sobre o Full-Text Search no SQL Server. Qualquer dúvida, crítica ou sugestão, sintam-se à vontade de comentar ou de me contatar por e-mail e Twitter.

Embora eu tenha material suficiente para mais artigos aprofundando sobre Full-Text Search, dedicarei os próximos artigos na abordagem de outras features e ferramentas úteis para o dia-a-dia do profissional de banco de dados.

Full-Text Search – CONTAINSTABLE

Nas situações que a função CONTAINS retorna muitos registros, como filtrar estes registros por importância? Para responder esta pergunta, temos a função tabular CONTAINSTABLE, que permite recuperar informações sobre importância do critério de seleção sob os registros recuperados.

A função CONTAINSTABLE utiliza da seguinte sintaxe:

CONTAINSTABLE(Tabela, Colunas, ‘TextoPesquisado’)

E o seu resultado não diferencia da função CONTAINS:

Mas como estamos com uma função tabular em mãos, mais informações podem ser obtidas, no caso as colunas KEY e RANK.

A coluna KEY é o valor do índice único que mapeamos na criação do catálogo, no caso a chave primária da tabela:

E temos a coluna RANK, que informa a importância do termo da pesquisa no resultado, onde, quanto maior a importância, maior o valor retornado.

Para melhorar a percepção da coluna RANK, o prefixo ISABOUT/WEIGHT permitirá estabelecer “pesos” de 0 a 1 para cada palavra encontrada, conforme o exemplo, onde “Texto” é mais importante que a palavra “Modelo” no critério de seleção:

Mas, se quero só recuperar alguns registros deste critério de seleção vou ter que utilizar um TOP/ORDER BY?

Ao invés do TOP/ORDER utilize a própria função CONTAINSTABLE:

Concluído mais um artigo sobre Full-Text Search, espero que tenham gostado!

Full-Text Search – CONTAINS – Parte 2

E ai pessoas!

Ando meio sumido, visto que assumi alguns projetos grandes de infraestrutura e desenvolvimento que estão me roubando as poucas horas de descanso que utilizo para escrever no blog.

Mas vamos para a segunda parte do artigo dedicado a função CONTAINS! Como vimos no artigo anterior, para recuperar registros de uma tabela que possuem a palavra “azul” em qualquer posição, podemos utilizar da função CONTAINS:

O problema começa quando o que queremos recuperar são as variações de uma determinada palavra, assim temos o recurso do ‘*’ no caso dos sufixos:

Visto que questões de gênero (masculino/feminino) e grau (singular/plural) ainda não são consideradas, se torna necessário o uso de mais um predicado, FORMSOF(INFLECTIONAL …):

Por fim, podemos juntar as duas soluções em uma só:

Para complicar mais sua vida, surge a necessidade de considerar os sinônimos (ou tesauros http://pt.wikipedia.org/wiki/Tesauro)… Bem, você pode criar uma solução própria com uma tabela que relacione todos os sinônimos, ou utilizar o próprio Full-Text Search nisso.

A solução do Full-Text Search faz uso do predicado FORMSOF(THESAURUS…), mas enquanto não é configurado, não se pode esperar muito:

Cada instância do SQL Server possui seu Full-Text Data (ou simplesmente FTData), que possui uma relação de configurações do Full-Text Search para cada idioma no formato XML. Para encontrar estas configurações, siga o seguinte caminho:

C:\Program Files\Microsoft SQL Server\{Instância do SQL Server}\MSSQL\FTData

Conforme o meu cenário:

Nesta pasta, temos as configurações dos tesauros. Sendo tsglobal.xml utilizado por todos os idiomas, tsptb.xml para o idioma “pt-BR” e tsptg.xml para o idioma “pt”.

Para demonstrar como configurar estes arquivos, segue uma situação onde configurei no arquivo tsglobal.xml que “Azul” e “Azulado” são sinônimos e “AZ” é sigla de “Azul”.

Após configurar os arquivos XML, atualize as linguanges do Full-Text Search e identifique o código da linguagem Global (Neutral) e pt-BR (Brazilian)

Com o código da linguagem (lcid), será possível atualizar as configurações de tesauros do SQL Server, com a stored procedure “sp_fulltext_load_thesaurus_file”:

Por fim, executado o predicado de tesauros com a sigla “AZ” temos como resultado registros com a palavra “azul” e com a palavra “azul” temos os registros que possuem as palavras “azul” e “azulado”:

Full-Text Search é um recurso fantástico! Mas ainda não acabou, escreverei mais artigos sobre as funcionalidade do Full-Text Search, aguardem!

Artigos relacionados:

Full-Text Search – Overview:
https://sqlfromhell.wordpress.com/2011/02/10/full-text-search-overview

Full-Text Search – CONTAINS – Parte 1:
https://sqlfromhell.wordpress.com/2011/02/21/full-text-search-contains

24 horas de SQL Server 2008

Esta afim de 24 horas de treinamentos de graça sobre SQL Server 2008 R2?

Se sua resposta é SIM, então dia 19 de Maio prepare suas garrafas de café, pois será o dia que vai começar o “24 Hours of PASS: Celebrating SQL Server 2008 R2”!

Um ótimo evento para profissionais de banco de dados com focos em Business Intelligence, administração de banco de dados e desenvolvimento!

Beleza, se ainda não te convenci, só de uma olhada nas lendas que estarão palestrando: Donald Farmer, Brent Ozar, Adam Machanic, Glenn Berry e muitos outros…

24 Hours of PASS

Maiores detalhes:
http://www.sqlpass.org/24hours/2010

Primeiro dia no Microsoft Tech-Ed Brasil 2009


Eu e o Thiago Zavaschi chegando no evento

Depois de uma abertura fenomenal da staff da Microsoft, com demonstrações incríveis das novas tecnologias Microsoft como o Windows 7, Hyper-V, Visual Studio, Office e SharePoint Server 2010, SQL Server e Windows Server 2008 R2,  o Batalhão de Otimização da Performance Empresarial (BOPE), como a staff da Microsoft se denominou na abertura, mostrou os diferenciais competitivo destas ferramentas, sem deixar de usar do bom humor, principalmente ao criar competições muito criativas entre as principais ferramentas de escritório do mercado (Office 2008 e 2010, contra Google Docs e BrOffice).


BOPE – Batalhão de Otimização da Performance Empresarial

Outras demonstrações muito interessantes foram o Windows Server 2008 R2 (que permite desligar um servidor em produção de forma imperceptível ao usuário que utiliza uma aplicação em um ambiente de virtualização), o Windows 7 (interoperabilidade), sem contar com o X-Box Live (com uma visão muito alucinante de que o futuro está muito perto) e o SilverLight 3 (mostrando a morte do Adobe Bridge pelo Expression Blend).

Tive a oportunidade de presenciar a palestra sobre as ferramentas de Business Intelligence do SQL Server realizada pela staff de SQL da Microsoft, também as palestras do Péricles Rocha sobre auditória e segurança com o SQL Server 2008 e do Luciano Moreira demonstrando muito do potencial que há no SQL Server 2008 Integration Services.


Michel Levi, Presidente da Microsoft Brasil

Tudo isso, além de conhecer pessoas de outros Centros de Inovação Microsoft pelo Brasil e ver o Márcio Fábio Althmann do SharpCode receber o primeiro lugar do Win The 7 (Parabéns Márcio!!! Boa viagem para os EUA!!!).

A versão do Zavaschi sobre o evento:
http://cid-8de5a8efc1819eca.spaces.live.com/blog/cns!8DE5A8EFC1819ECA!363.entry

Mal espero saber o que virá amanhã!