Aprimoramentos na escalabilidade e no desempenho (Mecanismo de Banco de Dados)

Os aprimoramentos na escalabilidade e no desempenho do Mecanismo de banco de dados do SQL Server incluem índices filtrados e estatísticas, novas dicas de consulta e tabela e novos recursos de desempenho de consulta e processamento.

Novidades no SQL Server 2008 R2 Service Pack 2

Novidades no SQL Server 2008 R2

ObservaçãoObservação

Como o SQL Server 2008 R2 é uma atualização de versão secundária do SQL Server 2008, recomendamos que você também revise o conteúdo na seção do SQL Server 2008.

Compactação Unicode

Os dados unicode que são armazenados nas colunas nvarchar(n) e nchar(n) são compactados usando uma implementação do algoritmo SCSU (Standard Compression Scheme for Unicode). Para obter mais informações, consulte Implementação da compactação Unicode.

Novidades no SQL Server 2008

Índices filtrados e estatísticas

No SQL Server 2008, você pode usar um predicado para criar índices filtrados e estatísticas em um subconjunto de linhas da tabela. Nas versões anteriores do SQL Server, eles eram criados em todas as linhas da tabela. Os índices filtrados e as estatísticas são adequados especialmente para consultas que fazem seleções em subconjuntos bem definidos de dados, como colunas com a maioria de valores NULL, colunas com categorias de valores e colunas com intervalos diferentes de valores.

Um índice filtrado bem projetado pode melhorar o desempenho das consultas e reduzir os custos de manutenção e armazenamento do índice em comparação com os índices de tabela completa. Para obter mais informações, consulte Diretrizes de criação de índice filtrado. As estatísticas filtradas podem melhorar a qualidade do plano de consultas, pois abrangem apenas as linhas do índice filtrado. O Mecanismo de Banco de Dados cria e mantém automaticamente estatísticas filtradas para índices filtrados. Também é possível criar estatísticas filtradas em uma coluna não indexada para aprimorar a qualidade do plano de consulta para subconjuntos de dados que não precisam de um índice filtrado. Para obter mais informações, consulteUsando estatísticas para melhorar o desempenho de consultas.

Dicas de tabela e de consulta

A opção de dica de consulta OPTIMIZE FOR inclui o valor variável UNKNOWN

A opção de dica de consulta OPTIMIZE FOR foi aprimorada com a sintaxe UNKNOWN, que especifica que o Mecanismo de Banco de Dados usará dados estatísticos para determinar os valores de uma ou mais variáveis locais durante a otimização da consulta e não mais os valores iniciais. A sintaxe pode ser especificada para todos as variáveis locais em uma consulta ou para uma ou mais variáveis locais nomeadas. Para obter mais informações, consulte dicas de consulta (Transact-SQL).

Dicas de consulta

Agora é possível especificar dicas de tabela como dicas de consulta para fornecer opções de ajuste de desempenho de consulta avançadas. Recomendamos usar uma dica de tabela como dica de consulta apenas no contexto de um guia de plano. Para obter mais informações, consulte dicas de consulta (Transact-SQL) e Usando as dicas de consulta INDEX e FORCESEEK em guias de plano.

Dicas de tabela

A dica de tabela FORCESEEK foi adicionada para fornecer opções de ajuste de desempenho de consulta avançadas. Ela especifica que o otimizador de consulta usará apenas uma operação de busca de índice como caminho de acesso aos dados da tabela ou exibição referenciada na consulta. Para obter mais informações, consulte Usando a dica de tabela FORCESEEK.

Desempenho de consulta e processamento

Opção Escalonamento de bloqueios

Uma nova opção LOCK_ESCALATION de ALTER TABLE permite desabilitar o escalonamento de bloqueios em uma tabela. Em tabelas particionadas, você pode configurar o escalonamento de bloqueios para as partições e não para a tabela inteira. Essa opção pode melhorar a simultaneidade reduzindo a contenção de bloqueio quando você estiver usando tabelas particionadas. Para obter mais informações, consulte ALTER TABLE (Transact-SQL).

Filtragem de bitmap otimizada

O otimizador de consulta pode colocar filtros de bitmap dinamicamente em planos de consulta paralelos para melhorar o desempenho de consultas feitas em um esquema em estrela. A filtragem de bitmap otimizada pode melhorar significativamente o desempenho das consultas de data warehouse removendo as linhas não qualificadas da tabela de fatos do plano de consulta. Para obter mais informações, consulte Otimizando o desempenho de consulta de data warehouse por filtragem de bitmap.

Processamento de consulta paralelo em objetos particionados

O SQL Server 2008 melhora o desempenho do processamento de consultas em tabelas particionadas para muitos planos paralelos, altera a maneira como os planos paralelos e seriais são representados e aperfeiçoa as informações de particionamento fornecidas nos planos de execução de tempo de compilação e tempo de execução. O SQL Server 2008 automatiza e melhora a estratégia de particionamento de thread para planos de execução de consulta paralelos em objetos particionados. Para obter mais informações, consulte Aperfeiçoamentos de processamento de consultas em tabelas e índices particionados.

Guias de plano

O procedimento armazenado sp_create_plan_guide foi ampliado para aceitar a saída de XML Showplan diretamente no parâmetro @hints em vez de inserir a saída na dica USE PLAN. Isso simplifica o processo de aplicação de um plano de consulta fixo como uma dica de guia de plano. Além disso, um novo procedimento armazenado, sp_create_plan_guide_from_handle, permite a criação de um ou mais guias de plano a partir de um plano de consulta no cache de plano.

Você pode criar vários guias de plano OBJECT ou SQL para a mesma consulta e lote ou módulo. No entanto, apenas um desses guias de plano poderá ser ativado em um determinado momento.

A nova função de sistema sys.fn_validate_plan_guide pode ser usada para validar um guia de plano. Guias de plano podem tornar-se inválidos depois que forem feitas alterações ao design físico do banco de dados, como o descarte de um índice. Ao validar um guia de plano, você pode determinar se ele poderá ser usado sem modificação pelo otimizador de consulta.

As novas classes de evento, Guia de Plano Bem-Sucedido e Guia de Plano Malsucedido, facilitam a verificação dos guias de plano que estão sendo usados pelo otimizador de consulta. Se o SQL Server não conseguir criar uma plano de execução para uma consulta que contenha uma guia de plano, a consulta será compilada automaticamente sem usar o guia de plano. O evento Plan Guide Unsuccessful ocorre quando há uma falha de compilação do guia de plano inicial.

Novos contadores, Execuções do Plano Orientadas/s e Execuções do Plano Mal-Orientadas/s, no SQL Server, objeto SQL Statistics, podem ser usados para monitorar o número de execuções de plano em que o plano de consulta foi gerado com ou sem êxito usando um guia de plano.

Operações como criar, excluir, habilitar, desabilitar ou gerar scripts para guias de plano podem ser executadas com o uso do SQL Server Management Studio. Os guias de plano aparecem na pasta de Programabilidade do Pesquisador de Objetos.

Valores de hash para localizar e ajustar consultas semelhantes

Ao procurar consultas que utilizam muitos recursos, leve em consideração como localizar e ajustar consultas semelhantes que, individualmente, consomem uma quantidade mínima de recursos do sistema, mas que, juntas, consomem uma quantidade considerável de recursos. As exibições de catálogo sys.dm_exec_query_stats e sys.dm_exec_requests fornecem valores de hash de consulta e de hash de plano de consulta que você pode usar para determinar o uso de recursos agregados para consultas semelhantes e planos de execução de consultas semelhantes. Para obter mais informações, consulte Localizando e ajustando consultas semelhantes usando consulta e hashes de plano de consulta.

Consulte também

Conceitos