Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / быстрая проверка на существование / 8 сообщений из 8, страница 1 из 1
25.03.2003, 10:02
    #32126261
nevermind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
требуется проверить, есть ли хотя бы одна запись в таблице, удовл. некоторому условию. Какой способ будет самым-самым по времени выполнения: count,exists, может еще какие варианты? Спасибо.
...
Рейтинг: 0 / 0
25.03.2003, 10:05
    #32126264
Alto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
select count (*)
from <таблица>
where rownum <= 1
...
Рейтинг: 0 / 0
25.03.2003, 10:11
    #32126273
nevermind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
спасибо. И тогда сразу еще один вопрос. Отличаются ли чем либо по времени выполнения запросы count(*) и count(id), если, например, id - primary key?
...
Рейтинг: 0 / 0
25.03.2003, 10:18
    #32126285
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
count(*) - возвращает кол-во всех записей и даже NULL
count(id) - не NULL

Некоторые советуют вместо count(*) использовать - count(rowid) - говорят начиная с 8i это работает и работаетбыстрее.
...
Рейтинг: 0 / 0
25.03.2003, 10:22
    #32126290
Delerium
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
Jeslji ID - primary key, togda count(id) = count(*) = count(1) ...
...
Рейтинг: 0 / 0
25.03.2003, 11:14
    #32126346
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
Зависит от оптимизатора. Иногда count(*) сваливается в full table scan, а count(id) будет использовать fast full scan. Но обычно оптимизатор дает одинаковые планы.
...
Рейтинг: 0 / 0
25.03.2003, 11:39
    #32126374
Alto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
Разница может быть видна только результирующем значении (null/not null)
Но по планам видно, что перед агрегированием происходят сортировки
поможет хит
select /*+ index(<pk_индекс>) */ nvl(id, 0)
from <таблица>
where rownum <= 1
...
Рейтинг: 0 / 0
25.03.2003, 11:46
    #32126381
va_kochnev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
быстрая проверка на существование
select count(*) from dual
where exists (select 1 from <таблица> where <некоторое условие>)

Если 1 - существует, 0 -нет
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / быстрая проверка на существование / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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