Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA : почему получается table scan ? / 2 сообщений из 2, страница 1 из 1
26.08.2004, 14:06
    #32666738
Vovaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA : почему получается table scan ?
есть таблица (например большая), есть поле (id), по которому создан индекс
Код: plaintext
select min(id) from tablename 
влет (index scan)
Код: plaintext
select max(id) from tablename 
влет (index scan)
Код: plaintext
select min(id), max(id) from tablename 
кирдык - table scan, почему так ?
...
Рейтинг: 0 / 0
26.08.2004, 16:04
    #32667277
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA : почему получается table scan ?
Все очень просто.
min(id) берется из индекса с начала, max(id) из того же индекса, но с конца.
А вот одновременно и с начала, и с конца сервер индексы сканировать не может, поэтому выбирает сканирование тарблицы.

Причем это достаточно типичная фишка для многих СУБД, например, то же самое в ASE.

Но "лечится" это достаточно просто -

select (select min(id) from tablename ), (select max(id) from tablename)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA : почему получается table scan ? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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