Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Desempenho do Oracle Database: otimização de consultas

Desempenho do Oracle Database: otimização de consultas

Estatísticas - Apresentação

Oi, gente, tudo bem? Meu nome é Victorino Vila, e vamos começar mais um curso da formação Oracle. É quase uma extensão do curso anterior da formação, porque o assunto ainda vai ser performance. Ambos os cursos, este e o anterior, trataram de como eu melhoro a performance do Oracle. Mas o que é performance?

Performance é o tempo que o usuário espera para que o banco de dados dê uma resposta a uma pergunta que ele fez ao mesmo banco. E para melhorar a performance, podemos analisar o problema em duas partes: ou melhora-se o ambiente, a forma com que o Oracle se inter-relaciona com o hardware em que ele está instalado, ou melhoramos a forma com que o Oracle vai resolver uma consulta que o usuário está enviando para o banco de dados.

O curso anterior da formação deu foco no ambiente, já este curso vai dar ênfase na forma com que o Oracle resolve as consultas. E você pode me perguntar se você pode fazer esse curso sem fazer o anterior. A resposta é sim, você pode. Mas eu pessoalmente não aconselho, principalmente porque nesse treinamento nós vamos fazer depois, no final, um trabalho prático em que algumas coisas desse trabalho vão cobrir assuntos que eu falei no curso anterior a esse curso.

Então, eu aconselho a vocês fortemente que façam primeiro o curso anterior da formação, para depois fazer esse. Na verdade, os dois cursos, o anterior e esse, eram para ser um curso único, mas na Alura não gostamos de ter cursos muito extensos. Mas às vezes, não tem jeito, às vezes, o assunto tem muita coisa para falar. Então, o assunto tem que ter começo, meio e fim, e então ele acaba ficando muito longo. Então, acabamos dividindo o curso original em dois ou três cursos, ou quantas vezes forem necessárias, criando meio que um início, meio e fim, intermediário.

Então, nesse treinamento vamos voltar a falar de coleta de estatísticas. Só que agora as coletas dessas estatísticas vão estar muito mais ligadas com a resolução dos comandos de SQL, do que meio que apropriar, verificar as propriedades do ambiente. São estatísticas que vão envolver os objetos Oracle, que fazem parte de uma consulta. Isso, porque depois o Oracle vai consultar essas estatísticas para decidir o que ele vai fazer na hora de resolver uma consulta SQL.

E vamos falar também sobre os Advisors, que são os aconselhadores, digamos assim. Só que eles são aconselhadores da estrutura do banco, para auxiliar na resolução das consultas SQL. Vamos falar também sobre índices, que é uma estrutura auxiliar que ajuda na performance, e também vamos falar das visões materializadas, que é uma coisa exclusiva do Oracle, que também ajuda na performance.

E como eu falei, vamos resolver, ao final, um problema prático, em que vamos resolver a performance de uma consulta, e vamos aplicar tudo que vimos nesse e no curso passado, para melhorar a performance dessa consulta.

Então, é isso, espero que vocês gostem deste curso, vamos seguir em frente, um grande abraço e até o próximo vídeo.

Estatísticas - Antes de começar

Antes de começar, alguns pequenos esclarecimentos. Esse treinamento faz parte da nossa formação Oracle que estamos montando na Alura, e ele é o segundo curso cujo assunto é o desempenho. Só que no curso passado, dentro da formação, enfatizamos o desempenho do ambiente. Neste, vamos dar ênfase ao desempenho do SQL, o desempenho do comando para resolver uma SQL, uma seleção, por exemplo.

Só que para fazermos os exercícios práticos, precisamos de um ambiente instalado na nossa máquina. Então, se você vem seguindo a formação Oracle corretamente, usando a mesma máquina, você não precisa instalar nada de novo para fazer esse treinamento. Porém, se você por algum motivo está usando uma máquina nova, ou está querendo só ver esse assunto específico sem seguir os outros cursos da formação, seria um problema. Mas você precisa montar um ambiente para poder trabalhar nesse treinamento.

