Busca de Documentos (Marilia TechDay 2011)
-
Upload
fabricio-catae -
Category
Technology
-
view
77 -
download
2
Transcript of 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
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
Marília TechDay |2011
Milhares de anos atrás...
Marília TechDay |2011
A vida era perigosa...
Marília TechDay |2011
Como sobreviver?
Marília TechDay |2011
Desenvolvimento
Marília TechDay |2011
Evolução
Marília TechDay |2011
Mundo Conectado
“Conhecimento é poder”
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
Marília TechDay |2011
Linguagem Formal
Linguagem de programação
CompiladorParserMáquinas de estado
Syntax Error
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.
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.
Marília TechDay |2011
“Parser Humano”
Linguagem?
Memória?
Visão?
Marília TechDay |2011
Semântica
Significado das palavras
Embarcação Barco Navio
Marília TechDay |2011
Diferença Semântica
Palavras polissêmicas = diferentes significados
Contexto é decisivo
1. Comi uma manga verde2. Camisa de manga longa
Marília TechDay |2011
Associação de Palavras
Complete a frase:
A vovó fez __ziig_________ .
Marília TechDay |2011
Aquisição de Linguagem
Complete a frase:
A vovó fez ______________ .
CAFÉ
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.
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?
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
Marília TechDay |2011
Como Aprender?(Computador)
Linguagem NaturalSegmentaçãoEtiquetamentoReconhecimento de EntidadeÁrvores SemânticasEquações Lógicas
Futuro: Banco de Dados de Conhecimento
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
Marília TechDay |2011
Etiquetamento
Classificação do Símbolo
A casa amarela precisa de reforma.
subst. subst.verbo prep.adj.art.
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...
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
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 = ?
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
Marília TechDay |2011
O que é uma BUSCA?
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!”
Marília TechDay |2011
Banco de Dados: SQL Server
Recurso de Full-TextÍndices InvertidosDicionáriosStop Words
Marília TechDay |2011
Como montar site de busca?
<HTML>
PróximasPáginas
ConteúdoLinks
Full Text
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
Marília TechDay |2011
Índices SQL
Dados Armazenados podem ser indexados por questão de performance
Index Não-EstruturadoFull-Text
Index EstruturadoClusteredNon-Clustered
Marília TechDay |2011
35© 2011 SolidQ
Parte II – Lipoaspiração de ÍndicesSobre o que é esta sessão?Features SQL Server 2008R2Demo
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
+ =
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
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!
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
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…
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”
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
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
Marília TechDay |2011
Data Types
Demo Script para consultar melhor datatype…
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
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)
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?
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
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
Marília TechDay |2011
Apoio:
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