5

Я использую Oracle SQL Developer (версия 17.3.1.279) в Windows 10 64 бит.
Он подключен к базе данных Oracle в сети через TNS.

Каждый раз, когда я впервые открываю "построитель запросов" для запроса или после некоторых изменений в коде SQL, загрузка занимает много времени (30-60 с).

Кроме того, "понимание завершения" выглядит очень медленно (3-4 с), поэтому я обычно заканчиваю вводить имена таблиц и столбцов, прежде чем они появятся (для их появления установлено значение 0,6 с).

Исходя из вышеуказанных проблем, я подозреваю, что разработчик SQL каждый раз читает информацию из базы данных. Есть ли способ заставить его хранить информацию локально? (структура базы данных достаточно постоянна, она меняется не реже одного раза в год)


Я тоже заглянул в диспетчер задач, и что странно, даже если разработчик SQL не отвечает, когда он готовит "построитель запросов", он не использует много ресурсов

Ресурсы, используемые разработчиком SQL при подготовке представления:

  • 0-1,5% моего процессора (подскочил до 7% за несколько секунд)
  • 600 - 650 МБ ОЗУ (всего 16 ГБ, из которых 9 ГБ бесплатно, поэтому я не думаю, что это будет узким местом).
  • 0 МБ / с диска и 0% сети

В целом на производительность это не влияет

  • Загрузка процессора 10-30%
  • Память: 7-8 ГБ, 8-10 ГБ, 8-9 ГБ свободно
  • использование диска: 0-5%

1 ответ1

2

Возможное объяснение состоит в том, что сборщик запросов должен получить все таблицы базы данных и всю информацию об их столбцах, прежде чем разрешить доступ к самому построителю запросов, и что загрузка всех этих данных занимает время. Для этой проблемы я могу думать только об обходном пути использования пользовательской схемы источника данных, в которую включена только необходимая табличная информация, если это возможно в вашем случае.

На ваш вопрос о локальном кэше вот несколько ссылок, хотя похоже, что они влияют только на запросы, и ваша проблема может быть связана с загрузкой метаданных таблиц:

Вы также можете использовать команду «Изменить таблицу», чтобы изменить резидентность таблиц, которые вы используете, на Cache. Это подходит только в том случае, если у вас достаточно ОЗУ для хранения таблиц в памяти, где они будут считываться побитно и сохраняться при обращении к ним. Но я не знаю, читаются ли метаданные таблиц из системных каталогов и хранятся ли они в памяти.

Ниже перечислены другие общие советы, которые также могут помочь:

  • Отключите неиспользуемые функции в Инструменты / Возможности

  • Отключить расширения
    В настройках отключите все ненужные расширения, кроме, возможно, SearchBar (необходимо перезапустить SQL Developer). Это также очистит главное меню от неиспользуемых пунктов.

  • Установите предпочтения Look and Feel для хоста ОС
    Это поможет перенести GUI на хост, а не рисовать все через Java. Другие параметры Java могут быть изменены, но это только для приключений.

  • Закройте сетки и файлы, когда закончите

  • Установите ограничение истории SQL на низкое значение

  • При запуске через удаленный рабочий стол, настройте графические настройки

  • Оптимизировать антивирусный сканер
    SQL-Developer - это Java-программа, состоящая из больших .jar архивов, которые являются просто .zip архивами, поэтому нет смысла сканировать весь архив только для некоторых файлов. Вы можете исключить папку SQL-Developer из сканирования на вирусы.

  • Выполнить SQL-Developer от имени администратора

  • Если ничего не помогает, есть бесплатные альтернативы Oracle SQL Developer.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .