powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA : почему получается table scan ?
2 сообщений из 2, страница 1 из 1
ASA : почему получается table scan ?
    #32666738
Фотография Vovaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть таблица (например большая), есть поле (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
ASA : почему получается table scan ?
    #32667277
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все очень просто.
min(id) берется из индекса с начала, max(id) из того же индекса, но с конца.
А вот одновременно и с начала, и с конца сервер индексы сканировать не может, поэтому выбирает сканирование тарблицы.

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

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

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


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