2016-02-01 2 views
1

Когда я выполняю запрос в первый раз в DBeaver, это может занять до 10-15 секунд, чтобы отобразить результат. В SQLDeveloper эти запросы занимают только часть времени.Простые запросы занимают очень много времени

Например: Простые "выберите column1 из table1" заявления

DBeaver: 2006ms, SQLDeveloper: 306ms

Пример 2 (наоборот, так что Тереза ​​нет на стороне сервера кэширования): Простой "выберите column1 из table2" заявление

SQLDeveloper: 252ms, DBeaver: 1933ms

DBeavers окно состояния говорит:

  1. Fetch Resultset
  2. атрибут Discover COLUMN1
  3. атрибут Поиск COLUMN1
  4. атрибут Late связывают colummn1

2, 3 и 4 используют большую часть времени выполнения запроса.

Я использую oracle 11g, SQLDeveloper 4.1.1.19 и DBeaver 3.5.8.

См http://dbeaver.jkiss.org/forum/viewtopic.php?f=2&t=1870

Что может быть причиной?

+1

Я голосую, чтобы закрыть этот вопрос не по теме, потому что мы не поддерживаем техническую поддержку DBeaver. Если вы обнаружите, что этот продукт медленный, используйте другой, или напишите ошибку. – Mat

+0

Я не прошу исправить эту ошибку, если она одна. Я спрашиваю, кто-то испытал это, и если кто-нибудь знает причину. –

+0

Это не вопрос программирования. Используйте чат, если хотите обсудить это. – Mat

ответ

1

DBeaver ищет некоторые метаданные, связанные с объектами в вашем запросе.

На БД Oracle, он запрашивает каталог таблицы, такие как

  • SYS.ALL_ALL_TABLES/SYS.ALL_OBJECTS - только один раз после подключения, для первого запроса выполняемыми
  • SYS.ALL_TAB_COLS/SYS.ALL_INDEXES/SYS.ALL_CONSTRAINTS/... - Я считаю, что каждый раз, когда вы запрашиваете таблицу, которая раньше не использовалась.

Версия 3.6.10 ввела опцию включения/выключения подсказки, используемой в этих запросах. Отключение подсказки сделало для меня огромную разницу. Этот параметр находится на вкладке «Свойства Oracle» диалогового окна редактирования соединения. Посмотрите на issue 360 on dbeaver's github для получения дополнительной информации.

+0

Спасибо! Я видел билет вчера, но поскольку он был нацелен на выпуск 3.7, я бы, наверное, должен был ждать. Отлично, что это, наконец, было рассмотрено. –

2

Лучший способ получить представление является perfom database trace

Выполните немного времени запроса для устранения эффекта кэширования.

чем повторение в обеих Идах следующих шагов

активировать трассировку

ALTER SESSION SET tracefile_identifier = test_IDE_xxxx; 

alter session set events '10046 trace name context forever, level 12'; /* binds + waits */ 

ОБЕСПЕЧИТЬ на ххом, чтобы определить тест. Вы увидите эту строку как часть имени файла трассировки.

Используйте уровень 12, чтобы увидеть события ожидания и привязать переменные.

запустить запрос

закрыть conenction

Это важно, чтобы не отслеживать другие вещи.

Изучите два файла трассировки, чтобы увидеть:

  • какие заявления были выполнены

  • , что число строк было неправдоподобным

  • какое время было прошло в БД

  • в остальное время отвечает клиент (IDE)

Это должно предоставить вам достаточное количество доказательств, подтверждающих, что одна IDE ведет себя иначе, чем другие, или, если проста, выписанные заявления БД различны.

Смежные вопросы