Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Самый быстрый способ узнать количество записей в таблице

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 (в следующий раз...)

Previous page:
Прочитать файл
Top:
DRKB
Next page:
Как вернуть результат в виде XML?