Então, no primeiro vídeo depois da apresentação do curso anterior a este, eu explico melhor os requisitos para você fazer a instalação desse ambiente. Mesmo assim, eu coloquei o slide, que é o mesmo que eu apresento lá esse outro vídeo que eu estou sugerindo que vocês assistam, com os requisitos para você montar esse ambiente. Mas, basicamente, você precisa desinstalar todo o Oracle que você tenha, instalar a versão 19C, instalar o Oracle SQL Developer, criar uma instância e fazer a conexão do SQL Developer usando os usuários SYS e SYSTEM.

Existem vídeos dentro dos outros cursos da formação Oracle, em que eu explico com mais detalhes como eu faço esse procedimento, esses vídeos também estão sendo especificados no slide.

Então, se você não está com a sua máquina limpa, assiste o segundo vídeo da primeira aula do curso anterior a este, lá eu explico melhor os requisitos, e depois você vai nos vídeo em que eu mostro as instalações e sigo todos os passos. Se você já tem todo o ambiente instalado, está fazendo a formação na ordem, não precisa fazer nenhuma instalação. Um abraço, vamos nessa, até o próximo vídeo.

Estatísticas - Criando banco limpo

Antes de começarmos este curso, como estamos usando desde o início do nosso treinamento uma instância de Oracle, que criamos no início, e estamos fazendo várias modificações, para este curso vamos tentar nivelar todo mundo com a mesma base de dados. Para isso, vamos fazer um processo, que é até legal para treinarmos, vamos apagar todo o banco de dados que temos na nossa máquina agora, e vamos criá-lo de novo vazio.

Então, vamos lá. Primeiro passo para limpar o banco de dados. Vamos ao menu do Oracle, onde temos o Oracle instalado, e vamos em “Assistente de configuração do banco de dados”.

Esse é o mesmo assistente que usamos para criar um banco de dados. Só que ao invés de criarmos um banco de dados, vamos excluir o banco de dados. Eu vou clicar em “Próximo”, vamos escolher o banco de dados que está ativo no momento na nossa máquina, que é o “ORCL1”, e eu vou colocar a senha que colocamos quando criamos o banco. Eu vou clicar em “Próximo”, ele vai analisar o ambiente todo, como está o meu ambiente de trabalho. Eu não vou selecionar a opção “Cancelar registro no EM (Enterprise Manager)”, vou clicar “Próximo”, eu tenho todas as minhas opções, e eu vou em “Finalizar”.

Ele dá um alerta dizendo que vai apagar tudo, e clicamos em “Sim”. Começamos o processo de exclusão do banco de dados. Eu vou parar o vídeo e eu volto assim que esse processo terminar. Até daqui a pouco.

Fechei a minha caixa de diálogo de exclusão do banco, eu vou no meu menu, em que eu tenho o Oracle instalado, as opções do meu Oracle instalado na minha máquina, e eu vou em “Assistente de configuração de rede”.

Nesta parte vamos selecionar “Configuração do listener”, e vamos excluir a nossa comunicação entre o cliente e o servidor, que se chama “ORCL1”. Eu vou clicar em “Sim”, esperamos alguns segundos, e o listener é excluído do nosso ambiente. O listener foi excluído, e eu vou fechar a caixa de diálogo.

Agora, vamos nos certificar que realmente o serviço do Oracle saiu da máquina. Para isso, eu vou em “Serviços” no Windows, e vamos tentar procurar na letra O se temos alguma coisa do Oracle associada a minha instância, e note que eu não tenho nenhum serviço na letra O, só tem “OracleRemExecServiceV2”, mas ele é do banco, eu acho, não tenho mais nada ligado ao serviço, então, a exclusão do listener deu certo.

Mas temos que fazer outra coisa, vamos no diretório em que o Oracle foi instalado, no meu caso foi em “C > app > oracle”, temos um diretório “oradata”, e nesse ponto vocês têm que se certificar que não tenha mais um diretório chamado “ORCL1”, no meu caso ele sumiu, mas pode ser que ao fazer a exclusão do banco, o diretório “ORCL1”, que é o nome do banco, ainda esteja nessa pasta, então deletem manualmente.

