|
|
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
В программе нужна сортировка по вычисляемым полям. База большая, время на отображение должно быть минимальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 16:36 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
ну если очень много записей, то только меняя order by, тоесть сортировать на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 16:56 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
это было бы просто, но в базе этих полей нет, они создаются в зависимосити от ситуации, кол-во и типы полей не фиксированы, к тому же работает несколько пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 17:02 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
так в зависимости от ситуации можно так: s_order = " order by a*b a, c||d desc" sql = s_sql + s_order иначе придется затягивать все к клиенту, или сделай разные views ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 17:11 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Аксиома первая : выборки на клиента должны быть небольшими. Аксиома вторая : сервер железный (при условии соблюдения первой аксиомы). Следствие 1. вследствие аксиомы 1, при желании можно легко получить любые сортировки любых выборок быстро. Аксиома третья : Сервер умеет работать с данными. Теорема 1 : Клиент не умеет работать с данными. Доказательство : Предположим, что клиент умеет работать с данными. Но сервер также умеет работать с данными согласно аксиоме 3. Тогда зачем нам нужен сервер ? Не понятно. Следовательно наше предположение было не верно и клиент не умеет работать с данными. Следствие из теор. 1 и аксиомы 3 : Сортировать надо на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 17:24 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Если на клиента данных приходит не очень много, (до 5000 записей), а выборка не меняется в течение времени, а представлять данные нужно в различном порядке, то не не вижу смысла напрягать сервер излишними запросами. Проще сделать выборку в вектор, а затем отсортировать так как надо и представлять все пользователю так, как он хочет. Общего правила - не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2005, 17:38 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
А чем qsort плох то? Если не очень большой вектор - можно и через пузырьки - быстрее будеть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 06:09 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
gardenmanЕсли на клиента данных приходит не очень много, (до 5000 записей), а выборка не меняется в течение времени, а представлять данные нужно в различном порядке, то не не вижу смысла напрягать сервер излишними запросами. Проще сделать выборку в вектор, а затем отсортировать так как надо и представлять все пользователю так, как он хочет. Общего правила - не существует. Спасибо всем кто откликнулся. Первоначально я так и думал, что манипуляциями с запросами особой эффективности не получу и прийдётся делать через вектора, алгоитмы быстрой сортировки и т.п. Если есть ещё оригинальные идеи помогите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 08:48 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
TracerА сервер то какой ? INTRBASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 12:30 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
не, interbase не знаю, на мс скл можно создавать indexed view с вычисляемыми полями, с индексом на это поле, и потом тебе нужно отображать сразу всё или можно частями ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 13:24 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Tracerне, interbase не знаю, на мс скл можно создавать indexed view с вычисляемыми полями, с индексом на это поле, и потом тебе нужно отображать сразу всё или можно частями ? можно частями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 13:44 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Пример вычисляемого поля можешь привести ? лучше со скриптом таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 14:16 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
TracerПример вычисляемого поля можешь привести ? лучше со скриптом таблицы а что это даст? Перелапачиваие таблиц на сортировку не повлияет. вот идею на счёт MS SQL надо попробовать. Благо сервера различные стоят (Oracle, MS SQL, InterBase даже Pervasive есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 14:58 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Условно говоря, если если вычисляемое поле равно, например, колонка * 100, то ордер можно сделать и по колонке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 15:33 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
TracerУсловно говоря, если если вычисляемое поле равно, например, колонка * 100, то ордер можно сделать и по колонке Идею понял, но линейной зависимости между колонкой и вычисляемой колонкой нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:09 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
В Oracle можно сортировать по любой функции от значений атрибутов. Если база действительно большая, а время критично, можно построить функциональный индекс. --------------------------------------------------------------------------- create table test( a number, b number); insert into test values (1,1); insert into test values (1,2); insert into test values (2,1); commit; Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 23:56 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2033307]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 464ms |

| 0 / 0 |
