Самый быстрый способ узнать количество записей в таблице
01.01.2007
При использовании стандартного dataset.recordcount на моем клиент-сервере (Windows NT плюс sqlserver 7 db, целевая таблица имеет 500 000 записей) я могу пойти на обед и все равно ждать (:-
Ответ:
Для тех из вас, кто не знает, почему не следует использовать стандарт dataset.recordcount при разработке приложений базы данных клиент-сервер.
Эта статья специально предназначена для приложений cs db, работающих с базой данных sqlserver 7.
Поскольку стандартный dataset.recordcount выполняет итерацию с начала таблицы и до конца таблицы, чтобы получить количество записей, то это просто преступление при разработке приложений cs db (против sqlserver7).
Просто используйте другой способ получения количества записей. Я использую sql для получения количества записей в таблице sqlserver.
Отправьте запрос в форму, предоставьте этот запрос со следующим SQL:
select distinct max(itbl.rows)
from sysindexes as itbl
inner join sysobjects as otbl on (itbl.id = otbl.id)
where (otbl.type = 'U') and (otbl.name = :parTableName)
Обратите внимание на параметр: строка типа parTableName.
Используйте этот запрос, чтобы узнать, сколько строк в таблице.
СОВЕТ:
попробуйте создать свой собственный tYourSqlServerCountQuery и таким образом переопределить свойство Recordcount.
Кстати: используйте это только для sqlserver, а для других приложений cs db просто используйте счетчик sql (в следующий раз...)

