powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / indexes for select
10 сообщений из 10, страница 1 из 1
indexes for select
    #33775988
oleggar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в Сайбейс указать принудительное использование 2 индексов для одного select ?
...
Рейтинг: 0 / 0
indexes for select
    #33776098
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак. Лучше создай индекс по двум полям. А потом используй from ... with ...

---
http://www.rusug.ru] Портал рускоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
indexes for select
    #33776103
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleggarКак в Сайбейс ...

Читай самый верхний топик этого форума до просветления
oleggar
... указать принудительное использование 2 индексов для одного select ?
Зачем?
White OwlНикак. Лучше создай индекс по двум полям.

Может автор все-таки имел в виду то что сказал? Т.е. для одного select, а не для одной таблицы в селекте?
---


Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
indexes for select
    #33776119
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ГoлдунМожет автор все-таки имел в виду то что сказал? Т.е. для одного select, а не для одной таблицы в селекте?Индекс привязан к таблице. Для каждой таблицы в from может быть свой собственный with(index()). Индекс на селект вообще смысла не имеет.
...
Рейтинг: 0 / 0
indexes for select
    #33776151
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlИндекс привязан к таблице. Для каждой таблицы в from может быть свой собственный with(index()).
Давай угадывать, что имелось в виду, пока автор выясняет хотя бы, что за "сайбейс" он использует
Может человек хотел и два индекса на одну таблицу. Иногда бывает актуально, например если в условии содержится OR c ограничениями по разным полям. Тогда может помочь разбиение запроса на 2 селекта, объединенных по UNION (ALL)
...
Рейтинг: 0 / 0
indexes for select
    #33776232
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ГoлдунДавай угадывать, что имелось в виду, пока автор выясняет хотя бы, что за "сайбейс" он использует Да ну, вот еще телепатией заниматься. У меня кофе кончился, а без кофе я телепаться не могу :)

Александр ГoлдунМожет человек хотел и два индекса на одну таблицу. Иногда бывает актуально, например если в условии содержится OR c ограничениями по разным полям.Тогда надо бы форсировать индексы для каждого сравнения в where. Что-то вроде where (table1.f1='aaa' with index table1.idx_f1) or (table1.f2='bbb' with index table1.idx_f2) Ы? А иначе все равно прийдется доверять оптимизатору чтобы он правильно угадал для какого сравнения в сложном условии какой из индексов применять. Впрочем все равно синтаксис уж очень перегруженый получается. Мне больше нынешний принцип нравится - для каждой таблицы в from по одному индексу и никаких гвоздей.

Александр ГoлдунТогда может помочь разбиение запроса на 2 селекта, объединенных по UNION (ALL)О, кстати... давно хотел проверить практически, да руки не доходили:
Код: plaintext
1.
2.
3.
4.
select * from table1 where (f1>='2006-01-01') or (f2>='2006-01-01');
против
select * from table1 where f1>='2006-01-01'
   union distinct
select * from table1 where f2>='2006-01-01';
при наличии отдельных индексов на f1 и f2.
Первый запрос на ASA9 сделал построчный скан, а второй использовал индексы и выдал результат на два порядка быстрее.
А использование with(index()) в сочетании с or положительного результата не дало.
...
Рейтинг: 0 / 0
indexes for select
    #33776269
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Первый запрос на ASA9 сделал построчный скан, а второй использовал индексы
>и выдал результат на два порядка быстрее.
>А использование with(index()) в сочетании с or положительного результата не
>дало.
Что и следовало ожидать.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
indexes for select
    #33776345
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
Первый запрос на ASA9 сделал построчный скан, а второй использовал индексы и выдал результат на два порядка быстрее.
А использование with(index()) в сочетании с or положительного результата не дало.
Не знаю кстати, что они до сих пор не сделают, как в DB2, где оптимизатор видя OR автопилотом разводит запрос на UNION ALL. Фичу что ли им заявить в 10-ку ;)
...
Рейтинг: 0 / 0
indexes for select
    #33776648
oleggar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сервер у меня Sybase ASE ,а индексы у меня в запросе с одной таблицей
...
Рейтинг: 0 / 0
indexes for select
    #33776659
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS wrote:

> Не знаю кстати, что они до сих пор не сделают, как в DB2, где
> оптимизатор видя OR автопилотом разводит запрос на UNION ALL. Фичу что
> ли им заявить в 10-ку ;)

+1. У меня об этом недавно спрашивали коллеги. Ответил, что по уставу не
положено .
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / indexes for select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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