|
|
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите пожалуйста разрешить мне одну проблему. Я искал нужную мне информацию в Интернете, но ничего не нашел. Вернее нашел этот форум. Вот сейчас почитал его и надеюсь что вы мне сможете помочь. Я делаю под заказ базу данных на основе Access, которая будет работать в сети и сейчас не могу определить как лучше сделать, чтобы всё нормально работало не только у меня на машине, но и у клиента через сеть. Проблема вот в чём. К форме подсоединен запрос, записи в котором должны сортироваться по разному в зависимости от некоторых факторов, которые меняются. Делать запросы с разными параметрами сортировки я не хочу, поэтому делаю так: Private Sub Form_Load() Me.OrderBy = Параметр сортировки Me.OrderByOn = True End Sub Сейчас это работает так же быстро, как будто если я применяю сортировку прямо в запросе, но мне сказали что в сети это значительно замедлит получение данных во время открытия формы. Я никак не могу понят почему это может случиться, ведь данные в форме будут сортироваться уже на компьютере! Сейчас замеры показывают что запрос с сортировкой и запрос без сортировки но с сортировкой в форме выполняются приблизительно за одинаковое время. Объясните пожалуйста почему это может замедлять открытие формы и что происходит если сортировка определена не в запросе а в форме в момент ее открытия? К сожалению я смогу прочитать ответы только следующей ночью, поэтому заранее благодарю за ваше внимание! Надеюсь на вашу помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2003, 23:38 |
|
||
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
ну вобще это зависит от количества данных, естесственно. 100 строк можете и в форме на клиенте сортировать. И даже 1000, я думаю. дело в том, что форма не загружает полностью весь результат запроса, а только ту часть, которую собирается показать. если же вы собираетесь соритровать в форме, приходится закачивать все строки, которые возвращает запрос, до самой распоследней строчечки. иначе как отсортировать - вдруг в запросе строка, которая должна быть первой, окажется самой последней?? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2003, 23:49 |
|
||
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
Спасибо вам, Fedd, за такую быструю реакцию! Даже не ожидал! Поэтому могу, так сказать, "ответить" сейчас :-). Я забыл сказать, что программа будет работать на основе файл-сервера, поэтому то я и не до конца понимаю разницу между сортировкой в запросе и сортировкой в форме. Ведь при сортировке в запросе все записи всё равно будут закачаны на "клиента" и только там рассортированны. Так чем же тогда отличается такая сортировка от сортировки в форме? Извиняюсь, что не предоставил с самого начала более полную информацию. Еще раз спасибо за оперативный ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 00:10 |
|
||
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
пожалуста! тогда я выкручусь так: чтобы выполнить запрос с сортировкой (в котором правильно используются индексы), иногда совсем необязательно читать таблицы, которые в нем используются, полностью. пользуясь индексами, программа, которая выполняет запрос, с помощью индекса может выдавать по строчке не все сразу, а только то, что нужно, чтобы показать в начале формы. то есть и на одной машине это также невыгодно - сортировать в форме. хотя может, гуру меня и поправят в плане того, как это действительно происходит в Jet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 00:29 |
|
||
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
перечитал свой опус. индексы - прям слово-паразит у меня ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2003, 00:30 |
|
||
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! fedd, спасибо еще раз! На счет индексов я действительно не подумал. Подумал лишь после ваших слов и всё равно не понял почему должно стать медленней, ведь индексы всё равно уже на "клиенте" после запроса без сортировки, поэтому сортировка из формы должна работтать уже с индексами, которые на "клиенте". Люди! Ну подскажите мне по вопросу. Ведь кто-то же здесь работает с файл-сервернымии решениями? Пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 20:45 |
|
||
|
Почему сортировка в форме медленней, чем в запросе?
|
|||
|---|---|---|---|
|
#18+
у файл-сервера все данные тащатся на клиента и там обрабатываются. (в общем случае вся база) вот основа. при базе > 10M (это после сжатьи востановить) уже надо говиться к переходу на клиент-сервер у клиент-сервера серверу дают задачу и он возвращает только требуемые данные. выйгрыш - грамотном распределении обработки между клиентом и сервером. если частая сортировка 50-100 строк тоэто лучше один раз получить на клиента и там обрабатывать, чем их (50-100 строк ) таскать с сервера.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 22:50 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=45&tid=1679972]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 304ms |

| 0 / 0 |
