Проблемы с производительностью при использовании TUniTable - PullRequest
0 голосов
/ 31 января 2012

Я в процессе преобразования приложения базы данных Paradox , написанного на Delphi , для использования SQL Server 2008 R2. Мы используем компоненты UNIDAC Devart для доступа к базе данных / таблицам. Однако я нахожу производительность довольно медленной. Например, в версии Paradox более или менее мгновенно открывается таблица (с использованием TTable) с 100 000 записей, но SQL Server (с использованием TUniTable) занимает примерно 2 секунды. Теперь я знаю, что это не так уж и много, но есть 10 наборов данных TUniTable, которые открываются при создании формы, и все они содержат примерно одинаковое количество записей, поэтому в настоящее время их открытие занимает чуть менее 20 секунд. У кого-нибудь есть советы по производительности?

Я использую Delphi 2007

1 Ответ

2 голосов
/ 31 января 2012

ИМХО, UniDAC TUniTable - это просто оболочка TUniQuery.TUniTable открытие может привести к извлечению всех записей на SQL Server.Не знаете как, но попробуйте изменить тип и / или расположение курсора SQL Server.

Если еще не поздно, подумайте об использовании AnyDAC и TADTable .Он использует технологию «Окно Live Data», которая позволяет открывать и просматривать большие таблицы без значительных задержек, например, вызовы Open и Last будут всегда быстрыми.Мы перенесли несколько BDE-приложений на AnyDAC и Firebird, TADTable отлично работает.

...