|
Пэйджинг, поиск - вопросы к знатокам
|
|||
---|---|---|---|
#18+
Здравствуйте. Мне нужно реализовать довольно сложный поиск по бызе данных - скажем найти все компании по куче параметров, отсортированной по возростанию - далее выводить результат поиска постранично (причем в зависимости от желаемой пользователем сортировки)- список скажем первых 25 компаний, а ниже эдакий "постраничный индекс результата поиска" - Компания А - Компания Д Компания Е - Компания Ж .... и т.д. (первая компания на первой странице - последняя компания на первой странице) и т.д. Сейчас все это реализовано только хранимыми процедурами MS SQL - и у меня большие сомнения, что это самый эффективный способ - поскольку данные ищутся - потом записываются во временную таблицу - потом "пэйждингуются", причем дважды - для конкретной страницы и для списка страниц. по счелчку на другую страницу - снова вызывается тоже самый поиск (что есть совсем не хорошо) и возвращаются данные для этой страницы. Счедчек на другой страницу - опять то же самое - т.е совсем совсем неэффективно. Теперь о том чего бы хотелось достичь 1. Разбиение на страницы с учетом сортировки делать средствами ADO.NET - мне почему-то кажется - что это будет эффективнее чем динамические запросы и временные таблицы на стороне SQL сервера. 2. Поиск проводить один раз, где то хранить результаты и использовать их при переходе со страницы на страницу. К примеру - еше будет нобходимо реализовать следующую возможность - кликнуть по компании - показать на странице детальную информацию и пару кнопок - "предыдущая" и "следующая". Такой подход очень часто можно встретить к примеру на job сайтах - совершенно понятно, что поиск в этом случае делается один раз, результат храниться каким-то образом на сервере и используется для навигации в произвольном направлении. Буду признателен за любые идеи и советы. И еще, просветите как работает встроенный пэйджинг в DataGrid и можно ли его использовать для моей задачи - я имею ввиду не список страниц - 1,2,3.... а список компаний (1я - последняя на странице) ? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2002, 19:51 |
|
Пэйджинг, поиск - вопросы к знатокам
|
|||
---|---|---|---|
#18+
Идея N2 более масштабируема. Храните в промежуточной таблице Id-строки где находится информация Num - порядковый номер внутри выборки/поиска. Time - Время создания выборки, для ее удаления если превысили TimeOut Для перехода по страницам, можно можно использовать Id-выборки, поле Num и конструкцию TOP XXX, или SET ROWCOUNT ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2002, 14:50 |
|
Пэйджинг, поиск - вопросы к знатокам
|
|||
---|---|---|---|
#18+
Помогите пожалуйста, меня как раз интересует как пользовать номера страниц 1,2,3,... в DataGrid. А то че-то никак не раберусь, а очень надо. У меня в форме просто ДатаГрид по 15 записей, как мне переключаться используя номера страниц? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2002, 09:56 |
|
Пэйджинг, поиск - вопросы к знатокам
|
|||
---|---|---|---|
#18+
2 Sergey Makarov Я список алфавитный такой делал через фильтрацию, на стороне .net По поводу хранения результата - его можно конечно хранить в кэше, но учтите, что поиск производится по многим параметрам, следовательно приделися хранить копии результатов по любой строке поиска - это невыгодно. Хотя можно, если ограничить 10 минутами жизни. Вот так вот. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2002, 16:14 |
|
|
start [/forum/topic.php?fid=18&fpage=1055&tid=1396620]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 146ms |
0 / 0 |