Caso de Estudo

Cenário

Relação: StarsIn(movieTitle, movieYear, starName)

3 operações usuais sobre a base de dados:

Pressupostos

A relação StarsIn ocupa 10 páginas

Caso de não indexação

  • custo de 10 para examinar todos os tuplos da relação

    • partindo do princípio que não estamos a utilizar clustering

  • depois de encontrado o primeiro tuplo, não é necessário fazer scan à relação toda para encontrar os tuplos adicionais.

Em média, cada ator aparece em 3 filmes e um filme tem 3 atores

Query - se tivermos indexado starName ou (movieTitle, movieYear)

  • custo médio de 3 acessos a disco para um filme ou ator.

  • 1 acesso a disco é necessário para consultar um índice.

Inserção - obriga a acessos a disco (leitura e escrita)...

  • à página onde vai ser inserido o novo tuplo.

  • para modificar o próprio índice.

Tabela de Custos

No index

Q1 e Q2: Acesso a toda a relação (full scan) - 10 acessos de leitura.

I: 1 acesso para consulta + 1 acesso para escrita.

Star Index:

Q1: 1 acesso ao index + 3 acessos páginas da relação.

Q2: No index – custo 10.

I: 2 acessos página do índice + 2 acesso páginas dos dados da relação.

Movie Index:

Simétrico de Star index.

Both Index:

Q1 e Q2: 1 acesso ao index + 3 acessos páginas da relação.

I : (2 leitura + 2 escritas) para cada índice (total de 4) + 2 acessos à página os dados.

Escolha de Índice(s)

Temos de olhar para a fórmula da custo

  • Depende dos valores de P1 e P2

Exemplos:

1. P1 = P2 = 0.1

Menor custo: 2 + 8p1 + 8p2

Opção: No Index

2. P1 = P2 = 0.4

Menor custo: 6 - 2p1 - 2p2

Opção: Indexar starName e (movieTitle, movieYear)

3. P1 = 0.5 e P2 = 0.1

Menor custo: 4 + 6p2

Opção: Indexar só starName

Last updated