Baixe o app para aproveitar ainda mais
Prévia do material em texto
31/08/2022 22:13 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2555557/3965193 1/6 Gerenciamento do desempenho do banco de dados (tuning) Professor(a): Odécio José Fernandes de Souza Junior (Doutorado) 1) 2) Prepare-se! Chegou a hora de você testar o conhecimento adquirido nesta disciplina. A Avaliação Virtual (AV) é composta por questões objetivas e corresponde a 100% da média final. Você tem até cinco tentativas para “Enviar” as questões, que são automaticamente corrigidas. Você pode responder as questões consultando o material de estudos, mas lembre-se de cumprir o prazo estabelecido. Boa prova! O SGDB pode conter muitos processos background ativos, em função da configuração estabelecida. Leia e associe as duas colunas que relaciona o processo à sua sigla correspondente: Assinale a alternativa que traz a associação correta entre as duas colunas Alternativas: A – 1; B – 2; C – 3; D – 4; E – 5. A – 5; B – 4; C – 3; D – 2; E – 1. A – 4; B – 2; C – 1; D – 3; E – 5. A – 4; B – 2; C – 1; D – 5; E – 3. CORRETO A – 3; B – 2; C – 1; D – 5; E – 4. Código da questão: 58828 Analise as proposições a seguir, considerando que a questão da “acuidade das projeções” será importante, mas: “A melhoria de desempenho, por sua natureza, é iterativa. Por esse motivo, remover o primeiro gargalo pode não levar ao desempenho de melhoria imediata, porque outro gargalo pode ser revelado. Além disso, em alguns casos, se os pontos de serialização mudarem para um mecanismo de compartilhamento mais ineficiente, o desempenho poderá ser prejudicado. Com experiência e seguindo um método rigoroso de limitação de gargalo, os aplicativos podem ser depurados e tornados escaláveis”. Assim: I. Não um, mas diversos ciclos de tuning serão necessários. II. Alguns simples, como ajustar uma cláusula WHERE de um SELECT. III. Outros um pouco mais complicados, como criar um índice. IV. A acuidade das projeções nunca colaborará com a atividade de tuning, pois essa atividade sempre estará baseada em mera tentativa e erro. V. Em outros momentos, graves e complicados, como destruir tudo, rever a organização e o tamanho dos blocos de dados no nível do sistema operacional e criar tudo novamente. Indique a opção que corresponde às proposições corretas: Alternativas: Todas as proposições estão corretas. Resolução comentada: são os processos que dão suporte ao funcionamento do SGDB, permitindo o acesso de diversos usuários, implementações de segurança, recuperação e distribuição de dados, entre outras. São colocados “por trás” da SGA, ou em “segundo plano”, daí o termo background. O SGDB pode conter muitos processos background ativos, em função da configuração estabelecida, os principais estão enumerados adiante (as siglas que possuem uma letra minúscula “n” denotam processos que costumam ter múltiplas (n) instâncias ativadas): • DBWn - Database Writer • LGWR - Log Writer • CKPT - Checkpoint • SMON - System Monitor • PMON - Process Monitor • ARCn - Archiver • RECO - Recover • LCKn - Lock • SNPn - Snapshot Refresh • Snnn - Shared Server • Dnnn - Dispatcher • Pnnn - Parallel Query 31/08/2022 22:13 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2555557/3965193 2/6 3) 4) Somente as proposições I, II, III e V estão corretas. CORRETO Somente a proposição V está correta. Somente as proposições I e II estão corretas. Somente as proposições I, II e IV estão corretas. Código da questão: 58836 Considerando que um "ciclo PDCA" (plan de planejamento; do de execução; check de verificação; action de atuação) visa uma melhoria contínua de um processo empresarial qualquer, e que o método de tuning visa especificamente o ajuste de performance de um SGBD, pode- se afirmar que: Alternativas: São métodos que não se relacionam, uma vez que o PDCA é genérico e o método de tuning de SGBD é específico. São métodos que não se relacionam, considerando-se que o PDCA nunca termina e que o método de tuning de SGBD é realizado exclusivamente durante seu projeto. São métodos cujo relacionamento se dá pela prática de partir de um diagnóstico de uma situação-problema, sua correção e averiguação de resultados. Mas a satisfação do cliente é irrelevante. São métodos cujo relacionamento se dá pela prática de partir de um diagnóstico de uma situação-problema, sua correção e averiguação de resultados. Visando sempre a satisfação do cliente. CORRETO São métodos cujo relacionamento se dá pela prática de partir de um diagnóstico de uma situação-problema, sua correção e averiguação de resultados. Mas são ciclos que acontecerão uma única vez. Código da questão: 58812 No SGBD, os metadados compõem dois grupos distintos de estruturas, sob o apelido de dicionário de dados (data dictionary ou DICT). Examine as proposições adiante: I. O grupo que abriga os objetos fixos do SGBD são apresentados em três abrangências. II. As de prefixo USER se referem aos objetos do usuário que está logado durante a consulta. III. As de prefixo ALL têm o mesmo conteúdo de USER com uma coluna adicional. IV. A coluna adicional daquelas com prefixo ALL não têm utilidade. V. As de prefixo DBA contêm todas as informações apresentadas em ALL, acrescidas de detalhes que são exclusivos do DBA. Indique a seguir a opção que corresponde às proposições corretas: Alternativas: Somente as proposições I, II, III e V estão corretas. CORRETO Somente a proposição IV está correta. Somente as proposições I, II, III e IV estão corretas. Somente as proposições I e II estão corretas. Somente as proposições III e IV estão corretas. Resolução comentada: o tuning é uma atividade complexa. Propõe-se inicialmente uma atividade de ajuste que parte dos comandos SQL existentes nas aplicações, após o que o ajuste das estruturas de memória deve ser realizado. Tais ajustes podem ser considerados simples, já que a maioria dos ajustes a serem realizados nas estruturas físicas passa pela reconstrução destas. Por mais precisas que sejam as projeções, são somente projeções, que se aproximarão da realidade na medida em que os diversos ciclos de tuning forem executados. Assim sendo, observe que as proposições listada a seguir estão corretas, pelos motivos: I. Não um, mas diversos ciclos de tuning serão necessários, principalmente porque o ajuste de uma estrutura tende a causar sobrecarga de outras. II. Alguns simples, como ajustar uma cláusula WHERE de um SELECT são simples por afetar somente o código da aplicação, o que, no máximo, afetaria essa aplicação, o que normalmente se corrige em poucos segundos. III. Outros um pouco mais complicados, como criar um índice. A criação de um índice pode causar contenção, já que, nessa atividade, a tabela deve ser lida integralmente. V. Em outros momentos, graves e complicados, como destruir tudo, rever a organização e o tamanho dos blocos de dados no nível do sistema operacional e criar tudo novamente. Tal atividade será complexa e, por causar indisponibilidade, é considerado grave. Resolução comentada: o método de tuning proposto, assim como o ciclo PDCA, são empíricos, cíclicos e norteados pela satisfação do cliente. 31/08/2022 22:13 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2555557/3965193 3/6 5) 6) Código da questão: 58831 As junções (joins) de tabelas são muito frequentes, considerando que as informações são, habitualmente, normalizadas e, logo, depositadas em mais de uma tabela. Para resolver os joins, o optimizer: I. Observa as regras somente, não utilizando estatísticas. II. Faz o SGBD optar pelo plano de execução de menor custo. III. Jamais realiza transformações. IV. Conta com a possibilidade de executar uma ordenação-combinação (sort-merge), um laços aninhados (nested-loops), ou um agrupamento (cluster). V. Observa as estatísticas para deduzir o menor volume possível de I/O. Indique a alternativa que corresponde às proposições corretas: Alternativas: Somente as proposições II, IV e V estão corretas. CORRETO Somente a proposiçãoIV está correta. Todas as proposições estão corretas. Somente as proposições I e IV estão corretas. Somente as proposições I e III estão corretas. Código da questão: 58821 Observe o seguinte plano de execução: Um filtro de linhas será realizado, estabelecendo um laço aninhado, acessando-se a tabela EMP completa, e a tabela DEPT, por meio do ROWID, obtido da leitura do índice único PK_DEPTNO; a tabela SALGRADE será também de forma completa. Sobre a interpretação anterior, indique a alternativa correta. Alternativas: O texto de interpretação está incorreto, uma vez que a tabela SALGRADE é acessada desde um índice. O texto de interpretação está incorreto, uma vez que a junção laço aninhado (nested-loops) jamais pode ser utilizada em tabelas clusterizadas. O texto de interpretação não aponta quando as estatísticas foram obtidas, o que é sempre exigido em um plano de execução. O texto de interpretação está correto. CORRETO Resolução comentada: a proposição I está correta, uma vez que o DICT aponta para três categorias distintas, que são explicadas por outras proposições. Assim, II está correta, por explicar que a categoria USER se refere aos objetos que pertencem ao usuário que está conectado e executando as consultas. Do mesmo modo, III está correta, indicando que a categoria ALL contém uma coluna adicional, que aponta para o proprietário do objeto referenciado. Do mesmo modo, a proposição V, que aponta para a similaridade com ALL, mas que contém estruturas que são de uso exclusivo do DBA. Resolução comentada: a imagem a respeito de junções explicita as possibilidades de junção e indica que é escolhido o plano de menor custo. Assim, as proposições são corretas, pois: II. O optimizer sempre traça um plano de execução que procura determinar a manipulação da quantidade de blocos menor possível. IV. Ao seu dispor, há três métodos (ou algoritmos) para realizar a junção de tabelas, ordenação-combinação (sort-merge), um laços aninhados (nested-loops), ou um agrupamento (cluster). V De modo a poder tomar decisões, o optimizer sempre consulta as estatísticas. 31/08/2022 22:13 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2555557/3965193 4/6 7) 8) O texto de interpretação está incorreto, uma vez que o índice PK_DEPTNO não é único. Código da questão: 58823 O encadeamento ocorre quando uma linha nova extrapola o espaço disponível ou quando ela é aumentada para além desse espaço. ( ) Encadeamento é o evento quando o SGBD aumenta automaticamente o tamanho do data block. ( ) Uma linha nova corresponde a um INSERT. ( ) Uma linha é aumentada por um UPDATE. ( ) Encadeamento é o evento quando o SGBD aumenta automaticamente o tamanho do extent. ( ) O ROWID é mantido apontando para o data block original. Anote cada proposição como falsa (F) ou verdadeira (V) e escolha a alternativa que corresponde à sequência correta. Alternativas: F – F – V – F – V. F – V – V – F – V. CORRETO V – F – V – V – V. V – V – F – V – F. V – F – V – F – V. Código da questão: 58839 Ao observar os caminhos escolhidos pelo optimizer, você perceberá que, em algumas situações especiais, será necessário especificar outros caminhos de acesso para consultas SQL, situações em que o optimizer não foi capaz de resolver o problema de forma satisfatória podem ser manualmente corrigidas por dicas (hints). Com base no exposto, observe a afirmativa a seguir: Tal medida deve ser tomada com _______, inclusive porque depende de reescrever um comando dentro ________, o que pode levar a constantes manutenções, quando as características dos dados se alterarem, adaptações que são ______ se a conjunção do uso das estatísticas e do optimizer for uma opção. Assinale a alternativa que completa adequadamente as lacunas: Alternativas: Leviandade; da APP; dinâmicas. Leviandade; do SGBD, dinâmicas. Cautela; do APP; estáticas. Cautela; do APP; dinâmicas. CORRETO Cautela; do SGBD; estáticas. Resolução comentada: o texto está exato: um filtro de linhas será realizado, estabelecendo um laço aninhado, acessando-se a tabela EMP completa, e a tabela DEPT, por meio do ROWID, obtido da leitura do índice único PK_DEPTNO; a tabela SALGRADE será também de forma completa. Resolução comentada: a migração ocorre quando, sob um UPDATE, a linha tem acréscimo de bytes, mas no data block em que ela reside não contém mais espaço; então, o SGBD deverá reescrever essa linha em outro data block. Quando um INSERT não encontra espaço suficiente para a linha inteira no data block que deveria conter originalmente a linha, escreve essa linha em outro. Em ambos os casos (INSERT ou UPDATE), se a linha é muito maior que o espaço disponível nos data blocks, o SGBD utilizará diversos blocos. Ambos os eventos são conhecidos como linhas encadeadas (chainned rows). Em ambos os casos, o ROWID aponta para o data block original. Logo, é falso que o encadeamento é o evento quando o SGBD aumenta automaticamente o tamanho do data block, já que seu tamanho é fixo. É verdadeiro que uma linha nova corresponde a um INSERT. considerando-se que a isto se destina o comando INSERT. É verdadeiro que uma linha é aumentada por um UPDATE. considerando-se que o comando UPDATE pode incluir novas colunas ou fazer variar o tamanho das existentes. É falso que encadeamento é o evento quando o SGBD aumenta automaticamente o tamanho do extent. Encadeamento significa uma linha que não pode ser convenientemente acomodada em um data block. É verdadeiro que o ROWID é mantido apontando para o data block original, sendo justamente a questão mais grave, já que exige uma ação extra de I/O para leitura dessa linha. Resolução comentada: 31/08/2022 22:13 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2555557/3965193 5/6 9) 10) Código da questão: 58820 O SGBD utiliza uma estrutura lógica, denominada tablespace, para armazenar data blocks de diversos tipos de segmentos, como DICT, dados, índices, temporários e desistência (rollback). Sobre essa estrutura, pode-se afirmar: I. Tipos de segmento diferentes demandam tablespaces diferentes. II. Tablespaces diferentes tendem a evitar fragmentação (os segmentos crescem em cadências diferentes). III. Tablespaces diferentes tendem a evitar contenção (são frequentemente acessados simultaneamente, como índices e dados). IV. Tablespaces diferentes tendem a evitar paralelismo (os sistemas operacionais não dão suporte a esse tipo de possibilidade). V. A distribuição dos diversos tipos de segmentos se limita a um hábito e não concorre para a melhoria da performance do SGBD. Indique a seguir a opção que corresponde às proposições corretas: Alternativas: Somente as proposições I, IV e V estão corretas. Somente as proposições I, II e IV estão corretas. Somente as proposições I, II e III estão corretas. CORRETO Somente a proposição V está correta. Todas as proposições estão corretas. Código da questão: 58833 O bloco de dados estabelecido pelo SGBD, denominado data block, corresponde a um bloco de dados estabelecido pelo sistema operacional. A respeito desse data block, considere as afirmativas a seguir e classifique-as em verdadeiras (V) ou falsas (F): ( ) O data block do SGBD é um múltiplo inteiro do bloco de dados no SO. ( ) F – Expressa o arquivo fixo em que reside o bloco de dados. ( ) Nunca é possível determinar o tamanho do bloco de dados no SO. ( ) H – Expressa o cabeçalho de linha. ( ) PCTFREE – Expressa um espaço reservado no data block para futuro crescimento da linha. Assinale a alternativa que apresenta a sequência correta: Alternativas: V – F – V – F – V. V – F – V – V – V. INCORRETO V – F – F – V – V. CORRETO F – V – V – F – V. V – V – F – V – F. tal medida deve ser tomada com cautela, inclusive porque depende de reescrever um comando dentro do APP, o que pode levar a constantes manutenções, quando as características dos dados se alterarem, adaptações que são dinâmicas se a conjunção do uso das estatísticas e do optimizer for uma opção. Essa cautelase deve ao fato de que, se a distribuição estatística dos dados muda, é dinâmica, o hint deixa de ser útil, passando, portanto, de solução a problema. Os comandos SQL são inseridos habitualmente como textos, logo, dentro do APP. Resolução comentada: a informação completa indica que “tipos de segmento diferentes demandam tablespaces diferentes para evitar fragmentação (os segmentos crescem em cadências diferentes) e contenção (são frequentemente acessados simultaneamente, como índices e dados). A proposição I, ao afirmar que tipos de segmentos diferentes demandam tablespaces diferentes, está correta pelos motivos afirmados nas proposições II e III. A proposição II está correta, considerando-se que tablespaces diferentes tendem a evitar fragmentação, justamente porque os segmentos crescem em cadências diferentes. A proposição III está correta, uma vez que, por exemplo, índices e dados que eles referenciam nas tabelas, residindo em tablespaces diferentes, tendem a evitar contenção. Resolução comentada: no slide 6 do Bloco 1, é possível observar que o data block é assim dividido: F – Porção fixa do cabeçalho do bloco. V – Porção variável do cabeçalho do bloco. L – Diretório de linhas. T – Diretório de tabelas. H – Cabeçalho de linha. 31/08/2022 22:13 Cosmos · Cosmos https://kroton.platosedu.io/lms/m/aluno/disciplina/index/2555557/3965193 6/6 Código da questão: 58837 C – Cabeçalho de coluna. PCTFREE – Espaço reservado no bloco para futuro crescimento da linha. PCTUSED – Limite abaixo do qual o bloco volta a receber novas inserções. Já no Bloco 3, slide 20, encontra-se a recomendação para fazer coincidir a “blocagem” ao nível do sistema operacional (SO) com necessidades do SGBD, de modo a “economizar” o processo de I/O que “recolherá” blocos do SO para “entregar” ao SGBD. Na Aprendizagem em Foco, Direto ao Ponto, está a informação sobre “cada data block ser constituído um múltiplo inteiro de blocos endereçados pelo sistema operacional”. Arquivos e Links
Compartilhar