Cálculo de Custos de I/O Heap Files AULA 4 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC
7/6/ Modelo de Custo Hipóteses B = Número de Páginas R = Número de registros por página D = Tempo médio para ler ou escrever uma página no disco ± 25 msec C = Tempo médio para processar um registro ± 1 a 10 microsec Custo = número de acessos ao disco
7/6/ Operações em Arquivos Scan : ler todos os registros de um arquivo Páginas devem localizadas no disco e serem carregadas no Buffer Pool Registros devem ser localizados nas páginas Busca com seleção = Páginas com os registros selecionados devem ser localizadas e carregadas Registros devem ser localizados nas páginas Busca com seleção > ou < Páginas com os registros selecionados devem ser localizadas e carregadas Registros devem ser localizados nas páginas
7/6/ Operações Inserção Identificar a página na qual registro deve ser inserido Carregar esta página no buffer pool Incluir novo registro Escrever a página modificada no disco Deleção Identificar a página contendo o registro Carregar esta página no buffer pool Modificar a página Escrever a página modificada no disco
7/6/ Lembrando... B = Número de Páginas R = Número de registros por página D = Tempo médio para ler ou escrever uma página no disco Ler = localizar no disco + carregar Escrever = localizar posição no disco + transferir dados para o disco C = Tempo médio para processar um registro no buffer
7/6/ Heap Files Scan Cada página deve ser lida Processar R registros por página Custo = B(D+RC)
7/6/ Heap Files Procura (Sel « = « na chave) Atenção: Chave primária ou candidata da tabela !! Encontrou, pára ! Em média, metade do arquivo deve ser escaneado para se encontrar a página correspondente ao registro. Carregar a página Escanear a página à procura do registro Custo = 0.5B(D + RC)
7/6/ Heap Files Procura (Sel « = « não-chave) Todo o arquivo deve ser escaneado Tempo = B(D+RC) Procura (Sel <) Todo o arquivo deve ser escaneado Tempo = B(D+RC) Inserção Registros são inseridos sempre no final do arquivo Página final deve ser carregada, modificada e escrita de volta no disco Tempo = 2D + C
7/6/ Heap Files Deleção de um registro Encontrar a página do registro Remover o registro da página Escrever a página modificada Tempo = Sel + D Tempo de localizar a página onde se encontra o registro, trazer a página correspondente para o buffer pool, encontrar o registro Na página e processar o registro Tempo para escrever a página no disco
Resumo – Heap Files ScanSel = chave Sel = Nchave Sel <>InsertDelete sel B(RC+D)0.5 B(RC+D) B(D+RC) 2D+CSel + + ND BD0.5BDBD 2D Sel+ND N= número de páginas modificadas
Exemplos Relação EMP B = 1000 páginas R = registros por página D = 25 msec = 25 * seg C = 10 microsec = seg Consulta : Select * From EMP WHERE SAL > Tempo I/O = 1000*25* = 25 seg Tempo total = 1000(25* * ) = = 1025 seg = 17min Total de I/O = 1000
Exemplos Inserção Insert into EMP values (João, ,Vendas) Tempo I/O = 2*25* seg = 0.05 seg Tempo total = 2*25* seg = Total de I/O = 2 Deleção Delet FROM EMP WHERE Emp.Nome = João AND Emp.Sal = AND Emp.Dept = Vendas Tempo I/O = ½ = seg Tempo total = ½ 17min seg = 8.5min seg Total de I/O = 501