Cálculo de Custos de I/O Heap Files AULA 4 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC 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 05/11/2015 2 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 < 05/11/2015 Páginas com os registros selecionados devem ser localizadas e carregadas Registros devem ser localizados nas páginas 3 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 05/11/2015 4 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 05/11/2015 5 Heap Files Scan Cada página deve ser lida Processar R registros por página Custo = B(D+RC) 05/11/2015 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 05/11/2015 = 0.5B(D + RC) 7 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 05/11/2015 8 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 05/11/2015 Tempo para escrever a página no disco 9 Resumo – Heap Files Scan Sel = Sel = chave Nchave B(RC+D) 0.5 B(RC+D) B(D+RC) BD 0.5BD BD Sel <> Insert Delete sel B(D+RC) 2D+C Sel + + ND BD 2D Sel+ND N= número de páginas modificadas Exemplos Relação EMP B = 1000 páginas R = 100.000 registros por página D = 25 msec = 25 * 10-3 seg C = 10 microsec = 10-5 seg Consulta : Select * From EMP WHERE SAL > 10.000 Tempo I/O = 1000*25* 10-3 = 25 seg Tempo total = 1000(25* 10-3 + 105 * 10-5) = 25 +1000 = 1025 seg = 17min Total de I/O = 1000 Exemplos Inserção Insert into EMP values (João, 10.000,Vendas) Tempo I/O = 2*25* 10-3 seg = 0.05 seg Tempo total = 2*25* 10-3 + 10-5 seg = 0.05001 Total de I/O = 2 Deleção Delet FROM EMP WHERE Emp.Nome = João AND Emp.Sal = 10.000 AND Emp.Dept = Vendas Tempo I/O = ½ 25 + 0.025 = 12.525 seg Tempo total = ½ 17min + 0.025 seg = 8.5min + 0.025 seg Total de I/O = 501