|
Доступ к БД
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
При попытке доступа к этим данным одновременно с двух машин в момент переборки сильно начинает тормозить программа на двух машинах. Подскажите как можно от этого уйти? База данных Access. Заранее большое спасибо! Предполагаю что дело в adOpenStatic, adLockReadOnly ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 09:00 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
замени Static на ForwardOnly не поможет - поиграй с курсором (серверный/клиентский) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 09:17 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Тормоза определяются тем, что у тебя используется обычная файловая БД. В которой доступы и блокировки отслеживаются и разводятся через отдельный файл блокировок, а доступ к этому файлу - на уровне ОС той станции, где лежит файл БД. Соответственно ты имеешь в чистом виде получение доступности поллингом - отсюда и тормоза, Jet вполне обоснованно запрашивает обновлённые данные с некоторым вменяемым интервалом, и это не одна миллисекунда. Радикального улучшения без перехода на клиент-сервер не жди. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 09:26 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
AkinaТормоза определяются тем, что у тебя используется обычная файловая БД. В которой доступы и блокировки отслеживаются и разводятся через отдельный файл блокировок, а доступ к этому файлу - на уровне ОС той станции, где лежит файл БД. Соответственно ты имеешь в чистом виде получение доступности поллингом - отсюда и тормоза, Jet вполне обоснованно запрашивает обновлённые данные с некоторым вменяемым интервалом, и это не одна миллисекунда. Радикального улучшения без перехода на клиент-сервер не жди. А каким образом возможно перейти на клиент сервер? Установкой другой базы данных типо SQL или в Access это можно как то сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 10:09 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
MSSQL, аксесс малопригоден для многопользовательских нужд при таком способе использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 10:14 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Ну не скажи. У меня десяток пользователей работал одновременно с таблицами базы аксесс и я не сказал бы, что какие-то невменяемые тормоза были, а тут два пользователя всего - не должно быть проблем. Тем более при ForwardOnly/ReadOnly. Доступ к файлам какой? Локалка? select * обязательно делать? там memo-полей нет в выборке? Лучше выбирать только необходимые поля, чтобы минимизировать трафик. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 10:36 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Shocker.ProНу не скажи. У меня десяток пользователей работал одновременно с таблицами базы аксесс и я не сказал бы, что какие-то невменяемые тормоза были, а тут два пользователя всего - не должно быть проблем. Тем более при ForwardOnly/ReadOnly. Доступ к файлам какой? Локалка? select * обязательно делать? там memo-полей нет в выборке? Лучше выбирать только необходимые поля, чтобы минимизировать трафик. Файл бд находиться на компе-сервере. Папка с бд открыта на общий доступ. Т.е module.bdPath="\\aaa\bbb\bd1.mdb" Как можно решить проблему? Спасибо тем кто откликнулся. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 11:02 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
И в данном selecte нужны все поля что есть в таблице. Кстати что интересно когда одновременно запрашиваеш эту информацию на одном компе зависает программа а на другом нет но выборка данных приостанавливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 11:05 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
ты сделал то, что я сказал в первом посте? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 11:17 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Shocker.Proзамени Static на ForwardOnly не поможет - поиграй с курсором (серверный/клиентский) 1)Заменил 2)поставил тип курсора клиент Не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 11:45 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Slash232Shocker.Proзамени Static на ForwardOnly не поможет - поиграй с курсором (серверный/клиентский) 1)Заменил 2)поставил тип курсора клиент Не помоглоблин, ну не должно. я всегда работал с серверным курсором. сколько записей в таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 11:55 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
но отбираются записи по 10 строк в среднем ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 12:08 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Slash232но отбираются записи по 10 строк в среднемгде? "Select * from Positions" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 12:09 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Кстати, если 10 записей, то время всего цикла должно быть менее секунды. О каких тормозах тогда идет речь? Что внутри цикла, может именно то, что внутри цикла и создает проблему? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 12:11 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Shocker.ProSlash232но отбираются записи по 10 строк в среднемгде? "Select * from Positions" это я сократил запись просто в оригинале 2 условия отбора ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 12:11 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Slash232это я сократил запись просто в оригинале 2 условия отборатак скорее всего тогда тормоза именно в момент выполнения запроса, а не в момент цикла. 1) проверь тормоза без условий отбора (зацикли код) 2) проверь торможение выполнения запроса с условиями отбора, но без цикла ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 12:16 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
3) далее, конечно, заинтересуют сами условия отбора и наличие индексов на необходимых полях ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 12:58 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Shocker.Pro3) далее, конечно, заинтересуют сами условия отбора и наличие индексов на необходимых полях "Select * from Positions Where Êàòåãîðèÿ = '" & Trim(category) & "'" & l & " order by Íàèìåíîâàíèå" Одна колонка называемая Счётчик в таблице Positions являеться счётчиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 13:14 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Поля Êàòåãîðèÿ и Íàèìåíîâàíèå проиндексированы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 13:44 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Slash232но отбираются записи по 10 строк в среднем а почему этот отбор делается не в самом запросе, а в каком-то г.-цикле ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 13:58 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
отбор делается в select ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 14:01 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Slash232отбор делается в select а этим ты тогда, что хотел сказать ? автор Код: vbnet 1. 2. 3. 4.
При попытке доступа к этим данным одновременно с двух машин в момент переборки что это за переборка ? может ты в ней - "катаешся" по этому курсору "туды-сюды" 100500 раз ?! делай эту переборку в клиентском, ридонли курсоре, при установленном rst5.activecinnection = Nothing, или - в массиве, - rst5.getrows а лучше - не делай вовсе ! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 14:12 |
|
Доступ к БД
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
вот это внутренность между while not rst5.eof и movenextom ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 14:19 |
|
|
start [/forum/topic.php?fid=60&fpage=61&tid=2157097]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 161ms |
0 / 0 |