|
|
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOНе очень понимаю, как она поможет... объясните по подробнее пжлста. быстрее. Данные не будут передаваться. Сервер только по таблице пробежитсья ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:00 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
MasterZiv SnowMan2 пишет: > Например выполнить еще один запрос > SELECT Count(*) FROM table Это бесполезно. Два запроса никак не связаны между собой. Не факт что потом ТОТ запрос вернет именно ЭТО количество строк. Насколько я понял, автору требуется примерное количество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:01 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
2 MasterZiv Насоветовал тоже человеку проходить по миллиону записей. У него будет такие тормоза, что начальство не поймет. Запрос SELECT count(*) FROM Table - выполняется мгновенно. Сервер не проходит по всем записям, у него другие методы. Результат - одно число, так что сетка не перегружается. Если конечно в таблицу не вводят новые записи обновременнно 50 пользователей, и между запрсами SELECT count(*) FROM Table и SELECT * FROM Table никто не успел добавить или удалить запись (времени очень мало, доли секунды), то число записей будет правильным, иначе отличаться на число добавленных или удаленных (читай на 1). Кол-во обращений к серверу не критачно, при хорошей работе их сотни или тысячи. 2 OIO Тут исходя из задачи надо подумать, а надо ли пользователю миллион записей. Если он их все будет просматривать, то это одно дело. Хотя просмотр большого кол-ва информации не приводит к ее усвоению. А если на основе этой информации надо строить каки-то интегральные составляющие (суммы, средние значения, min, max и др.) то надо пользоваться агрегатными функциями SQL и группировками. Если более сложнвми характеристиками, требующими программирования, то хранимими процедурами или функциями сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:23 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
SnowMan2Запрос SELECT count(*) FROM Table - выполняется мгновенно. Сервер не проходит по всем записям, у него другие методы.Это верно только для этого тривиального запроса, только для некоторых СУБД и только в некоторых случаях. В большинстве остальных случаев будет полный скан таблицы или индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 11:33 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Я понял, что это не тривиальная задача, буду просто иметь это ввиду и постараюсь обойтись без количества записей. 2SnowMan2 select * from table - это просто как пример привел от которого отталкиваться, имелось ввиду все же определение количества записей, которые вернул select, отнюдь не с тривиальными условиями, которые несут нагрузку на сервер, и хотелось избежать повторного прохождения по таблице. В любом случае, спасибо всем за помощь и обсуждение этого вопроса. Отрицательный ответ - тоже ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 11:58 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
SnowMan2 пишет: > Насоветовал тоже человеку проходить по миллиону записей. У него будет > такие тормоза, что начальство не поймет. Где ты взял про миллионы записей ? И где я такое советовал ? > Запрос SELECT count(*) FROM Table - выполняется мгновенно. Сервер не > проходит по всем записям, у него другие методы. Результат - одно число, > так что сетка не перегружается. Ну не всегда так происходит, и не везде. Не во всех СУБД. И в одной СУБД не во всех случаях. > Тут исходя из задачи надо подумать, а надо ли пользователю миллион > записей. Если он их все будет просматривать, то это одно дело. Хотя Ты когда нибудь просматривал миллионы записей ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 12:49 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > Я понял, что это не тривиальная задача, буду просто иметь это ввиду и Да неправильно ты понял, это ВООБЩЕ НЕВОЗМОЖНО. Задача нерешаема в общем случае. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 12:50 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
MasterZivSnowMan2 пишет: > Насоветовал тоже человеку проходить по миллиону записей. У него будет > такие тормоза, что начальство не поймет. Где ты взял про миллионы записей ? И где я такое советовал ? В 8-ом сообщении от начала топика OIO пишет про миллион записей. После чего ты пишешь: > тогда читай все записи с сервера и считай в процессе Правильно, это единстенно правильный вариант. MasterZiv> Тут исходя из задачи надо подумать, а надо ли пользователю миллион > записей. Если он их все будет просматривать, то это одно дело. Хотя Ты когда нибудь просматривал миллионы записей ? Нет не просмативал. Я противник такого рассмотрения и после слова хотя идет текст о том, что нужно использовать агригатные функции и группировки чтобы видеть не исходные данные, а какие-то результаты. miksoft >SnowMan2 >Запрос SELECT count(*) FROM Table - выполняется мгновенно. Сервер не проходит по всем >записям, у него другие методы. Это верно только для этого тривиального запроса, только для некоторых СУБД и только в некоторых случаях. В большинстве остальных случаев будет полный скан таблицы или индекса. Специально провел эксперимент. Условия: Pentium IV, 1400 MHz, 256 Mb. Сервер MSDE 2000 (бесплатный). Таблица 159406 строк, 12 полей (в оновном целочисленные). Локальный вариант. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 19:59 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
SnowMan2 miksoft >SnowMan2 >Запрос SELECT count(*) FROM Table - выполняется мгновенно. Сервер не проходит по всем >записям, у него другие методы. Это верно только для этого тривиального запроса, только для некоторых СУБД и только в некоторых случаях. В большинстве остальных случаев будет полный скан таблицы или индекса. Специально провел эксперимент. Условия: Pentium IV, 1400 MHz, 256 Mb. Сервер MSDE 2000 (бесплатный). Таблица 159406 строк, 12 полей (в оновном целочисленные). Локальный вариант. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2007, 08:16 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
SnowMan2 пишет: > Это верно только для этого тривиального запроса, только для некоторых > СУБД и только в некоторых случаях. В большинстве остальных случаев будет > полный скан таблицы или индекса. > Специально провел эксперимент. Условия: Pentium IV, 1400 MHz, 256 Mb. > Сервер MSDE 2000 (бесплатный). Таблица 159406 строк, 12 полей (в оновном > целочисленные). Локальный вариант. Ну и о чем это говорит ? Даже если это и так, как ты написал, я ЕЩЕ РАЗ повторяю, что НЕ НА ВСЕХ СУБД, и НЕ НА ВСЕХ ЗАПРОСАХ это будет так. Ладно, тему считаю закрытой, поскольку дальнейшее обсуждение бессмысленно без конкретики СУБД, запросов, таблиц и пр. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 10:13 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
MasterZiv Да ты можешь его прилепить, для этого достаточно после этого SELECT-а сделать еще один, SELECT @@rowcount. Но смысла это делать нет никакого, потому что ты получишь его только ПОСЛЕ выборки основного набора данных. А если ты уже выберишь его, то ты уже будешь знать количество строк. Точно? а по-моему будет 2 рекордсета переданы - фетчи какой хочешь... надо бы проверить.. 3) в mssql можно юзать Код: plaintext 1. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 15:04 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Палестинец... Код: plaintext 1. 2. 3. 4. наконец то хоть одын нормальный ответ...Вы это чаво мужики ? Ни разу с такой фиговой задачей не сталкивались ? я даже подумал - во прикалываются :) есть правда одно но, возможно это и имелось в ввиду...Что дескать возвращать по разным условиям (каунт и сам запрос) - в вопросе об этом вроде как ни слова... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 15:08 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Так уже как бы выше обсуждалось, что count(*) - это здорово, но как потом профетчить этот результат, ведь он вернется после всех записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 15:11 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOТак уже как бы выше обсуждалось, что count(*) - это здорово, но как потом профетчить этот результат, ведь он вернется после всех записей? уже выше показали - его можно вернуть как поле, а не как запись...минус подхода - Вы это поле будете обрабатывать в каждой запси возвращаемого рекордсета... с уважением (круглый) ЗЫ Задам самый вредный вопрос... Нафига Вам это всё ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 15:37 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Я думаю, такой подход не буду использовать из-за необходимости возиться еще с одним полем - не удобно... Просто мне было бы удобно знать количество записей до того как их выдавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 16:13 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIO...Просто мне было бы удобно знать количество записей до того как их выдавать. например 100 миллионов - пойдём экстремальным путём... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 16:19 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Я сейчас работаю на тестовой версии с 200.000 записей и то операции обновления, удаления занимают порядочно времени, что говорить про такие объемы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 16:23 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOоперации обновления, удаления занимают порядочно времениЭто уже отдельная песня. При желании можно и одну запись удалять полдня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 16:26 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста начинающему. Из таблицы делается выборка Параметров запроса в операторе WHERE много. Я делаю два запроса к базе данных. Первым запросом к базе опередляется количество записей, удовлетворяющих параметрам, чтобы показать счетчик пользователю: SELECT COUNT(*) FROM items WHERE ... Вторым запросом в базе запрашиваются эти данные, с использованием LIMIT, чтобы можно было сделать постраничный вывод: SELECT head, description, date_add FROM items WHERE ... LIMIT Вопрос: Можно ли совместить оба этих запроса? То есть, чтобы получить общее количество записей в базе, удовлетворяющих параметрам, и сразу запросить часть из них. У меня что-то не получается. То есть примерно так: SELECT COUNT(*), head, description, date_add FROM items WHERE ... LIMIT Не хотелось бы делать несколько или вложенных запросов. База MySQL. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 20:58 |
|
||
|
|

start [/forum/topic.php?fid=57&startmsg=34317969&tid=2029418]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 550ms |

| 0 / 0 |