Agora podemos voltar ao menu do Oracle, e vamos de novo abrir o assistente de configuração do banco de dados, vamos esperar um pouco, e nesse assistente vamos criar um banco. Vamos escolher “Configuração avançada”, “Banco de dados Oracle de Única Instância”, e o banco vai ter a “Finalidade geral ou Processamento de Transação”, todos esses passos eu contei no outro curso, quando começamos a ver a parte de administração do Oracle. Quem quiser mais detalhes, pode voltar e ver nos vídeos desse outro curso, se eu não me engano, são três cursos atrás deste na formação Oracle da Alura.

“Finalidade Geral ou Processamento de Transação”, clico em “Próximo”, eu vou chamar de novo o meu banco de “ORCL1”, vou desmarcar a opção “Criar como banco de dados contêiner”, clico em “Próximo”, vou marcar a opção “Usar modelo de arquivo para atributos de armazenamento de banco de dados”, clico em “Próximo”, nessa tela eu não faço nada, clico em “Próximo”, e nessa tela eu vou criar o listener, que ele vai se chamar “ORCL1”, e vai estar na porta 1521.

Clico em “Próximo”, deixo essa próxima tela vazia, não marco nada, na próxima eu vou “settar” o tamanho da SGA e o tamanho da PGA para 1 giga, ou seja, 1000 megas, e embaixo, na PGA, para 800 mega. Vou clicar em “Próximo”, na próxima tela eu não mudo nada, é a configuração do Enterprise Manager, clico em “Próximo”, nessa tela eu vou colocar a senha dos usuários SYS e SYSTEM, vou colocar uma senha fácil de lembrar, que no caso eu vou repetir, vou colocar a senha do meu usuário SYS como “SYS”, e a senha do meu usuário SYSTEM como “SYSTEM”.

E embaixo a senha do usuário do serviço do Oracle, essa senha foi uma que colocamos quando instalamos o Oracle Enterprise. Ele vai dizer que a senha é muito simples, para tomar cuidado, eu vou ignorar esse aviso, e eu vou selecionar a opção “Criar banco de dados”. Ele diz tudo que ele vai fazer, e clicamos em “Finalizar”.

Então, agora o meu banco de dados está sendo recriado novamente, limpo, com uma configuração padrão. Vou parar o vídeo novamente, e volto assim que terminar o processo de criação do banco. Até daqui a pouco.

Meu banco foi criado, vamos fazer um teste para saber se as conexões que tínhamos no SQL Developer estão ainda funcionando ou não. Eu vou fechar, vou abrir o meu SQL Developer, e claro que ele vai me apresentar uma série de conexões que eu usei durante o curso, mas as duas conexões importantes que precisamos deixar funcionando, são as conexões com o usuário SYS e com usuário SYSTEM, as outras, não precisamos nos preocupar nesse momento em fazer funcionar.

Eu vou clicar no botão “+”, e primeiro vou selecionar a “CONEXAO USUARIO SYS”. Garante que no campo “Alias da rede” você tenha o mesmo listener “ORCL1” que eu tinha antigamente, que foi o que eu usei para criar esse banco. E vamos fazer um teste. E ele mostra “Status: Com Sucesso”. Vou selecionar a outra, a “CONEXAO USUARIO SYSTEM”.

Caso você tenha mudado a senha, você coloca a senha que você criou quando você criou esse banco de dados limpo que acabamos de fazer. Eu vou testar, e ele me mostra “Status: Com Sucesso”. Então, eu tenho a minha conexão funcionando, o último teste que eu vou fazer, vou fechar o SQL Developer, e ir à linha de comando, e vamos ver se entramos no SQL Plus como SYSDBA. Então sqlplus / as sysdba.

Entrei, e para ver se está funcionando, vamos dar um shut down e um restart no banco, então SQL> shutdown, então ele vai desligar o banco. Vou parar o vídeo e volto assim que o processo terminar.

Agora, eu vou dar um SQL> startup, para subir o banco. Vamos ver se ele vai subir corretamente. Vou parar o vídeo novamente, e volto assim que ele terminar.

Pronto, subi o banco de novo, então estou com o meu ambiente preparado para fazermos esse curso. Vou colocar SQL> exit, e um abraço, até o próximo vídeo.

Sobre o curso Desempenho do Oracle Database: otimização de consultas

O curso Desempenho do Oracle Database: otimização de consultas possui 279 minutos de vídeos, em um total de 53 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas