Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / select count vs Exists / 7 сообщений из 7, страница 1 из 1
29.01.2015, 12:30
    #38866512
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
FB 2.5.1 x32
где-то читал, что
Код: sql
1.
2.
3.
SELECT 1
FROM RDB$DATABASE
WHERE EXISTS(SELECT COUNT(*) FROM CLIENT)   


должно быть более эффективным чем
Код: sql
1.
SELECT COUNT(*) FROM CLIENT


т.к. в первом случае не будет выборки данных, а во 2-ом будет.

у меня получилась такая статистика:
1 - 52 чтения из кэша
2 - 44 чтения из кэша

Собственно, вопрос:
У меня что-то не так с экспериментом, или EXISTS на самом деле не уменьшает чтение из базы?
...
Рейтинг: 0 / 0
29.01.2015, 12:37
    #38866524
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
Cobalt747У меня что-то не так с экспериментом
Да, у тебя зачем-то COUNT() в подзапросе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.01.2015, 12:38
    #38866525
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
Hello, Cobalt747!
You wrote on 29 января 2015 г. 12:37:06:

Cobalt747> SELECT 1
> FROM RDB$DATABASE
> WHERE EXISTS(SELECT COUNT(*) FROM CLIENT) цирк
на дроте

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.01.2015, 12:40
    #38866534
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
Cobalt747,

не верь тому кто это написал
...
Рейтинг: 0 / 0
29.01.2015, 12:41
    #38866538
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
Cobalt747,

тем более что запросы не эквивалентны. Первый всегда 1 вернёт
...
Рейтинг: 0 / 0
29.01.2015, 12:47
    #38866551
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
Cobalt747,

вот если бы ты вот так эксперимент проводил

Код: sql
1.
2.
SELECT IIF(EXISTS(SELECT * FROM CLIENT), 1, 0) AS n
FROM RDB$DATABASE  



то может быть, то фетчей будет меньше, если в CLIENTS записей больше 2ух, иначе COUNT выиграет
...
Рейтинг: 0 / 0
29.01.2015, 18:00
    #38867048
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select count vs Exists
Вот же ж я невнимательный!
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / select count vs Exists / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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