Eu uso o Oracle SQL Developer (versão 17.3.1.279) no Windows 10 de 64 bits.
Ele está conectado a um banco de dados Oracle na rede por meio do TNS.
Sempre que eu abro o "construtor de consultas" pela primeira vez para uma consulta, ou após algumas alterações no código SQL, leva muito tempo (30-60 s) para carregar.
Também "insights de conclusão" aparecem muito lentos (3-4 s), então eu geralmente acabo de digitar os nomes de tabelas e colunas antes deles aparecerem (a configuração é de 0.6 s para eles aparecerem).
Com base nos problemas acima, suspeito que o desenvolvedor SQL sempre leia informações do banco de dados. Existe uma maneira de torná-lo armazenar informações localmente? (estrutura do banco de dados é bastante permanente, muda menos de uma vez por ano)
Eu também tive uma olhada no gerenciador de tarefas, e o que é estranho é que, mesmo que o desenvolvedor SQL não responda ao preparar o "construtor de consultas", ele não usa muitos recursos
Recursos utilizados pelo desenvolvedor do SQL durante a preparação da exibição:
- 0-1,5% da minha CPU (pulando até 7% por alguns segundos)
- 600 - 650 MB de RAM (eu tenho um total de 16 GB, dos quais 9 GB são gratuitos, então eu não acho que seria um gargalo).
- 0 MB / s de disco e 0% de rede
Em geral, o desempenho não é afetado
- Uso da CPU 10-30%
- memória: 7-8 GB usados, 8-10 GB comprometidos, 8-9 GB livres
- uso de disco: 0-5%
fonte
select * from MyTable
) se comportam da mesma forma.Respostas:
Uma possível explicação é que o construtor de consultas precisa obter todas as tabelas do banco de dados e todas as informações de coluna antes de permitir acesso ao próprio criador de consultas, e que o carregamento de todos esses dados é o que leva tempo. Para esse problema, posso pensar apenas na solução alternativa de uso de um esquema de fonte de dados customizado, em que apenas as informações da tabela necessárias são incluídas, se isso for possível no seu caso.
Para sua pergunta sobre um cache local, aqui estão algumas referências, embora pareça que elas afetam apenas as consultas, e seu problema pode estar no carregamento dos metadados das tabelas:
Você também pode usar o comando Alter Table para alterar a residência das tabelas que você usa para Cache. Isso só é adequado se você tiver RAM suficiente para manter as tabelas na memória, onde elas serão lidas bit a bit e mantidas quando acessadas. Mas eu realmente não sei se os metadados das tabelas dos catálogos do sistema também são lidos e mantidos na memória.
Abaixo estão listadas outras dicas gerais que também podem ajudar:
Desativar recursos não utilizados em Ferramentas / Recursos
Desativar extensões
Em Preferências, desative todas as extensões desnecessárias, exceto talvez a Barra de Pesquisa (é necessário reiniciar o SQL Developer). Isso também limpará o menu principal de itens não usados.
Definir preferência de aparência para o sistema operacional host
Isso ajudará a farm-out a GUI para o host, em vez de desenhar tudo via Java. Outros parâmetros Java poderiam ser ajustados, mas isso é apenas para os aventureiros.
Feche grades e arquivos quando terminar
Definir limite de histórico do SQL para um valor baixo
Se estiver executando via Remote Desktop, ajuste as configurações gráficas
Otimize o verificador de vírus O
SQL-Developer é um programa Java que consiste em
.jar
arquivos grandes , que são apenas.zip
arquivos, portanto não faz sentido examinar todo o arquivo apenas para alguns arquivos. Você pode excluir a pasta SQL-Developer das verificações de vírus.Executar o SQL-Developer como administrador
Se tudo mais falhar, existem Alternativas Livres para o Oracle SQL Developer .
fonte
Depois de várias tentativas sem sucesso eu entrei em contato com o gerente de Oracle da minha empresa, que mencionou o problema para a Oracle.
Eles reconheceram que é de fato lento, e agora na versão 3.2.20.10 o problema está resolvido, é muito rápido!
fonte