Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть ли разница, что указывать вместо звездочки в count(*) ?


Страницы:   1 2

Piter ©   (2009-10-30 15:51:00) 

А есть ли разница в каких-то случаях, что писать внутри count?

Может ли быть отличие count(*)от count(PK_name), где PK_name - наименование поля primary key?
Отличие в результатах (?!), в скорости исполнения? Что идеологически правильнее, почему?


Inovet   (2009-10-30 20:33:00) [21]

Можно посиотреть в запросе

SELECT FLD1, FLD2, COUNT(FLD1), COUNT(FLD2), COUNT(*)
FROM TBL
GROUP BY FLD1, FLD2
HAVING COUNT(FLD1) <> COUNT(FLD2) OR COUNT(FLD2) <> COUNT(*)


Медвежонок Пятачок   (2009-10-30 19:42:00) [22]

расшифруй свою мысль?

Она не зашифрована.
каунт со звездой считает строки.
каунт с полем считает значения.
нулл к значениям не относится.


McSimm   (2009-10-30 18:33:00) [23]


> с количеством значений

точнее с количеством not null значений.


McSimm   (2009-10-30 18:31:00) [24]


> Piter ©   (30.10.09 18:20) [10]

В данном случае речь не о разнице в результатах, а о разных операциях.
В случае с PK количество записей совпадет с количеством значений. Результат одинаковый. Но операции будут выполнены разные.


Piter   (2009-10-30 18:20:00) [25]

Медвежонок Пятачок ©   (30.10.09 16:23) [3]
каунт со звездой считает записи
каунт с полем считает значения


расшифруй свою мысль? Или приведи пример запроса, где count(*) и count(<имя PK>) будут давать разные значения?


Anatoly Podgoretsky   (2009-10-30 16:52:00) [26]

> Сергей М.  (30.10.2009 16:28:06)  [6]

Читай про план, я писал


Sergey13   (2009-10-30 16:40:00) [27]

> [7] Anatoly Podgoretsky ©   (30.10.09 16:30)

Да, действительно, проверил сейчас - считает только NOT NULL значения. Как то никогда об этом не задумывался.

> [2] Sergey13 ©   (30.10.09 16:21)
был не прав


Anatoly Podgoretsky   (2009-10-30 16:30:00) [28]

> Sergey13  (30.10.2009 16:21:02)  [2]

Не пофиг, результаты будут разные, только для ПК это бессмысленно, кроме возможной разницы в скорости.


Сергей М.   (2009-10-30 16:28:00) [29]


> Anatoly Podgoretsky ©   (30.10.09 16:23) [4]


> По скорости .. count(*) быстрее


В версионниках это может не соответствовать действительности.


Медвежонок Пятачок   (2009-10-30 16:23:00) [30]

и нулл это не значение


Anatoly Podgoretsky   (2009-10-30 16:23:00) [31]

> Piter  (30.10.2009 15:51:00)  [0]

Все зависит от результа, это ведь две разные функции, а не заменяющая одна другую.
По скорости конечно count(*) быстрее, но при чем тут PK_name функции count это как то до лампочки.
И конечно надо смотреть план выполнения.


Медвежонок Пятачок   (2009-10-30 16:23:00) [32]

каунт со звездой считает записи
каунт с полем считает значения


Sergey13   (2009-10-30 16:21:00) [33]

ИМХО разница может быть в производительности для разных серверов. count(PK_name) может взять информацию и не из таблицы, а из индекса, что возможно шустрее. Хотя утверждать этого не возьмусь.

> [1] McSimm ©   (30.10.09 16:00)

Count-у вроде как пофиг null или не null.


McSimm   (2009-10-30 16:00:00) [34]

Раз primary key не может быть null, то разницы в результате не должно быть.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо