Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, что должно выполняться быстрее и почему? Код: sql 1. или Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 21:35 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
А что сделать легче -- притащить сто мешков цемента себе домой или просто посчитать их количество? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 01:25 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичА что сделать легче -- притащить сто мешков цемента себе домой или просто посчитать их количество? А что тс нужно - посчитать сколько у него на складе мешков цемента или понять какой марки цемент и в какой фасовке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 01:40 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
PizzaPizzaГавриленко Сергей АлексеевичА что сделать легче -- притащить сто мешков цемента себе домой или просто посчитать их количество? А что тс нужно - посчитать сколько у него на складе мешков цемента или понять какой марки цемент и в какой фасовке?Тс вот он -- у него и спрашивайте. З.Ы. Но в целом, вопрос "что быстрее" в отношении двух запросов, которые возвращают разный результат, всегда умилен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 01:43 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич, Меня всегда удивляли способности некоторых участников этого форума понимать довольно бессвязные (с моей точки зрения) хотелки вопрошающих, но в данном случае, я думаю, никакой хрустальный шар не справится. ТС, а вам чего надо в результате? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 02:04 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerПодскажите, пожалуйста, что должно выполняться быстрее и почему? Код: sql 1. или Код: sql 1. ни то ни другое. Быстрее всего будет Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 09:32 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Ivan DurakquestionerПодскажите, пожалуйста, что должно выполняться быстрее и почему? Код: sql 1. или Код: sql 1. ни то ни другое. Быстрее всего будет Код: sql 1. Ещё быстрее Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 09:39 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичА что сделать легче -- притащить сто мешков цемента себе домой или просто посчитать их количество? Хочу понять какая будет разница в производительности, если посчитать count в программе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 09:45 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerГавриленко Сергей АлексеевичА что сделать легче -- притащить сто мешков цемента себе домой или просто посчитать их количество? Хочу понять какая будет разница в производительности, если посчитать count в программе. вы наверное и умножением в жизни не пользуетесь, только сложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 09:46 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestionerпропущено... Хочу понять какая будет разница в производительности, если посчитать count в программе. вы наверное и умножением в жизни не пользуетесь, только сложение Хочу понять тут разница больше в удобстве или в перформансе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:19 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerTaPaKпропущено... вы наверное и умножением в жизни не пользуетесь, только сложение Хочу понять тут разница больше в удобстве или в перформансе ресурсы вы вообще в расчёт не берёте? Или про мешки слишком сложная аналогия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:27 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestionerпропущено... Хочу понять тут разница больше в удобстве или в перформансе ресурсы вы вообще в расчёт не берёте? Или про мешки слишком сложная аналогия? Аналогия понятная, но не очень точная. Куда этим мешки тащить? Сколько они весят? Ресурсы - Вы имеете ввиду трафик между базой и приложением? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:49 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerTaPaKпропущено... ресурсы вы вообще в расчёт не берёте? Или про мешки слишком сложная аналогия? Аналогия понятная, но не очень точная. Куда этим мешки тащить? Сколько они весят? Ресурсы - Вы имеете ввиду трафик между базой и приложением? поднять с диска в память, передать это ненужное скопище, посчитать на клиенте, т.е. все возможные ресурсы какие только можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 10:51 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerГавриленко Сергей АлексеевичА что сделать легче -- притащить сто мешков цемента себе домой или просто посчитать их количество? Хочу понять какая будет разница в производительности, если посчитать count в программе. важно - не слушать пессимистов! Сделать в приложении счетчик, и по-быстрому посчитать количество возвращенных записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 11:51 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestionerпропущено... Аналогия понятная, но не очень точная. Куда этим мешки тащить? Сколько они весят? Ресурсы - Вы имеете ввиду трафик между базой и приложением? поднять с диска в память, передать это ненужное скопище, посчитать на клиенте, т.е. все возможные ресурсы какие только можно а можно это в процентах примерно выразить в ситуации, что приложение и база на одном сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 11:53 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerTaPaKпропущено... поднять с диска в память, передать это ненужное скопище, посчитать на клиенте, т.е. все возможные ресурсы какие только можно а можно это в процентах примерно выразить в ситуации, что приложение и база на одном сервере? что "это" выразить в процентах и куда потом вы это число примените? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:02 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerTaPaKпропущено... поднять с диска в память, передать это ненужное скопище, посчитать на клиенте, т.е. все возможные ресурсы какие только можно а можно это в процентах примерно выразить в ситуации, что приложение и база на одном сервере? как в процентах выразить глупость решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:04 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKкак в процентах выразить глупость решения? Легко: +INF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:12 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaK, вижу меж строк,у автора цель- новый сервер и широкий канал, так что добавьте поле varbinary(max), залейте туда кучу фоток в высоком разрешении и главное везде ставьте * Скоро либо руководство найдет финансирование, либо ТС новую высокооплачиваемую работу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:15 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestionerпропущено... а можно это в процентах примерно выразить в ситуации, что приложение и база на одном сервере? как в процентах выразить глупость решения? Ну зачем утрировать то. Я хочу понять на сколько это будет медленнее работать. Я хочу услышать ответ, что это будет рабоать в 2 раза медленее, чем count или в 1.1 раза медленнее, либо это будет работать также,но потом ещё в программе придётся считать, а это дополнительное время. Глупость/умность решения это уже другой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:39 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerTaPaKпропущено... как в процентах выразить глупость решения? Ну зачем утрировать то. Я хочу понять на сколько это будет медленнее работать. Я хочу услышать ответ, что это будет рабоать в 2 раза медленее, чем count или в 1.1 раза медленнее, либо это будет работать также,но потом ещё в программе придётся считать, а это дополнительное время. Глупость/умность решения это уже другой вопрос.До 100500 раз медленее. Задачи, которые вы решаете, и цели, которые вы преследуете, не понятны, поэтому правило простое -- все, что можно посчитать на сервере, в 99.9(9)% случаев быстрее, чем сначала притащить все данные на сторону клиента, а потом считать там. З.Ы. И да, скажите уже кто-нибудь топикстартеру про sys.partitions. И про exists() на случай, если он хочет сравнивать свой count(*) с 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:47 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, Примените классику - решите задачу с одним "мешком" с подсчетом времени переноса, потом для двух, затем обобщите для n ... Поскольку только вам известны параметры ваших "мешков", то вам и считать затраты на посчет и переноску. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 12:58 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Пусть считает в клиенте. Развлекать клоунадой "я просто хочу понять" не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 13:02 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевичquestionerпропущено... Ну зачем утрировать то. Я хочу понять на сколько это будет медленнее работать. Я хочу услышать ответ, что это будет рабоать в 2 раза медленее, чем count или в 1.1 раза медленнее, либо это будет работать также,но потом ещё в программе придётся считать, а это дополнительное время. Глупость/умность решения это уже другой вопрос.До 100500 раз медленее. Задачи, которые вы решаете, и цели, которые вы преследуете, не понятны, поэтому правило простое -- все, что можно посчитать на сервере, в 99.9(9)% случаев быстрее, чем сначала притащить все данные на сторону клиента, а потом считать там. З.Ы. И да, скажите уже кто-нибудь топикстартеру про sys.partitions. И про exists() на случай, если он хочет сравнивать свой count(*) с 0. про exists знаю. А что такое аргумент Count тоже не знаю, но это оффтоп конечно. sys.partitions тоже не знаю Я не понимаю почему Вы так реагируете на вопрос. Я ведь могу вам ответить, что алгоритм сортировки пузырьком работает за O(n^2), а quicksort за O(n*log(n)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:33 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, автор Я ведь могу вам ответить, что алгоритм сортировки пузырьком работает за O(n^2), а quicksort за O(n*log(n)) с козырей пошёл что-ли? А я вязать крючком умею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:41 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestioner, автор Я ведь могу вам ответить, что алгоритм сортировки пузырьком работает за O(n^2), а quicksort за O(n*log(n)) с козырей пошёл что-ли? А я вязать крючком умею Просто непонятно в чём суть претензий ко мне. Я задал вопрос. Мне говорят, что твой вопрос говно. Блин, чуваки, я понимаю, что count лучше, но насколько ? русским по белому же написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:45 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerTaPaKquestioner, пропущено... с козырей пошёл что-ли? А я вязать крючком умею Просто непонятно в чём суть претензий ко мне. Я задал вопрос. Мне говорят, что твой вопрос говно. Блин, чуваки, я понимаю, что count лучше, но насколько ? русским по белому же написано. на 42 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:45 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestionerпропущено... Просто непонятно в чём суть претензий ко мне. Я задал вопрос. Мне говорят, что твой вопрос говно. Блин, чуваки, я понимаю, что count лучше, но насколько ? русским по белому же написано. на 42 попугая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:49 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, для начала узнайте, что происходит при select * from MY_TABLE и при select count(*) from MY_TABLE. После этого сможете произвести какую-то количественную оценку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:51 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовquestioner, для начала узнайте, что происходит при select * from MY_TABLE и при select count(*) from MY_TABLE. После этого сможете произвести какую-то количественную оценку. Вот именно я это и хочу узнать тут) explain-ом пользоваться не умею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:53 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, Запрос, как минимум, что-то возвращает спросившему. Разве не очевидно? Какой объем данных вернется клиентскому приложению и за какое время в том или ином случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:56 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner но насколько ? время_необходимое_на_чтение_данных_для_select_* + время_необходимое_для_передачи_данных_клиенту + время_необходимое_для_подсчета_количества_строк_на_клиенте - время_необходимое_на_чтение_данных_для_select_count(*) - время_необходимое_для_подсчета_количества_строк_на_сервере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 15:58 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
invmquestioner но насколько ? время_необходимое_на_чтение_данных_для_select_* + время_необходимое_для_передачи_данных_клиенту + время_необходимое_для_подсчета_количества_строк_на_клиенте - время_необходимое_на_чтение_данных_для_select_count(*) - время_необходимое_для_подсчета_количества_строк_на_сервере авторвремя_необходимое_на_чтение_данных_для_select_* и авторвремя_необходимое_на_чтение_данных_для_select_count(*) Это одно и то же время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:47 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerinvmпропущено... время_необходимое_на_чтение_данных_для_select_* + время_необходимое_для_передачи_данных_клиенту + время_необходимое_для_подсчета_количества_строк_на_клиенте - время_необходимое_на_чтение_данных_для_select_count(*) - время_необходимое_для_подсчета_количества_строк_на_сервере авторвремя_необходимое_на_чтение_данных_для_select_* и авторвремя_необходимое_на_чтение_данных_для_select_count(*) Это одно и то же время? Далеко не всегда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:49 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexquestionerпропущено... пропущено... и пропущено... Это одно и то же время? Далеко не всегда Вот это уже интересно. Можете объяснить подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:54 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionermsLexпропущено... Далеко не всегда Вот это уже интересно. Можете объяснить подробнее? То, что сразу приходит на ум дополнительные (не кластерные) индексы, LOB-ы, Row Overflow, Columnstore ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:57 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexquestionerпропущено... Вот это уже интересно. Можете объяснить подробнее? То, что сразу приходит на ум дополнительные (не кластерные) индексы, LOB-ы, Row Overflow, Columnstore Из всего вышеперечисленного имею представление только об индексах. Они как-то помогают сделать select count(*) быстрее/медленнее чем select * ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 16:59 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionermsLexпропущено... То, что сразу приходит на ум дополнительные (не кластерные) индексы, LOB-ы, Row Overflow, Columnstore Из всего вышеперечисленного имею представление только об индексах. Они как-то помогают сделать select count(*) быстрее/медленнее чем select * ? Да, при select count(*) не нужно читать все данные таблицы, а достаточно тех, что хранятся в самом узком индексе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:02 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, Время для sql сервера не ресурс. авторавтор42 попугая? дети только мултики нынче смотрят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:06 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexquestionerпропущено... Из всего вышеперечисленного имею представление только об индексах. Они как-то помогают сделать select count(*) быстрее/медленнее чем select * ? Да, при select count(*) не нужно читать все данные таблицы, а достаточно тех, что хранятся в самом узком индексе. А что такое ширина индекса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:07 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerА что такое ширина индекса? Пусть это будет ваше ДЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:08 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexquestionerЭто одно и то же время? Далеко не всегдаЛучше сказать "безусловно никогда". questionerВот это уже интересно. Можете объяснить подробнее?Для подсчёта в самом худшем случае (без узких индексов) на сервере нужно будет считать все страницы, подсчитывая количество записей. А на клиенте нужно будет передать эти страницы на клиента через клиентские библиотеки доступа, потом ена клиенте их посчитать. Получаем замедление в 4 раза. При наличии уникального индекса получаем замедление в 4 * (отношение размера индекса к размеру таблицы) Если подсчёт на сиквеле делается неоптимально, то коэффициент замедлленя будет меньше. Насколько - наверное, можно пострашивать на блогах разработчиков, но ввиду полной неприменимости результата вряд ли кто то спрашивал. questioner, странно, что такое приходится объяснять, может быть, вы не программист/не технарь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:11 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexquestionerА что такое ширина индекса? Пусть это будет ваше ДЗ. Ок, тогда с вас правильное название этого термина) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:14 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
alexeyvgmsLexпропущено... Далеко не всегдаЛучше сказать "безусловно никогда". questionerВот это уже интересно. Можете объяснить подробнее?Для подсчёта в самом худшем случае (без узких индексов) на сервере нужно будет считать все страницы, подсчитывая количество записей. А на клиенте нужно будет передать эти страницы на клиента через клиентские библиотеки доступа, потом ена клиенте их посчитать. Вопрос был о время_необходимое_на_ чтение_данных _для_select_* VS время_необходимое_на_ чтение_данных _для_select_count(*) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:15 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionermsLexпропущено... То, что сразу приходит на ум дополнительные (не кластерные) индексы, LOB-ы, Row Overflow, Columnstore Из всего вышеперечисленного имею представление только об индексах. Они как-то помогают сделать select count(*) быстрее/медленнее чем select * ? Если грубо: Представьте книгу. count(*) - посмотреть в оглавлении количество страниц и написать его на листочке. select * - переписать всю книгу на листочки и потом посчитать сколько листочков получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:16 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerОк, тогда с вас правильное название этого термина) За пивком не сгонять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:17 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
4d_monsterЕсли грубо: Представьте книгу. count(*) - посмотреть в оглавлении количество страниц и написать его на листочке. select * - переписать всю книгу на листочки и потом посчитать сколько листочков получилось. Только считать нужно не количество страниц а количество строк на страницах, и тут оглавление не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:18 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLex, Да, так ещё точнее аналогия получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:20 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
alexeyvgmsLexпропущено... Далеко не всегдаЛучше сказать "безусловно никогда". questionerВот это уже интересно. Можете объяснить подробнее?Для подсчёта в самом худшем случае (без узких индексов) на сервере нужно будет считать все страницы, подсчитывая количество записей. А на клиенте нужно будет передать эти страницы на клиента через клиентские библиотеки доступа, потом ена клиенте их посчитать. Получаем замедление в 4 раза. При наличии уникального индекса получаем замедление в 4 * (отношение размера индекса к размеру таблицы) Если подсчёт на сиквеле делается неоптимально, то коэффициент замедлленя будет меньше. Насколько - наверное, можно пострашивать на блогах разработчиков, но ввиду полной неприменимости результата вряд ли кто то спрашивал. questioner, странно, что такое приходится объяснять, может быть, вы не программист/не технарь? Не силён в базах данных... Меня в данном вопросе интересует чисто работа сервера базы данных.Не интересует работа работа приложения и трафик между ДБ и приложением. Интересует чисто время на подготовку ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:49 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexquestionerОк, тогда с вас правильное название этого термина) За пивком не сгонять? Спасибо, не любитель. Как на буржуйском это звучит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 17:51 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, т.к. вопрос про сферических коней в вакууме позволю ответ: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:10 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
архивариусquestioner, т.к. вопрос про сферических коней в вакууме позволю ответ: А можете как-то прокомментировать почему ColumnStore index scan в случае count(*) - 18%, а в случае select * - 100% Это как-то связано с тем, что для страниц полностью забитых записями можно взять размер и получим count на странице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:28 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, одна операция всегда занимает 100% общего времени. Интересует чисто время на подготовку ответа. А в чем интерес-то? Практической пользы в таком любопытстве ноль. Описанный сценарий физически не существует, а только в воображении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:41 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовquestioner, одна операция всегда занимает 100% общего времени. Интересует чисто время на подготовку ответа. А в чем интерес-то? Практической пользы в таком любопытстве ноль. Описанный сценарий физически не существует, а только в воображении. ааа, понятно. А почему вроде как одна и та же операция в плане в первом случае проходит в 10+ раз быстрее? Практической пользы нет, зато есть теоретическая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:51 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
даже не просто 10+, а 64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:52 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerдаже не просто 10+, а 64 медсестра-теоретитк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:55 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
TaPaKquestionerдаже не просто 10+, а 64 медсестра-теоретитк? язык слишком длинный что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 18:58 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questioner, наверху запрос в несколько потоков и нет выгрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 20:28 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 20:29 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
msLexalexeyvgпропущено... Лучше сказать "безусловно никогда". пропущено... Для подсчёта в самом худшем случае (без узких индексов) на сервере нужно будет считать все страницы, подсчитывая количество записей. А на клиенте нужно будет передать эти страницы на клиента через клиентские библиотеки доступа, потом ена клиенте их посчитать. Вопрос был о время_необходимое_на_ чтение_данных _для_select_* VS время_необходимое_на_ чтение_данных _для_select_count(*)А, понял, я держал в уме исходный вопрос, "Подскажите, пожалуйста, что должно выполняться быстрее и почему?", перепутал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 20:55 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
Maxx Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Получается, что в случае select count(*) - на 3 логических чтения меньше(17 против 14) - на 1 физических чтений меньше(1 против 0) - на 15 чтений read-ahead меньше (15 против 0) Я так понимаю логическое чтение это чтение из кеша. Почему для count их меньше? Физическое чтение видимо нужно для формирование ответа? read-ahead как я понял это что-то типа упреждающего чтения вперёд. Не понятно почему оно должно отличаться при этих запросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2018, 23:31 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerПолучается, что в случае select count(*) - на 3 логических чтения меньше(17 против 14) - на 1 физических чтений меньше(1 против 0) - на 15 чтений read-ahead меньше (15 против 0)read-ahead и physical будут случайно меняться, на них не смотрите. А логическое чтение для * будет стабильно больше. Не знаю почему, может, серверу нужно прочитать метаданные колонок? Понятно, что разница в чтении небольшая, если только не делается распараллеливание, или не читаются LOB поля. Основное различие по исходному вопросу - необходимость передачи данных на клиента, через несколько программных слоёв, вот это замедлит запрос в много раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 01:06 |
|
||
|
select * vs select count(*)
|
|||
|---|---|---|---|
|
#18+
questionerархивариусquestioner, т.к. вопрос про сферических коней в вакууме позволю ответ: А можете как-то прокомментировать почему ColumnStore index scan в случае count(*) - 18%, а в случае select * - 100% 1. иконки разные 2. 18% от 8% и 100% от 92% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 09:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1688821]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 433ms |

| 0 / 0 |
