Вниз
Скачать: CL | DM;

Locate - быстрее....   Найти похожие ветки 

 
SasaR   (2003-11-03 12:31) [0]

Ув. мастера - Что можно сделать с DataSetom, который вернул SQL запрос, чтобы метод Locate был быстрее ??? Попробовал отсортировать предварительно по "поисковому" полю - стало на четверть быстрее, а какие ещё предложения ???


 
Zacho ©   (2003-11-03 12:35) [1]

Выбирать поменьше записей. Кстати, в общем случае сортировка не поможет - искомая запись может находиться и в конце НД


 
SasaR   (2003-11-03 12:40) [2]


> Zacho ©

- мне пива не хватит с Вами расплатиться :))). В хелпе написано, Локате использует индекс, если он есть....
1. Можно ли предварительно "проиндексировать" возвращенный датасет ?
2. В БД заранее сделать это ?
Поможет ли для сабжа 1 и/или 2 ?
Если да, то как сделать 1-е ?


 
Zacho ©   (2003-11-03 12:49) [3]


> SasaR (03.11.03 12:40) [2]

> В хелпе написано,
> Локате использует индекс, если он есть....

Это справедливо для файл-серверных БД. IB - SQL-сервер, в клиентском приложении никаких индексов нет, Locate работает перебором всех записей.

> 1. Можно ли предварительно "проиндексировать" возвращенный
> датасет ?

Можно. И написать свой Locate. И тянуть с сервера кроме данных еще и индексы. В общем случае - овчинка выделки не стоит. Пересматривай организацию своего приложения. Запросы должны возвращать несколько десятков (в крайнем случае - сотен) записей. Пользователю больше и не нужно, все равно человек не может нормально работать с гридом с тысячью записей. Конечно, не считая таких ситуаций, как, например, построение отчетов, для к-рых могут понадобится и десятки тысяч записей. Но тут уже ничего не поделаешь.


 
Romkin ©   (2003-11-03 12:53) [4]

Это во-первых :) Во-вторых, в D5 в хелпе не написано что locate использует индекс. В отличие от D4 - не использует :)


 
VAleksey ©   (2003-11-03 12:53) [5]

Select * From Table
Where
MyId = :pMyId
Union all
Select * From Table
Where
MyId <> :pMyId

PS
Идея ясна?
Т.е. нужная тебе запись будет первой.


 
Vlad ©   (2003-11-03 12:59) [6]

>VAleksey © (03.11.03 12:53) [5]
Конечно вариант, но только есть шанс сбить с толку пользователя.
Напр. в случае, когда набор отражается в DBGrid.


 
VAleksey ©   (2003-11-03 14:01) [7]


> Vlad © (03.11.03 12:59)

И в чем опасность?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.981 c
7-66138
Shopot
2003-09-08 18:55
2003.11.20
Работа с матричным принтером


1-65981
rel_
2003-11-10 14:45
2003.11.20
доступ к полю record а


1-65995
Denisiy
2003-11-10 15:25
2003.11.20
Звуковой сигнал с MessageDlg


4-66163
bug008
2003-09-23 17:09
2003.11.20
Отображение графики


14-66118
Dimaz-z
2003-10-28 21:24
2003.11.20
Я не могу отправлять почту через SMTP, т.к. 25 порт заблокирован!




   Наверх