Страница 1 из 1

Оптимизация индексов в программе...?

Добавлено: 25 июл 2005, 14:49
HEMD
Здраствуйте, коллеги!
Не нашел API по оптимизации индексов в базе (понимаю что начинаю выклянчивать, пожалуйста подскажите ссылку на примеры или теорию). В этом есть необходимость, поскольку используется сложный JOIN и при кол-ве записей >50000, возникают проблемы с производительностью...


Спасибо ВСЕМ откликнувщимся! Удачи ВАМ Дамы и Господа!

Добавлено: 25 июл 2005, 16:39
kdv
НЕТ никакого API по "оптимизации индексов в базе".

а по поводу join см.
www.ibase.ru/devinfo/joins.htm

Добавлено: 25 июл 2005, 17:00
HEMD
Да, спасибо, KDV, конечно читал о использовании JOIN на этом сайте и на соседском форуме выдвигал запрос :) (оптимизировал насколько мог).
Просто эта вещь (оптимизация индексов) присутствует в IBEXPERT, и хотелось написать эту процедуру программным путем из своей программы (запрос выполняется в 2-3 раза быстрее), а заставлять пользователя применять и IBEXpert для оптимизации... :(

Добавлено: 25 июл 2005, 17:03
kdv
эта вещь (оптимизация индексов) присутствует в IBEXPERT
что-что там присутствует??? :-)

Добавлено: 27 июл 2005, 04:22
tie
Уважаемый!
Сударь!
kdv!
А как вы определяете какой индекс нужен а какой нет?

Добавлено: 27 июл 2005, 09:01
Лысый
tie писал(а):Уважаемый!
Сударь!
kdv!
А как вы определяете какой индекс нужен а какой нет?
Это не он, а сервер определяет какие индексы использовать :) Возможно и ручное управление планами, но где гарантии, что в следующей версии сервера не придется переписывать?

Добавлено: 27 июл 2005, 10:27
kdv
какие индексы использовать, определяет сервер. что такое индексы и вообще (статистика и т.п.) - есть в документации, а также в хелпе IBAnalyst. Остальное - своей думалкой.

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

Добавлено: 27 июл 2005, 11:36
Merlin
kdv писал(а): я бы хотел вернуться к вопросу, что за "вещь (оптимизация индексов)" присутствует в IBExpert?
Ставлю на inactive/active :lol:

Добавлено: 27 июл 2005, 12:08
Karp
Merlin писал(а): Ставлю на inactive/active :lol:
а я на селективность (IBE - обновить статистику) -))

Добавлено: 27 июл 2005, 12:28
Ivan_Pisarevsky
я бы хотел вернуться к вопросу, что за "вещь (оптимизация индексов)" присутствует в IBExpert?
Может имеется в виду план запроса, показываемый ибэкспертом?
Я вот, например, пишу в программе запрос, если тормозит, скармливаю его ибэкперту, выполняю, гляжу на время, на план, если где-то сервер поплелся натуралом, то добавляю/убиваю индексы, рихтую запрос :) Но тут оптимизация ручками, а не ибэкспертом :wink:

Добавлено: 27 июл 2005, 17:01
_so_
Может имеется в виду план запроса, показываемый ибэкспертом?
Я вот, например, пишу в программе запрос, если тормозит, скармливаю его ибэкперту, выполняю, гляжу на время, на план, если где-то сервер поплелся натуралом, то добавляю/убиваю индексы, рихтую запрос Но тут оптимизация ручками, а не ибэкспертом
Почти так. Но в некоторых случаях по хуже. План не всегда показвается. Приходится вазиться подольше. Бывает приходится отключать индексы udf. Иногда еще хуже. Из-за глюков IB начиная с 7.1 приходится обкладывать вложенные select возвращаемые резулбтат обкладывть хранимыми процедурами, чтоб за использовал индексы. иначе делает натурал. Короче гемороя много. Но все же оптимистично.

Добавлено: 27 июл 2005, 19:52
Merlin
_so_ писал(а): Почти так. Но в некоторых случаях по хуже. План не всегда показвается. Приходится вазиться подольше. Бывает приходится отключать индексы udf. Иногда еще хуже. Из-за глюков IB начиная с 7.1 приходится обкладывать вложенные select возвращаемые резулбтат обкладывть хранимыми процедурами, чтоб за использовал индексы. иначе делает натурал. Короче гемороя много. Но все же оптимистично.
Что посоветовать - выдохнуть или закусить?

Добавлено: 28 июл 2005, 10:44
_so_
И то и другое одновременно.

Добавлено: 28 июл 2005, 12:09
kdv
где автор вопроса? я таки хочу продолжения дискуссии...

Добавлено: 06 сен 2005, 12:44
HEMD
Здравствуйте господа!
Случайно зашел на форум, а тут...
Извините за долгое молчание, поскольку тоже неменьше ожидал ответа (а тут еще и командировка). Однако в продолжении дискуссии:
1. Под оптимизацией понималось: Recompute of selectivity of all indices.
2. В действительности постановка вопроса не отличается проффесианализмом (новичек), но поэтому и обратился у к Вам уважаемые.
3. Вопрос частично решился ответом в запросе на SELECT FIRST 100 * FROM TABLE, однако вопрос животрепещущий и не решенный...
4. Главный "тормоз" запроса это -> ORDER BY Some_Pole... На это и был направлен вопрос о оптимизации индексов...
ВСЕМ ОГРОМНОЕ СПАСИБО