Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Вниз

Быстрота поиска   Найти похожие ветки 

 
MVVD   (2002-03-14 10:04) [0]

Как увеличить скорость поиска при использовании Locate для TQuery?


 
Alexandr   (2002-03-14 10:11) [1]

а что она у тебя низкая?


 
Johnmen   (2002-03-14 10:12) [2]

1. Реально получить все записи TQuery
2. Искать по integer полю
3. Не использовать параметры поиска (Locate(....,[]))


 
MVVD   (2002-03-14 10:15) [3]

Торможение очень сильное. Проверка наличия 7000 записей в таблице из 12000 записей занимает минут 30.


 
Johnmen   (2002-03-14 10:19) [4]

Используй запросы для поиска !


 
MVVD   (2002-03-14 10:23) [5]

Использую кэширование, параметры поиска не используются, поиск по одному полю (балансовый счет) и никакого толка


 
Johnmen   (2002-03-14 10:33) [6]

А зачем кэширование ?!


 
MVVD   (2002-03-14 10:36) [7]

Написано, что в этом случае все изменения происходят в локальном буфере и минимизируется сетевой трафик


 
roottim   (2002-03-14 10:42) [8]

>Проверка наличия 7000 записей
Locate-ом.. в большенстве сл используется для позиционирования... но не для последовательно й обработки...
в этом сл действительно надо скл использовать


 
Johnmen   (2002-03-14 10:42) [9]

Локальный буфер и кэш вообще-то несколько разные вещи !

Ответ на вопрос : Johnmen © (14.03.02 10:19)


 
MVVD   (2002-03-14 10:43) [10]

А пример такого SQL каков?


 
Johnmen   (2002-03-14 10:47) [11]

SELECT ... FROM ...
WHERE <здесь условие поиска, которое ты хотел в Locate>


 
MVVD   (2002-03-14 10:48) [12]

Вот фрагмент:

DMod.qWorkK.Active := False;
DMod.qWorkK.SQL.Clear;
DMod.qWorkK.SQL.Add("Select * From PLAN1");
DMod.qWorkK.SQL.Add(" Order by D ");
DMod.qWorkK.Active := True;
DMod.qWorkK.First;

DMod.qPL.Active := False;
DMod.qPL.SQL.Clear;
DMod.qPL.SQL.Add("Select * From BALANS");
DMod.qPL.SQL.Add(" Order by NLS ");
DMod.qPL.Active := True;
DMod.qPL.First;

Dmod.qPL.First; While(not Dmod.qPL.EOF) do begin {While}
nels := Trim(Dmod.qPL.FieldByName("NLS").AsString);
if (Dmod.qWorkK.Locate("D",nels,[]))
then begin

end;
Dmod.qPL.Next;
end;


 
Val   (2002-03-14 10:48) [13]

select what_i_whant from mytable


 
Val   (2002-03-14 10:51) [14]

сорри :)
select what_i_whant from mytable
where myconditions


 
deleon   (2002-03-14 11:08) [15]

Тестировал Locate для парадокса, так вот: параметр loCaseInsensitive ускоряет поиск раза в два (даже если идет поиск по Integer полю!)


 
Johnmen   (2002-03-14 11:13) [16]

>deleon : Парадокс этот Paradox !!!


 
Deniz   (2002-03-14 12:39) [17]

А что ты делаешь в условии:
if (Dmod.qWorkK.Locate("D",nels,[]))
then begin
{ ... }
end;

Может это оно тормозит?
Проверь пошагово, какой оператор выполняется долго.


 
Val   (2002-03-14 13:05) [18]

MVVD © (14.03.02 10:48)
при использовании SQL-серверов лучше подобные действия производить непосредственно на сервере с помошью вью и хп

P.S. извиняюсь за повторы-глюки инета:(


 
MVVD   (2002-03-14 14:57) [19]

Deniz. В условии осуществляется редактирование записи, но торможение исключительно на Locate


 
Johnmen   (2002-03-14 15:03) [20]

>MVVD © : Ты по-прежнему не желаешь использовать ...WHERE...?
Ну почему ???


 
Deniz   (2002-03-14 15:05) [21]

>MVVD © (14.03.02 14:57)
Напиши код в условии.


 
Fareader   (2002-03-14 16:22) [22]

А ты во все 7000 записей вносишь одинаковые изменения?
Все-таки используй запросы, Locate каждый новый поиск начинает с первой записи вот и подумай ск. на это надо времени.


 
MVVD   (2002-03-15 08:37) [23]

Сделал SQL и на локале убыстрилось в несколько раз, но уже в сети опять заморочки.



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

Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
1-22715
Di_wind
2002-03-26 21:07
2002.04.08
Динамическое создание.


1-22632
VictorT
2002-03-27 14:01
2002.04.08
Кол-во строк в текстовом файле


4-22889
Turalyon
2002-02-07 10:54
2002.04.08
Путь к исполняемому файлу


3-22579
polarbear
2002-03-17 20:46
2002.04.08
Как остановить сервер FireBird из командной строки под Win9x?


3-22525
XCB
2002-03-13 18:45
2002.04.08
ORA-03232





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский