Busca de Documentos (Marilia TechDay 2011)

50
2 Busca de Documentos Fabricio Catae (Microsoft) Blog: http://blogs.msdn.com/fcatae/ Twitter: @ fcatae Lipoaspiração no seu banco de dados Fabiano Neves Amorim MCITP BI, DBD, ADM / MCTS / MCP Blog: http://blogs.solidq.com/fabianosqlserver Twitter: @ mcflyamorin

Transcript of Busca de Documentos (Marilia TechDay 2011)

Page 1: Busca de Documentos (Marilia TechDay 2011)

2

Busca de DocumentosFabricio Catae (Microsoft)Blog: http://blogs.msdn.com/fcatae/Twitter: @fcatae

Lipoaspiração no seu banco de dadosFabiano Neves Amorim MCITP BI, DBD, ADM / MCTS / MCPBlog: http://blogs.solidq.com/fabianosqlserverTwitter: @mcflyamorin

Page 2: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Agenda

Parte I – Busca de DocumentosLinguagemSemânticaAprendizadoBusca com índices SQL

Parte II – Lipoaspiração de ÍndicesArmazenamento de DadosDiferentes ÍndicesTipos de Dados

Page 3: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Milhares de anos atrás...

Page 4: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

A vida era perigosa...

Page 5: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Como sobreviver?

Page 6: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Desenvolvimento

Page 7: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Evolução

Page 8: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Mundo Conectado

“Conhecimento é poder”

Page 9: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Quantidade de Informação

KilobyteMegabyteGigabytePetabyteExabyte

300 Exabytes ~ 300000000000000000000 bytes

Ref. http://uscnews.usc.edu/science_technology/how_much_information_is_there_in_the_world.html

Page 10: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Linguagem Formal

Linguagem de programação

CompiladorParserMáquinas de estado

Syntax Error

Page 11: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Linguagem Natural

“Linguagem do dia a dia”

Temos um mecanismo de “parser” robusto, que determina o significado apropriado de acordo com o texto presente

Em alguns casos, a simples presença de uma palavra é suficiente para determinar o contexto no qual a informação está inserida.

Page 12: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Exxmplo

Nós, sers humns, soms capzs de ler texts sem q haj tod a infrmação presnt. Errs gramtcais ou de sintx podm criar difculdad na comprnsão do text, mas não impdem su leitura.

Page 13: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

“Parser Humano”

Linguagem?

Memória?

Visão?

Page 14: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Semântica

Significado das palavras

Embarcação Barco Navio

Page 15: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Diferença Semântica

Palavras polissêmicas = diferentes significados

Contexto é decisivo

1. Comi uma manga verde2. Camisa de manga longa

Page 16: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Associação de Palavras

Complete a frase:

A vovó fez __ziig_________ .

Page 17: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Aquisição de Linguagem

Complete a frase:

A vovó fez ______________ .

CAFÉ

Page 18: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Aprendizado

A linguagem possui uma estrutura e pode ser representada por regras (Chomsky)

Recentemente: As regras tem sido substituídas por modelos dinâmicos, baseados em Aprendizagem de Máquina e Métodos Estatísticos.

Page 19: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Crianças: Paradoxo?

Há crianças de 3 anos que falam alemão muito melhor do que eu...

Crianças não ficam em classes de aula estudando as regras gramaticais

Como uma criança é capaz de adquirir uma linguagem em tão pouco tempo?

Page 20: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Por que aprender uma língua? (Computador)

Mecanismos de busca na Internet

Categorização de emails e filtros de Spam

Reconhecimento de plágios de trabalhos

Identificação de sentimentos positivos ou negativos de uma crítica

Page 21: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Como Aprender?(Computador)

Linguagem NaturalSegmentaçãoEtiquetamentoReconhecimento de EntidadeÁrvores SemânticasEquações Lógicas

Futuro: Banco de Dados de Conhecimento

Page 22: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Segmentação

Segmentação de frases e palavras

Que fome! Quando é a hora do lanche da tarde?

Meu pai nasceu nos E.U.A. e cresceu em S. Paulo.

Tokenização (Simbolização)S. PauloSão Paulo

Page 23: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Etiquetamento

Classificação do Símbolo

A casa amarela precisa de reforma.

subst. subst.verbo prep.adj.art.

Page 24: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Reconhecimento de Entidades

Existem palavras que podem definir o contexto.

Entidades: Pessoa, Local, Nome, Referência

Exemplo: xyz upd uj Barack Obama ud pla jhghgga blablabla...

Page 25: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Árvore Semântica

Diagrama que descreve a função gramatical de cada palavra de uma sentença

Identificação:SujeitoPredicadoObjetoRelação entre sentenças

Page 26: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Equações

Objeto e AçãoCachorro = Mordeu(Homem)Existe( Homem = Andava() )Homem = João

Equaçãoc | c = M(h)h | A(h) = 1h = “João”c = ?

Page 27: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

No futuro, como seria...Banco de Dados de Equação

c = M(h)h | A(h) = 1

c = M(h)h | A(h) = 1

c = M(h)h | A(h) = 1

Page 28: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

O que é uma BUSCA?

Page 29: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Busca x Consulta

Consulta EstruturadaRuas (Cidade = Marília)Empregos (Cargo = Meio-período, Salário > 5000)

Busca não-estruturada“Quais são as ruas na cidade de Marília?”“Quero emprego fácil e ganhando bem!”

Page 30: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Banco de Dados: SQL Server

Recurso de Full-TextÍndices InvertidosDicionáriosStop Words

Page 31: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Como montar site de busca?

<HTML>

PróximasPáginas

ConteúdoLinks

Full Text

Page 32: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Índice Invertido (FullText)

Os documentos contém conjuntos de palavras

Documentos são identificados por números

TermosPizza = 1, 2, 3Noite = 1Feliz = 1, 2, 3

Page 33: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Índices SQL

Dados Armazenados podem ser indexados por questão de performance

Index Não-EstruturadoFull-Text

Index EstruturadoClusteredNon-Clustered

Page 34: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

35© 2011 SolidQ

Parte II – Lipoaspiração de ÍndicesSobre o que é esta sessão?Features SQL Server 2008R2Demo

Page 35: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Sobre o que é esta Sessão ?

Não gaste dinheiro! Está tudo ao seu alcance!Maximizar uso de recursosNão precisa alterar aplicaçãoRecursos SQL Server 2005, 2008 e 2008R2

+ =

Page 36: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Clustered Index

Não únicosGera Uniqueifier (4 bytes extra) Msg 666, Level 16, State 2, Line 14

The maximum system-generated unique value for a duplicate group was exceeded for index with partition ID 72057594038845440. Dropping and re-creating the index may resolve this; otherwise, use another clustering key.

Mal desenhadosLeva sua chave para todos os índices non-clustered

Page 37: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Non-Clustered IndexÍndices duplicados

Porque o SQL Server deixa eu duplicar um índice?Non-Cluster igual ao Cluster não é índice repetido

Não utilizadosComo encontrar índices não usados? R: DMVs

Usar IncludeCuidado com ferramentas de modelagemNunca crie um índice só por criar

Please, ix_testes devem ser apagados após o teste

Obs.: Esse aviso não é para você, é para seu colega que faz isso!

Page 38: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Filtered IndexDisponível a partir do SQL Server 2008Bom para tabelas com dados históricos

Ex: CREATE INDEX ix_Filtrado ON Pedidos(ID_Cliente…) WHERE Data_Pedido > ‘20100101’CREATE INDEX ix_Filtrado ON Clientes(Nome…) WHERE Cidade IS NOT NULL

http://connect.microsoft.com/SQLServer/feedback/details/454744/filtered-index-not-used-and-key-lookup-with-no-output#detailshttp://connect.microsoft.com/SQLServer/feedback/details/643850/filtered-index-execution-plan-is-not-optimized

Page 39: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Hash IndexesUtiliza CheckSum ou BINARY_CHECKSUMDiminui consideravelmente o tamanho de um índiceCenários específicos: Código de Barras, Títulos, Descricao…

Page 40: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Fillfactor e PadIndex< Pergunta > (Perguntar para audiência)

Se eu definir o fillfactor em 30%, significa que terei 30% do espaço reservado para futuras modificações.

VerdadeiroFalso

Mundo perfeito = Analisar tabela por tabelaMundo real, definir um valor padrãoSe tens um Rebuild dos índices diário, porque usar fillfactor?Não ignorar o “Pad_Index = ON”

Page 41: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Sparse ColumnsNull ocupa espaçoSparse tem espaço otimizado para valores “Null”Valores não “Null” ocupam mais espaço com SparseConsidere usar quando a porcentagem de valores null for pelo menos entre 20-40%Olhar tabela de ganho de espaço no Books OnlineUsar Sparse em colunas com alta frequência de nullExemplo de cenário onde usar sparse:

Tabela de Clientes coluna Data_ObitoTabela de Clientes coluna Nome_Sogra

Page 42: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Data TypesUsar o datatype correto para o valor a ser armazenadoNão precisa ser pão duroExemplos:

DateTime para SmalldateTimeDatetime para DateSmallDateTime para DateBigInt para IntegerInteger para SmallIntSmallInt para TinyIntChar para VarCharNVarchar para VarChar

Data Type Tamanho em BytesDateTime 8SmallDateTime 4Date 3Time 5BigInt 8Integer 4SmallInt 2TinyInt 1NChar(40) 80Char(40) 40

Page 43: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Data Types

Demo Script para consultar melhor datatype…

Page 44: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

VarDecimal

Disponível no SQL Server 2005 Service Pack 2SAP

Disponível apenas na versão EnterpriseReduz o espaço de colunas Decimal e Numericsp_estimated_rowsize_reduction_for_vardecimalSubstituido pelo Page e Row compression no SQL 2008

Page 45: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Page e Row Compression

Disponível apenas na versão EnterpriseComprime os dados das páginasRecurso extremamente poderosoAumenta uso de CPUExemplo de uso

ALTER INDEX XPK ON T1 REBUILD WITH (DATA_COMPRESSION = PAGE)

Page 46: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

DemoExemplos de tudo o que vimosSerá que da para diminuir uma tabela de 1.5 GB para menos que 130 mb?

Page 47: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

SolidQ Virtual Conference

http://tinyurl.com/SolidQConference

Palestrantes nacionais e internacionais:Itzik Ben-Gan (Dispensa comentários)

Prof. Mark Tabladillo (PHD, MCT)Eladio Rincon (MVP SQL Server)

Jesus Gil (MVP SQL Server)Nilton Pinheiro (MVP SQL Server)Diego Nogare (MVP SQL Server)

Fabiano AmorimFelipe Ferreira

Page 48: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Dúvidas ou perguntas? [email protected] | @mcflyamorim http://blogs.solidq.com/fabianosqlserver/ http://www.simple-talk.com/sql/performance/lipoaspiration-in-

your-sql-server-database/

[email protected] | @fcatae http://blogs.msdn.com/fcatae

Page 49: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Apoio:

Page 50: Busca de Documentos (Marilia TechDay 2011)

Marília TechDay |2011

Certificação Microsoft

Microsoft Certified Technology SpecialistMicrosoft Certified IT ProfessionalMicrosoft Certified MasterMicrosoft Certified Architect

Certificação Microsoft (SQL Server)

http://www.microsoft.com/learning/pt/br/certification/cert-sql-server.aspx