![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Индексы, поиск [D6, IB6.x]
suharew © (2005-09-20 12:08:00)Добрый день.
Есть таблица около 20000 записей (номера телефонов). С помошью IB Expert создал первичный ключ и индекс. На форме отображаю все это через IBDateSet. Когда делаю IbDataSet.Locate(....) то он ищет всеравно долго, хоть и есть индексы. Если запись в начале тогда быстро находит, если в конце около 3-х секунд. Это очень много помоему. Как надо тогда искать запись.
Виталий Панасенко (2005-09-20 16:39:00) [1]
> Desdechado © (20.09.05 16:03) [7]
> Индексы используются сервером при обработке SQL-запросов,
> а не клиентом при LOCATE
Самое лаконичное и красивое обьяснение...
Desdechado (2005-09-20 16:03:00) [2]Индексы используются сервером при обработке SQL-запросов, а не клиентом при LOCATE
Виталий Панасенко (2005-09-20 12:29:00) [3]Прост сервера работают по другому принципу, не использует навигационный подход(нет там такого понятия, как текущая запись, предыдущая, следующая.. это уже компоненты доступа так показывают).. используется набор-ориентированный (set oriented).. потому и такая разница
suharew (2005-09-20 12:27:00) [4]to Sergey13 и Виталий Панасенко
блин а за работало ведь. Спасибо.
Sergey13 (2005-09-20 12:21:00) [5]2[2] suharew (20.09.05 12:17)
>все записи видны в DbGrig.
все 20000? Подсками модель монитора! 8-)
>тогда как быстро найти запись
Select * from table_name
where index_field=:index_field
Виталий Панасенко (2005-09-20 12:19:00) [6]select * from table where key_field=key_value так сделай
suharew (2005-09-20 12:17:00) [7]Так ДатаСет открыт на форме, все записи видны в DbGrig.
Если не верный подход.
тогда как быстро найти запись в проиндексированной таблице. подскажи.
Sergey13 (2005-09-20 12:14:00) [8]Не ищет у тебя долго, а закачивает данные. Неверный подход.