SóProvas


ID
190741
Banca
CESGRANRIO
Órgão
ELETROBRAS
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

O administrador de banco de dados SQL Server 2005 de uma empresa têxtil está participando do desenho de um novo database para armazenar os dados sobre a logística de entrega dos produtos da empresa.
Algumas tabelas e seus índices serão criados para melhorar o desempenho, na forma clustered, já que, nesse tipo de implementação,

Alternativas
Comentários
  • s tipos de índices no SQL Server podem ser:

    Clustered

    Um índice clustered [agrupado] é aquele onde a ordem física das páginas de dados é a mesma ordem do índice. A cada inserção, numa tabela que tem um índice agrupado, a ordem física dos dados pode mudar. Só pode haver um único índice agrupado por tabela.Se você não especificar o indice Clustered a sua tabela será criada com o índice Non-clustered.

    Recomenda-se criar um índice agrupado antes de qualquer outro, pois ao criá-lo, as linhas da tabela são reordenadas fisicamente e todos os outros índices são reconstruídos.

    É recomendável usar um índice agrupado para a coluna que representa a ordem mais natural da tabela, ou seja, a ordem na qual geralmente os resultados serão apresentados.

    Non-clustered

    Um índice non-clustered [não-agrupado] possui uma ordem física diferente da ordem dos dados. Existe um nível a mais, de ponteiros para os dados, que permite acessá-los indiretamente.
    Pode haver mais de um índice não-agrupado na tabela, até o máximo de 249 índices, incluindo qualquer índice criado com restrições PRIMARY KEY ou UNIQUE.
    Quando o tipo de índice da tabela não for específicado ele será criado como um índice Nonclustered.

    Para os exemplos de criação de índice, crie a tabela abaixo:

    CREATE TABLE TES_EMPREGADO
    (
    EMP_IN_CODIGO INT IDENTITY CONSTRAINT TES_PK_EMPREGADO PRIMARY KEY CLUSTERED,
    EMP_ST_NOME VARCHAR(50),
    EMP_DT_PAGAMENTO DATETIME,
    EMP_IN_RG VARCHAR(15) CONSTRAINT TES_UK_EMP_RG UNIQUE NONCLUSTERED
    );

    Exemplos de sintaxe de criação de índices:

    CREATE INDEX TES_IDX_EMP_NOME ON TES_EMPREGADO(EMP_ST_NOME);

    CREATE UNIQUE INDEX TES_IDX_EMP_NOME ON TES_EMPREGADO(EMP_ST_NOME);

    CREATE INDEX TES_IDX_EMP_NOMEPAGAMENTO ON
    TES_EMPREGADO(EMP_ST_NOME,EMP_DT_PAGAMENTO);

    --Exemplo de sintaxe de remoção de índices:

    DROP INDEX TES_IDX_EMP_NOME ON TES_EMPREGADO;

  •     a) cada tabela e cada índice clustered possuem apenas uma partição e uma única estrutura de árvore B.
    O Sql Server utiliza árvores B+ para sua estrutura de índices.

        b) os índices estão armazenados como uma árvore B, com seu nível folha contendo apenas páginas de índices, em vez de páginas de dados.
    O Sql Server utiliza árvores B+ para sua estrutura de índices.

        c) as páginas de cada nível do índice, incluindo as páginas de nível folha, não possuem vínculo (link) entre si.
    Nas árvores B+, somente o nível folha possui vínculo entre as páginas

        d) as linhas de dados são armazenadas em ordem, de acordo com a chave do índice clustered.
    CORRETA! Por isso, só pode haver um índice clustered, pois ele organiza a tabela de acordo com sua chave

        e) a navegação entre os níveis da árvore binária, utilizada para armazenamento dos índices e dados, é realizada através de vínculos (links).
    Nas árvores B+, somente o nível folha possui vínculo entre as páginas