Os índices são estruturas de dados no banco de dados relacio...

Próximas questões
Com base no mesmo assunto
Q3881247 Banco de Dados
Os índices são estruturas de dados no banco de dados relacionais que demandam uma manutenção específica para manter os dados organizados. No SQL Server, a fragmentação e a densidade da página estão entre os fatores que os analistas da ALEGO devem considerar ao decidir se a manutenção do índice deve ser executada e qual método de manutenção será usado. Com relação aos conceitos de fragmentação e densidade de página, analise as alternativas a seguir.

I. Quando a densidade da página for baixa, mais páginas serão necessárias para armazenar uma mesma quantidade de dados. Isso significa que mais operações de E/S serão necessárias para ler e gravar esses dados, assim como mais espaço em memória será necessária para armazenar esses dados em cache. Quando a memória é limitada, menos páginas exigidas por uma consulta serão armazenadas em cache, causando ainda mais operações de E/S em disco. Consequentemente, a densidade de página baixa afeta negativamente o desempenho.
II. O mecanismo de banco de dados modifica os índices automaticamente sempre que são executadas operações de inserção, atualização ou exclusão nos dados subjacentes. Por exemplo, a adição de linhas em uma tabela pode fazer com que as páginas existentes nos índices de columnstore se dividam, liberando espaço para a inserção de novas linhas. Com o decorrer do tempo, essas modificações podem fazer com que os dados do índice sejam fragmentados e dispersados pelo banco de dados.
III. Quando o otimizador de consulta do SQL Server compila um plano de consulta, ele considera o custo das operações de E/S necessárias para ler os dados exigidos pela consulta. Quando a densidade de página baixa, há mais páginas a serem lidas, portanto, o custo das operações de E/S será maior. Isso pode afetar a escolha do plano de consulta. Por exemplo, à medida que a densidade de página diminui ao longo do tempo devido a divisões de página, o otimizador pode compilar um plano diferente para a mesma consulta, com um perfil de consumo de recursos e desempenho diferente.
IV. Para as consultas SQL que leem muitas páginas usando varreduras de índices completas ou de intervalo, índices pouco fragmentados podem prejudicar o desempenho da consulta quando operações de E/S adicionais são necessárias para ler os dados. Em vez de algumas solicitações com poucas operações de E/S, a consulta exigiria muitas solicitações com poucas operações de E/S para ler a mesma quantidade de dados.

Está correto o que se afirma em
Alternativas

Comentários

Veja os comentários dos nossos alunos

I. Verdadeira: Se a densidade da página cai (as caixas estão meio vazias), o SQL Server precisa ler muito mais páginas (caixas) no disco para trazer a mesma quantidade de linhas (registros). Mais páginas lidas = Mais custo de I/O = Mais memória RAM gasta à toa no Buffer Pool para guardar "espaço vazio". Perfeito.

II. Falsa: Índices Columnstore (armazenamento colunar, usados para Big Data e DW) não sofrem divisões de página (Page Splits) da forma como foi descrito. Quem sofre Page Split é o índice tradicional em Árvore B+ (Rowstore). No Columnstore, dados novos vão para uma estrutura temporária chamada Delta Store e depois são comprimidos em Rowgroups. A banca misturou os conceitos arquiteturais.

III. Verdadeira: O Otimizador de Consultas do SQL Server é um matemático calculista. Se ele percebe que um índice está super fragmentado e com densidade baixa, ele pensa: "Ler esse índice bagunçado vai custar muito caro (muitas leituras de E/S). É mais barato ignorar o índice e fazer um Table Scan (varrer a tabela inteira) direto no disco". A fragmentação muda literalmente o plano de execução da consulta.

IV. Falsa: "...índices pouco fragmentados podem prejudicar o desempenho...". Índices pouco fragmentados são excelentes e não prejudicam nada. A banca inverteu a semântica para te pegar na leitura rápida.

Gabarito: D

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo