Gerenciamento de E/S paralelo
Se vários contêineres existirem para um espaço de tabela, o gerenciador de banco de dados pode iniciar E/S paralela, pelo qual o gerenciador de banco de dados utiliza vários servidores de E/S para processar os requisitos de E/S de uma única consulta.
Cada servidor de E/S processa a carga de E/S para um recipiente separado, de modo que vários contêineres podem ser lidos em paralelo. A E/S paralela pode resultar em melhorias significativas no rendimento de I/O.
Embora um servidor de E/S separado possa manipular a carga de trabalho para cada contêiner, o número real de servidores de E/S que podem executar E/S paralela é limitado ao número de dispositivos físicos sobre os quais os dados solicitados são espaldos. Por esta razão, você precisa como muitos servidores de E/S como dispositivos físicos.
- Para prefetching sequencial, a E/S paralela é iniciada quando o tamanho da pré-busca é um múltiplo de tamanho de extensão para um espaço de tabela. Cada solicitação de pré-busca é dividida em solicitações menores ao longo de limites de extensão. Esses pequenos pedidos são então atribuídos a diferentes servidores de E/S.
- Para prefetching readahead, cada lista de páginas de dados é dividida em listas menores de acordo com limites de extensão. Essas pequenas listas são então designadas para diferentes servidores de E/S.
- Para list prefetching, cada lista de páginas é dividida em listas menores de acordo com o contêiner no qual as páginas de dados são armazenadas. Essas pequenas listas são então designadas para diferentes servidores de E/S.
- Para o banco de dados ou backup de espaço de tabelas e restauração, o número de solicitações de E/S paralelas é igual ao tamanho do buffer de backup dividido pelo tamanho de extensão, até um valor máximo que é igual ao número de contêineres.
- Para o banco de dados ou restauração de espaço de tabelas, as solicitações de E/S paralelas são iniciadas e divididas da mesma forma que o que é feito para prefetching sequencial. Os dados não são restaurados em um buffer pool; ele se move diretamente do buffer de restauração para disco.
- Quando você carregar dados, você pode especificar o nível de paralelismo de E/S com a opção de comando DISK_PARALELISM. Se você não especificar esta opção, o gerenciador de banco de dados utiliza um valor padrão que é baseado no número acumulado de contêineres de espaço de tabelas para todos os espaços da tabela que estão associados à tabela.
- Há servidores de E/S suficientes. Especifique um pouco mais servidores de E/S do que o número de contêineres que são usados para todos os espaços da tabela dentro do banco de dados.
- O tamanho da extensão e o tamanho da pré-busca são apropriados para o espaço de tabela. Para evitar o excesso de uso do buffer pool, o tamanho da pré-busca não deve ser muito grande. Um tamanho ideal é um múltiplo do tamanho da extensão, o número de discos físicos sob cada recipiente (se um dispositivo RAID é usado), e o número de contêineres de espaço de mesa. O tamanho da extensão deve ser razoavelmente pequeno, sendo que um bom valor está na faixa de 8 32 páginas.
- Os contêineres residem em unidades físicas separadas.
- Todos os contêineres têm o mesmo tamanho para garantir um grau consistente de paralelismo.Se um ou mais contêineres forem menores do que os outros, eles reduzem o potencial para prefeituras paralelas otimizadas. Considere os seguintes exemplos:
- Depois que um recipiente menor é preenchido, dados adicionais são armazenados nos contêineres restantes, fazendo com que os contêineres se tornem desequilibrados. Contêineres desequilibrados reduzem o desempenho da prefeiteira paralela, pois o número de contêineres a partir dos quais dados podem ser prefetados pode ser menor que o número total de contêineres.
- Se um recipiente menor for adicionado em uma data posterior e os dados serem rebalanceados, o recipiente menor conterá menos dados do que os outros contêineres. Sua pequena quantidade de dados em relação aos outros contêineres não irá otimizar a prefeiteira paralela.
- Se um recipiente é maior e todos os outros contêineres se enchem, o recipiente maior é o único recipiente para armazenar dados adicionais. O gerenciador de banco de dados não pode utilizar prefeiteira paralela para acessar esses dados adicionais.
- Há capacidade de E/S adequada ao usar o paralelismo intrapartição. Em máquinas SMP, o paralelismo intrapartição pode reduzir o tempo decorrido para uma consulta, executando a consulta em vários processadores. A capacidade de E/S suficiente é necessária para manter cada processador ocupado. As unidades físicas adicionais são geralmente necessárias para fornecer essa capacidade de I/O.
O tamanho da pré-busca deve ser maior para a prefetação ocorrer a taxas mais altas, e utilizar a capacidade de E/S de forma eficaz.
O número de unidades físicas necessárias depende da velocidade e da capacidade das unidades e do barramento de E/S, e na velocidade dos processadores.