Вниз
Скачать: 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.015 c
1-65982
Senator
2003-11-10 17:56
2003.11.20
Работа с PageControl


1-65986
Buffoon
2003-11-10 17:12
2003.11.20
Компонент


3-65797
AlexenderG
2003-10-30 12:53
2003.11.20
У кого есть DsgnIntf.pas и DsgnIntf.dcu? Пожалуйста очень надо!!!


6-66041
Diatel
2003-09-19 14:42
2003.11.20
Создание IP пакета в


4-66175
serjant
2003-09-24 12:19
2003.11.20
как из программы узнать, какой у неё PID?




   Наверх