Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / индексы / 12 сообщений из 12, страница 1 из 1
09.06.2006, 14:59
    #33783588
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
я сделал оптимизатор запросов ,который добавляет описание индекса в скрипт,если его там нет.Но если для таблицы есть несколько индексов по полям,упомянутым в запросе ,то выбор индекса неочевиден ,например ,индекс ,упомянутый в секции до from ,дает у меня лучшие результаты ,чем тот,где перечислены поля в секции where .Какой индекс лучше всего использовать ?
...
Рейтинг: 0 / 0
09.06.2006, 15:50
    #33783793
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
А что - штатный оптимизатор запросов не умеет индексы выбирать под таблицы, что ему нужно свои навязывать ?
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
09.06.2006, 15:54
    #33783805
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
вот знаете ,своим оптимизатором индекс не подставлю -никакой не используется.Или нужно оптимизатор включить в запросе ?
...
Рейтинг: 0 / 0
09.06.2006, 15:55
    #33783809
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
oleggar пишет:

> я сделал оптимизатор запросов

Пятница, отднако, в самом разгаре

> ,который добавляет описание индекса в скрипт,если его там нет.

А ты уверен что это оптимизатор, а не деоптимизатор?

> Но если для таблицы есть несколько индексов по
> полям,упомянутым в запросе ,то выбор индекса неочевиден ,например
> ,индекс ,упомянутый в секции до from ,дает у меня лучшие результаты ,чем
> тот,где перечислены поля в секции where .Какой индекс лучше всего
> использовать ?

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


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
09.06.2006, 16:46
    #33784003
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
кстати ,а селективность индексов в базе где-то хранится ?и еще -я слышал ,что для условий where условия с большой селективностью лучше ставить справа ,для Сайбейс єто так ?Для Оракл єто имеет небольшое значение ,хоть и заметное
...
Рейтинг: 0 / 0
09.06.2006, 19:42
    #33784382
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
oleggar пишет:

> кстати ,а селективность индексов в базе где-то хранится ?и еще -я слышал
> ,что для условий where условия с большой селективностью лучше ставить
> справа ,для Сайбейс ?то так ?Для Оракл ?то имеет небольшое значение
> ,хоть и заметное

От кого слышал? Почитай где-нибудь, например в документации или в инете
про принципы работы оптимизатора, про статистику значений и гистограммы,
вообще про то, как сервер выполняет запросы, посмотри планы
выполнения различных запросов и т.п. чтобы не задавать таких веселых
вопросов и не тратить время на "оптимизатор оптимизатора"
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.06.2006, 10:51
    #33786883
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
я почитал о том,как строятся гистограммы ,но все равно где-то нужно увидеть селективность индекса,даже если бы я руками ставил индексы.где я могу увидеть ее ?Я бы сам посчитал,но не хочется загружать сервер
...
Рейтинг: 0 / 0
13.06.2006, 11:23
    #33786956
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
oleggarя почитал о том,как строятся гистограммы ,но все равно где-то нужно увидеть селективность индекса,даже если бы я руками ставил индексы.где я могу увидеть ее ?Я бы сам посчитал,но не хочется загружать сервер
Статистики маловато будет. Оптимизатор сервера при выборе индексов руководствуется способами соединения таблиц, наложения фильтров и сортировок, где эти способы (алгоритмы) могут существенно изменятся не только от константных условий запроса и заполнения статистики, но и текущих технических характеристик самого сервера, таких к примеру, как кол-во доступной памяти, процент обрабатываемых данных, присутствующих в кэше, нагрузки на процессорную и дисковую системы и т.д. и т.п., складывающееся из сотен "НО". Исходя из этого пытаться за cost-based оптимизатор навязывать ему индексы ... IMHO совершенно бесполезная и глупая работа, вместо которой на самом деле желательно бы задуматься, а не стоит ли изменить свои подходы проектировани и работы с релляционными серверами баз данных.
...
Рейтинг: 0 / 0
13.06.2006, 12:49
    #33787282
oleggar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
понимаете ,базу проектировал не я .и если учесть ,что кто-то сделал индексы с первыми полями селективностью 0,5 (пол человека и тому подобное) ,неудивительно ,что оптимизатор сходит с ума и не хочет работать .моя задача -максимально использовать эти плохие индексы .кстати ,статистика должна быть в базе syscolstat ,но я ее не вижу в структуре .
...
Рейтинг: 0 / 0
13.06.2006, 16:06
    #33788027
индексы
oleggarпонимаете ,базу проектировал не я .и если учесть ,что кто-то сделал индексы с первыми полями селективностью 0,5 (пол человека и тому подобное) ,неудивительно ,что оптимизатор сходит с ума и не хочет работать .моя задача -максимально использовать эти плохие индексы .кстати ,статистика должна быть в базе syscolstat ,но я ее не вижу в структуре .
ну, для начала было бы неплохо указать, что вообще за сервер у Вас

для ASE статистику можно глянуть optdiag-ом.
Код: plaintext
http://docs.sybase.com/onlinebooks/group-as/asg1251e/utility/@Generic__BookView?DwebQuery=optdiag&DwebSearchAll= 1 

а селективность значений можно и самому посчитать - это ж удельный вес значения
...
Рейтинг: 0 / 0
13.06.2006, 17:03
    #33788225
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
oleggar wrote:

> понимаете ,базу проектировал не я .и если учесть ,что кто-то сделал
> индексы с первыми полями селективностью 0,5 (пол человека и тому
> подобное) ,неудивительно ,что оптимизатор сходит с ума и не хочет
> работать .моя задача -максимально использовать эти плохие индексы

Желаю удачи в изобретении велосипеда с квадратными колёсами из чугуна .
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.06.2006, 17:10
    #33788262
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
индексы
oleggarпонимаете ,базу проектировал не я .и если учесть ,что кто-то сделал индексы с первыми полями селективностью 0,5 (пол человека и тому подобное) ,неудивительно ,что оптимизатор сходит с ума и не хочет работать .моя задача -максимально использовать эти плохие индексы .кстати ,статистика должна быть в базе syscolstat ,но я ее не вижу в структуре .
Ну и кто мешает грохнуть плохие индесы и создать хорошие, по которым с удовольствием будет работать оптимизатор ? Индексы (кроме уникальных) не влияют на логику работы БД и таким образом их смена не приведет к утрате функциональности. Помоему это гораздо легче, чем зачем то изобретать свой доморощенный оптимизатор запросов, который ко всему прочему еще пытается рулить планом запроса посредством хинтов, где кстати о птичках оптимизатор вполне вправе просто поставить хинт индекса в игнор сообразуясь своими причинами.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / индексы / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]