|
Альтернатива Set Filter
|
|||
---|---|---|---|
#18+
Здравствуйте форумчане! Имеется форма на которой расположены Грид, Текстбоксы и несколько кнопок. Грид нужен для отображения отфильтрованных данных, Текстбоксы для ввода параметров фильтра ... Одновременно в фильтрации может участвовать несколько параметров (по нескольким полям) Дело в том, таблица привязанная к Гриду имеет 2миллиона записей и тормозит страшно. Если рассматривать SET KEY то он ограничен только одним индексом(если я всё правильно понимаю) и условия фильтрации строгие. Например, если в параметрах я укажу три первые буквы фамилии, то Set KEY не найдет его так как нужно ввести фамилию полностью. Подскажите в каком направлении двигаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 09:50 |
|
Альтернатива Set Filter
|
|||
---|---|---|---|
#18+
Арчи05Подскажите в каком направлении двигаться? в направлении курсорадаптера с парамеритризованным условием ограничения в запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 10:06 |
|
Альтернатива Set Filter
|
|||
---|---|---|---|
#18+
прошелмимов направлении курсорадаптера с парамеритризованным условием ограничения в запросе. Эта таблица в БД не входит, она свободная. И даже, если через курсорадаптер скорость будет не намного выше, если не останется такой же. Для проверки можете послать Sql запрос с параметрами в 2х миллионную таблицу, даже индексированную... Что мне понравилось, так это скорость фильтрации Set Key, но у неё есть ограничение которое я выше описал ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 10:19 |
|
Альтернатива Set Filter
|
|||
---|---|---|---|
#18+
Арчи05прошелмимов направлении курсорадаптера с парамеритризованным условием ограничения в запросе. Эта таблица в БД не входит, она свободная.И что это меняет? Каким образом и давно ли курсорадаптер стал хоть как-то связан с контейнером базы данных? И даже, если через курсорадаптер скорость будет не намного выше, если не останется такой же.На чем основано сие утверждение? Для проверки можете послать Sql запрос с параметрами в 2х миллионную таблицу, даже индексированную...Думаете, Вы единственный, кто делал такие тесты? Что мне понравилось, так это скорость фильтрации Set Key, но у неё есть ограничение которое я выше описалКороче, сначала попробуйте, а потом разберем полученные результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 10:24 |
|
Альтернатива Set Filter
|
|||
---|---|---|---|
#18+
Вам надо "в консерватории что-то подправить" В смысле, в самом подходе к отображению данных. Использование выборок (CursorAdapter в частности) предполагает, что результатом этой выборки будет относительно небольшое количество записей. Это значит, что Вы должны отображать данные с неким заранее наложенным фильтром по умолчанию. Например, выборка за последний день. В принципе, если Вы работаете с VFP9 есть "кривоватое" решение. Вместо SET KEY использовать SET FILTER и установить опцию Grid.Optimize = .T. При наличии индексов по полям, на которые будет наложен фильтр произойдет оптимизация фильтрации. В смысле, она будет выполняться достаточно быстро. Только, повторюсь, подобных подход "идеологически" не верен. Все-равно позже придется от него отказаться в пользу выборок. Да, насчет поиска по частичному совпадению ключа (по первым символам) - это решается настройкой SET EXACT. Вероятно у Вас она установлена в значении ON, что и приводит к поиску по полному соответствию. Если же оставить эту настройку в значении по умолчанию OFF, то поиск будет осуществляться только по первым символам. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 10:42 |
|
|
start [/forum/topic.php?fid=41&fpage=71&tid=1584212]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 286ms |
total: | 406ms |
0 / 0 |