Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
SQL, PL/SQL, T-SQL: запросы, DML DDL операторы, пакеты, процедуры, функции, триггеры и последовательности.
  • Страница:
  • 1
  • 2
  • 3

ТЕМА:

Re: Поиск по дереву в Oracle 12 года 9 мес. назад #2731

  • Jack
  • Jack аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Нет не собиралась. А как ее собирать? и какую?
optimizer_index_cost_adj = 100 (как я понимаю по умолчанию установлен)

Я по администрированию Oracle очень мало чего знаю. В основном с MSSQL работаю, но иногда приходится и под Oracle писать.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Поиск по дереву в Oracle 12 года 9 мес. назад #2732

Ну в общем тут надо осторожно, т.к. если база боевая и некоторые запросы заточены на то, что статистики нет, то при сборе они могут начать тормозить.
Но если можно пробовать, то:
SQL> analyze table hr_archive compute statistics;

SQL>alter session set optimizer_index_cost_adj = 1;

SQL>alter session set sort_area_size = 10000000;

ну и теперь запрос.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Поиск по дереву в Oracle 12 года 9 мес. назад #2733

  • Jack
  • Jack аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Не... База тестовая можно не волноваться)))
Попробовал - те же 14 секунд... ЧТоже делать??.
И еще плюс ко всему прочему идут full сканы... Это нормально?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Jack.

Re: Поиск по дереву в Oracle 12 года 9 мес. назад #2734

а... там full сканы идут из-за
like  '%ON%'

.
Но, думаю, что от этого не избавится, если только это не стоит в начале или конце строки. Или если уж производительность суперкритична, то я бы добавил столбец в котором можно искать вот так
like  'ON%'

или вот так
like  '%ON'

.
а план после сбора статистики и изменении параметров не поменялся? Можно еще попробовать собрать вот так:
SQL> analyze table hr_archive compute statistics for all indexed columns size 100;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Поиск по дереву в Oracle 12 года 9 мес. назад #2735

  • Jack
  • Jack аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Мне кажется? проблема в том, что даже без ограничений по like, если я просто строю все целиком дерево из 3100 записей - он строится > 10 сек :(

Наверное, connect by/start width - можно использовать на небольших деревьях
,но для больших это не подходит

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Поиск по дереву в Oracle 12 года 9 мес. назад #2736

Я строил деревья на 100 000 (примерно), собираюсь тестировать для 500 000 и 1 000 000.
Время выполнения зависит от двуx основных параметров
-- широта дерева (большее количество узлов при меньшем количестве уровней) --> чем шире тем медленнее
-- количество узлов

Но на 100000 при достаточно тяжелом запросе, когда для каждого узла строился обратный проход по дереву в коррелированном подзапросе максимальное время было 1 мин. 23 сек (на память)
И это на домашней машине:
-- оракл 9.2.0
-- Suse 8.0
-- оп 512 /сга 80/ dbcache - 128
-- amd athlon 1600 (важно поскольку некоторые запросы порождают огромное количество коротких сортировок в памяти (для которых не требуется расширение Sort_area а только CPU perfomance)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Pond.
  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.253 секунд