O documento apresenta uma agenda para uma conferência sobre busca de documentos e otimização de índices em bancos de dados SQL Server. A primeira parte discute linguagem natural, semântica e aprendizado de máquina para busca de documentos. A segunda parte fala sobre armazenamento de dados, tipos de índices e técnicas para "lipoaspiração" ou otimização de índices para melhorar o desempenho.
1. 2
Busca de Documentos
Fabricio Catae (Microsoft)
Blog: http://blogs.msdn.com/fcatae/
Twitter: @fcatae
Lipoaspiração no seu banco de dados
FabianoNeves Amorim
MCITP BI, DBD, ADM / MCTS / MCP
Blog: http://blogs.solidq.com/fabianosqlserver
Twitter: @mcflyamorin
2. MaríliaTechDay
|2011
Agenda
Parte I – Busca de Documentos
Linguagem
Semântica
Aprendizado
Busca com índices SQL
Parte II – Lipoaspiração de Índices
Armazenamento de Dados
Diferentes Índices
Tipos de Dados
11. MaríliaTechDay
|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.
12. MaríliaTechDay
|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.
18. MaríliaTechDay
|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.
19. MaríliaTechDay
|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?
20. MaríliaTechDay
|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
29. MaríliaTechDay
|2011
Busca x Consulta
Consulta Estruturada
Ruas (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!”
35. MaríliaTechDay
|2011
Sobre o que é esta Sessão ?
Não gaste dinheiro! Está tudo ao seu alcance!
Maximizar uso de recursos
Não precisa alterar aplicação
Recursos SQL Server 2005, 2008 e 2008R2
+ =
36. MaríliaTechDay
|2011
Clustered Index
Não únicos
Gera 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 desenhados
Leva sua chave para todos os índices non-clustered
37. MaríliaTechDay
|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 utilizados
Como encontrar índices não usados? R: DMVs
Usar Include
Cuidado com ferramentas de modelagem
Nunca 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!
38. MaríliaTechDay
|2011
Filtered Index
Disponível a partir do SQL Server 2008
Bom 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#details
http://connect.microsoft.com/SQLServer/feedback/details/643850/filtered-index-execution-plan-is-not-optimized
40. MaríliaTechDay
|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.
Verdadeiro
Falso
Mundo perfeito = Analisar tabela por tabela
Mundo real, definir um valor padrão
Se tens um Rebuild dos índices diário, porque usar
fillfactor?
Não ignorar o “Pad_Index = ON”
41. MaríliaTechDay
|2011
Sparse Columns
Null ocupa espaço
Sparse tem espaço otimizado para valores “Null”
Valores não “Null” ocupam mais espaço com Sparse
Considere usar quando a porcentagem de valores null for pelo
menos entre 20-40%
Olhar tabela de ganho de espaço no Books Online
Usar Sparse em colunas com alta frequência de null
Exemplo de cenário onde usar sparse:
Tabela de Clientes coluna Data_Obito
Tabela de Clientes coluna Nome_Sogra
42. MaríliaTechDay
|2011
Data Types
Usar o datatype correto para o valor a ser armazenado
Não precisa ser pão duro
Exemplos:
DateTime para SmalldateTime
Datetime para Date
SmallDateTime para Date
BigInt para Integer
Integer para SmallInt
SmallInt para TinyInt
Char para VarChar
NVarchar para VarChar
Data Type Tamanho em Bytes
DateTime 8
SmallDateTime 4
Date 3
Time 5
BigInt 8
Integer 4
SmallInt 2
TinyInt 1
NChar(40) 80
Char(40) 40
44. MaríliaTechDay
|2011
VarDecimal
Disponível no SQL Server 2005 Service Pack 2
SAP
Disponível apenas na versão Enterprise
Reduz o espaço de colunas Decimal e Numeric
sp_estimated_rowsize_reduction_for_vardecimal
Substituido pelo Page e Row compression no SQL 2008
45. MaríliaTechDay
|2011
Page e Row Compression
Disponível apenas na versão Enterprise
Comprime os dados das páginas
Recurso extremamente poderoso
Aumenta uso de CPU
Exemplo de uso
ALTER INDEX XPK ON T1 REBUILD WITH
(DATA_COMPRESSION = PAGE)
50. MaríliaTechDay
|2011
Certificação Microsoft
Microsoft Certified Technology Specialist
Microsoft Certified IT Professional
Microsoft Certified Master
Microsoft Certified Architect
Certificação Microsoft (SQL Server)
http://www.microsoft.com/learning/pt/br/certification/cert-
sql-server.aspx
Notas do Editor
4/22/2016 2:47 PM
4/22/2016 2:47 PM
4/22/2016 2:47 PM
Tacape contra os animais?
Como que sobrevivemos?
Por muito tempo o homem fugia... Andava.. Era nomade!
O homem conseguiu desenvolver suas ferramentas. Isso aconteceu 10.000 anos atrás, quando foram descobertas as primeiras evidências de plantação.
Foto enviada para o japao
Quanto de informação existe no mundo?
Aquele que guarda fotos/video na Internet, contribui com o aumento dos dados no mundo
Alguns psicologos acreditam que o cérebro possui dispositivos dedicados para a visão, memória.. e linguagem!