|
|
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Как в perl узнать сколько записей вернул запрос SELECT ($sth->execute;). Используется oracle и DBI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 17:14 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 09:49 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Понятно, значит после выполнение sth->execute нигде не содержится сколько всего записей. Узнавать это кол-во или дополнительным запросом или написать функцию для подсчёта perl-ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 10:45 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
совершенно верно, в Oracle так и есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 10:47 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Fen1Понятно, значит после выполнение sth->execute нигде не содержится сколько всего записей. Узнавать это кол-во или дополнительным запросом или написать функцию для подсчёта perl-ом. странно, вообще если ты делаеш селект, то логично былоб предположить что возвращаемые данные ты таки куда то начитываеш, а размер того куда ты это зачитал в перле узнать не проблемма.... Тоесть узнать размер массива в перле не составит труда ( это если fetchall_arrayref делать ), другое дело что данных возвращаемых запросом может быть несколько больше чем памяти, в этом случае додсчет в цикле ( fetchrow_arrayref или чегото подобного возвращающего по односй строке ) строк должен спасти отца русской демократии, в обоих случаях чтобы узнать количество отданных данных эти данные надо пропустить через перловый скрипт. Делать отдельный запрос к БД для подсчета строк несколько не корректно по причине того что во первых это некоторый оверхеад, а во вторых ни кто н гарантирует что результат будет таким же ( если конечно не лочить таблици и пр... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:00 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Пройдитесь поиском по форуме Oracle, это тема не раз обсуждалась. автор во первых это некоторый оверхеад по какой причине?? count(*) возращает результат мгновенно, хоть по 1 милиону записей запрос, т.к. count(*) не возращает никакие данные из таблицы. автор а во вторых ни кто н гарантирует что результат будет таким же об этом автор не спрашивал ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:08 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Николай aka MotodorПройдитесь поиском по форуме Oracle, это тема не раз обсуждалась. автор во первых это некоторый оверхеад по какой причине?? count(*) возращает результат мгновенно, хоть по 1 милиону записей запрос, т.к. count(*) не возращает никакие данные из таблицы. данных может и не возвращает но данные таки читает, а скорость скорее всего обусловленна тем что кеши работают хорошо, тоесть по сути select * from table и потом следом select count(*) from table просто пробежится по закешированным данным отсюда и `мгновенность` ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:16 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
авторselect * from table и потом следом select count(*) from table просто пробежится по закешированным данным отсюда и `мгновенность попробуйте выполнить count(*) до и после выполнения селекта, результат будет один... принцип работы count(*) другой ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:06 |
|
||
|
(PERL&Oracle) как узнать сколько записей вернул запрос SELECT
|
|||
|---|---|---|---|
|
#18+
Думаю, и в Оракле count(*) считается по первичному ключу таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 19:46 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=23&tid=1477595]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
293ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 627ms |

| 0 / 0 |
