Страница 2 из 2

Добавлено: 12 дек 2005, 16:45
Den
В 5-м Атлантисе вроде, говорят, появились агрерирующие функции. По идее они должны облегчить данную задачу. Но сам еще его не юзал и поэтому точно ответа дать не могу...так, мысли вслух :grin:

Добавлено: 12 дек 2005, 17:34
coolibin
в любом случае recorsintable сделает то же самое - полный пробег по выборке, так что с точки зрения скорости - без разницы.
если выборка длинная, то лучше не парится с такими красивостями

как вариант если идет выборка всегда приблизительно одинаковой длины, то запоминай в деске последнее количество секунд(минут) и удлиняй прогресс по времени прошедшему от начала операции - не так точно, но зато на быстродействии не скажется.

Добавлено: 12 дек 2005, 18:06
WiRuc
coolibin писал(а):в любом случае recorsintable сделает то же самое - полный пробег по выборке, так что с точки зрения скорости - без разницы.
RecordsInTable возвращает кол-во записей в ФИЗИЧЕСКОЙ таблице, а не в логической. Никаких пробежек по выборке она не совершает.

Добавлено: 13 дек 2005, 12:26
san
WiRuc
на скл платформе recordsintable=select count(nrec) from table;
на битриве возможно готовое значение

Добавлено: 13 дек 2005, 12:32
scanner
san
енто как? можно поподробнее? А то я в танке.

Добавлено: 13 дек 2005, 12:34
WiRuc
san писал(а):WiRuc
на скл платформе recordsintable=select count(nrec) from table;
В курсе :grin:
Имелось в виду, что не делается COUNT по необходимой выборке, возвращается кол-во записей во всей таблице.

Добавлено: 13 дек 2005, 12:35
san
scanner
профайлером можно посмотреть

Добавлено: 13 дек 2005, 12:41
WiRuc
scanner писал(а):san
енто как? можно поподробнее? А то я в танке.
В первазиве, в заголовке таблицы храниться текущее значение записей в таблице (прям как DBF ей богу), поэтому можно спокойно извлечь это значение.
В MSSQL для получения кол-ва записей драйвером выполняется вот такой запрос

Код: Выделить всё

SELECT COUNT(F$NREC) FROM T$KATMC
Хотя, в MSSQL тоже можно сразу получить готовое кол-во записей. Для этого нужно сделать запрос к системной таблице SYSINDEXES, в которой помимо прочего храниться кол-во записей для всех таблиц. Правда, это кол-во не всегда точно, но для приближенной оценки вполне годиться.

Добавлено: 13 дек 2005, 12:49
scanner
WiRuc
Я так понимаю речь идет о физических таблицах, а как же быть с логическими таблицами?

Добавлено: 13 дек 2005, 12:54
WiRuc
scanner писал(а):WiRuc
Я так понимаю речь идет о физических таблицах, а как же быть с логическими таблицами?
Никак, только "ручной" подсчет.