Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
A lista seguinte de recomendações ajudará a melhorar o desempenho das consultas em texto completo.
O desempenho das consultas em texto completo é também influenciado por recursos de hardware, como memória, velocidade do disco, velocidade da CPU e arquitetura da máquina.
Desfragmente o índice da tabela base usando ALTER INDEX REORGANIZE.
Reorganize o catálogo de texto completo usando ALTER FULLTEXT CATALOG REORGANIZE. Certifica-te de que fazes isto antes de testes de desempenho, porque executar esta instrução causa uma fusão mestre dos índices de texto completo nesse catálogo.
Restrinja a escolha das colunas-chave de texto integral a uma coluna pequena. Embora seja suportada uma coluna de 900 bytes, recomendamos o uso de uma coluna de chave mais pequena num índice de texto completo. INT e BIGINT proporcionam o melhor desempenho.
Usar uma chave de texto inteiro evita a junção com a tabela de mapeamento docid . Assim, uma chave inteira de texto completo melhora o desempenho das consultas numa ordem de grandeza e melhora o desempenho do crawl. Podem resultar mais benefícios de desempenho se a chave de texto completo for também a chave índice clusterizada.
Combine múltiplos predicados CONTAINS num único predicado CONTAINS. No SQL Server podes especificar uma lista de colunas na consulta CONTAINS.
Se só precisar de informação de chave ou classificação em texto completo, use CONTAINSTABLE ou FREETEXTTABLE em vez de CONTAINS ou FREETEXT, respetivamente.
Para limitar os resultados e aumentar o desempenho, utilize o parâmetro top_n_by_rank das funções FREETEXTTABLE e CONTAINSTABLE. top_n_by_rank permite recuperar apenas os resultados mais relevantes. Use este parâmetro apenas se o seu cenário de negócio não necessitar de recordar todos os possíveis resultados (ou seja, não exigir uma recuperação total).
Observação
A recall total é tipicamente necessária em cenários legais, mas pode ser menos importante do que o desempenho em cenários empresariais, como um e-business.
Verifique o plano de consulta em texto completo para garantir que o plano de junção adequado foi escolhido. Usa uma sugestão de junção ou de consulta, se necessário. Se um parâmetro for usado na consulta de texto completo, o valor de primeira vez do parâmetro determina o plano de consulta. Pode usar a dica de consulta OPTIMIZE FOR para forçar a compilação da consulta com o valor que deseja. Isto ajuda a alcançar um plano de consulta determinístico e melhor desempenho.
Demasiados fragmentos no índice de texto completo podem levar a uma degradação substancial do desempenho das consultas. Para reduzir o número de fragmentos, reorganize o catálogo de texto completo usando a opção REORGANIZAR da instrução de Transact-SQL ALTER FULLTEXT CATALOG. Esta afirmação funde essencialmente todos os fragmentos num único fragmento maior e remove todas as entradas obsoletas do índice de texto completo.
Na pesquisa em texto completo, operadores lógicos especificados em CONTAINSTABLE (AND, OR) podem ser implementados tanto como junções SQL ou dentro das funções de valor de tabela (STVF) de execução de texto completo. Normalmente, consultas com apenas um tipo de operadores lógicos são implementadas puramente por execução em texto completo, enquanto consultas que misturam operadores lógicos também possuem joins SQL. A implementação de um operador lógico dentro da execução de texto completo STVF utiliza algumas propriedades especiais de índice que o tornam muito mais rápido do que as junções SQL. Por esta razão, recomendamos que, sempre que possível, enquadre as suas consultas usando apenas um único tipo de operador lógico.
Para aplicações que contêm predicações de relações seletivas, consultas que usam predicados relacionais seletivos e predicados de texto completo não seletivos podem ter melhor desempenho quando escritas para usar o otimizador de consultas. Isto permite ao otimizador de consultas decidir se pode explorar a redução de predicados ou intervalos para produzir um plano de consulta eficaz. Esta abordagem é mais simples e frequentemente mais eficiente do que indexar dados relacionais como dados de texto completo.
Recursos relacionados
Pesquisa de texto completo do SQL Server 2008: internos e aprimoramentos
Consulte também
sys.dm_fts_memory_buffers (Transact-SQL)
sys.dm_fts_memory_pools (Transact-SQL)