Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
Проблем такой: Есть аксессовая БД с присоединенными таблицами, Если сделать формочку с источником данных = этой присоединенной таблице то обновление данных в форме происходит достаточно быстро. Если же сделать просто формочку берующую данные рекордсетом(с фильтром и сортировкой) из этой таблицы то запрос сильно тормозит: есть подозрение что при каждом явном запросе аксесс сосёт всю присоединенную таблицу. Собственно вопрос: как сделать чтобы во втором варианте данные обновлялись так же быстро как и в первом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 15:30 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
1) Чьи присоединены таблицы? 2) Через какой протокол (если не аксесовские) - ODBC или OLE DB 3) Какой рекордсет - DAO или ADO 4) Какая версия аксеса 5) текст запроса 6) Индексы расставлены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 16:25 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
А Erika как снайпер бьёт. Вопросы те, что надо! Надо отвечать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 18:23 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
1) Чьи присоединены таблицы? Аксессовые, в другом файле на сетевом диске... 2) Через какой протокол (если не аксесовские) - ODBC или OLE DB А фиг знает, в аксессе пишу: Код: plaintext 1. 2. 3) Какой рекордсет - DAO или ADO см. выше... 4) Какая версия аксеса 97 SR-2 5) текст запроса см. выше... 6) Индексы расставлены? В смысле? Поле ID В таблицах? Нет, во многих таблицах индексы не стоят.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 12:18 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 12:39 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
1) Выдержка из хелпа "Повышение быстродействия внешней базы данных SQL": При подключении к таблице внешней базы данных SQL повысить производительность позволяет использование связанных таблиц вместо прямого их открытия. Прямое открытие таблиц возможно только с помощью программы Visual Basic для приложений. Связывание таблиц является значительно более быстрым, мощным и эффективным средством, чем прямое открытие таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 14:08 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
2) Для начала надо индексы расставить, желательно ключевые и на поля, учавствующие в объединении таблиц, сортировках и в условиях фильтров . См. хелп "Создание индекса для ускорения поиска и сортировки записей". Индексирование несколько замедляет ввод данных, но значительно ускоряет выполнение запросов. Поэтому выбор правильных индексов - это почти искусство. Можно попробовать запустить имеющийся в аксес "Анализатор быстродействия" - может, чего дельное подскажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 14:10 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
3) Лично я предпочитаю часто используемые запросы хранить в виде запросов и открывать по имени, привязывая к свойству "Источник записей" формы Me.RecordSource = "Имя запроса" 4) В справке есть разделы, которые нужно прочитать: "Создание индекса для ускорения поиска и сортировки записей"; "Оптимизация запросов"; "Повышение быстродействия" 5) "некий SQL запрос" не является текстом запроса, также как и инструкция bd.OpenRecordset("некий SQL запрос", dbOpenDynaset). Текст запроса - это то, что в кавычках. Его то и надо приводить, чтобы кто-нибудь что-нибудь дельное посоветовал. З.Ы. Прошу прощения за отправку кусками - у нас сервер глючит - большего размера посты не принимает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 14:12 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
1. индексы нет смысла использовать, данные в таблице меняются раз в секунду 2. связанные таблицы, при открытии их из VB сосутся целиком. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 10:08 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
это что же за таблица такая, в которой данные меняются раз в секунду? и каков ее размер? Просто интересно. и что за эту секунду можно успеть сделать с этими данными.... думается мне Вы что-то путаете.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 11:07 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
и вообще Вас просили запрос показать, а без него Вам врядли кто-то сможет помочь... все советы будут на уровне теории..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 11:10 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
>>связанные таблицы, при открытии их из VB сосутся целиком. :( Вообще-то, если я ничего не путаю, аксес не является серверной СУБД. Поэтому в любом случае данные сначала выкачиваются на клиента, а потом уже обрабатываются. Если нужна обработка запросов на сервере - переходите на SQL server. Ну а в аксесе повышают быстродействие через продуманность запросов, индексов итд(см выше) Изменение данных раз в секунду - это мне тоже оччень интересно - можно подробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2002, 11:49 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
Данные(фисловые) меняются раз в секунду другой программой. а клиенты сосут эти данные аксессом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 11:06 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
"сосут" тоже раз в секунду? это котировки что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 11:25 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
Типа того... В данном случае, когда данные меняются раз в секунду отображать их можно двумя способами: 1. Через ленточную форму которая завязана на обновляющуюся таблицу -тогда данные в форма обновляются автоматически как только обновились данные в таблице. Но стандартная форма неудобна для отображения данныых. 2. Сделать свою форму например с ActiveX контролом который красиво и удобно отображает данные но при этом приходится раз в секунду по таймеру рекверить рекордсет, что сильно замедляет работу. Если с одним-двумя пользователями всё нормально то после десятка пользователей 10 мегабитная сетка уже не справляется с загрузкой и всё силоьно тормозит. :( Вопрос: как Аксесс обновляет данные в форме (см. п. 1) и при это не сосет каждый раз всю таблицу? Как это самому реализовать на VBA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 12:44 |
|
||
|
рекордсет тормозит..... (+)
|
|||
|---|---|---|---|
|
#18+
Вопрос: как Аксесс обновляет данные в форме (см. п. 1) и при это не сосет каждый раз всю таблицу? Как это самому реализовать на VBA? re : он не отслеживает реальные изменения . он отслеживает чтобы при сохранении обновлялись значения, полученные изначально формой(не были за время просмотра изменены другим пользователем) если тебе нужно отслеживать изменения в реальном времени - 1. введи поле в таблице или в служебной таблице в котором будет храниться дата/время последнего обновления. 2. быстрым статическим запросом / командой вынимай максимальное значение даты/времени и если оно изменено по сравнению с последним значением в форме то только тогда запускай процедуру синхронизации обновляемого запроса, являющегося источником данных формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 13:51 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1835&tid=1682808]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 385ms |

| 0 / 0 |
