powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ускорить работу access в локальной сети
25 сообщений из 61, страница 2 из 3
ускорить работу access в локальной сети
    #34563053
Wyfinger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndriyShchВсем спасибо за поддержку.
И всё таки я так и не услышал ответа, почему на локальном компе работает быстро (ну скажем в раз 5-10 быстрее) , а по сети тормозит, хотя, кам мы тут разобрались, причина не в скорости сети. Тогда в чём? У аксеса, наверно, изначально заложено "тормозить" при работе по сети. А возможно его обмануть? Пускай думает, что это локальный диск. Может кто подскажет, есть какие-то варианты эмуллировать локальный диск вместо сетевого? Слышал про какую-то "самбу". Может кто-то что-то знает?.

Например если ядро БД будет очень много обращаться за небольшими порциями данных сеть не будет сильно загружена, хотя реальная скорость передачи данных будет намного меньше локального копирования. Например много мелких файлов (я проверял на 1500 иконках) копируются по сети в 2,5-5 раз медленнее чем локально, хотя сеть остается незагруженна. Наверное это ограничения или ошибки службы сервера, которых, как оказывается, немало.

По-поводу обмана Access: для начала попробуйте подключить сетевой диск. В любом случае, мне как-то мало верится, что разработчики могли намеренно вложить такие ограничения.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ускорить работу access в локальной сети
    #39332620
igv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
igv
Гость
Здравствуйте уважаемые знатоки. Подниму эту тему из мертвых, быть может кто-то поможет мне помочь:

Есть SQL сервер, на котором хранятся таблички (около 40к строк), с помощью запроса из них просматриваются отфильтрованные значения на локальных компьютерах. С ростом объема данных все сильнее чувствуется тормознутость просмотра. Как можно ускорить этот процесс??

Код: vbnet
1.
2.
3.
4.
5.
6.
SELECT [_serv_svodnaya].*, IIf([Switch]=3,"-",[data_sled_pov]) AS datsled
FROM _serv_svodnaya
WHERE ((([_serv_svodnaya].poveritel)=MyTempVars("MyVar")))
ORDER BY ([_serv_svodnaya].[id_serv_svodnaya]);

 
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39332710
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igv,

Я бы порекомендовал прочесть рекомендации по повышению производительности при работе с SQL сервером , мне не нравится локальная функция в WHERE, возможно из-за нее тащится вся таблица на клиентсткий компьютер. Проведите несколько экспериментов по определению скорости работы запроса. Замерьте скорость работы в разных вариантах:
1. Сохраненный запрос, как он сейчас есть. Я так понимаю, _serv_svodnaya - это прилинкованая таблица?
2. Тот же запрос, но замените функцию на фиксированное значение
3. Скопируйте текст запроса в новый passthrough запрос (извиняюсь, не помню, как это в русской версии называется), где замените функцию на фиксированное значение
4. Тот же passthrough запрос выполнить вне Акцесса, в любой другой среде, хоть SQL Analyzer или что-то подобное

По результатам уже можно будет определить что виновато в задержках - сервер, клиент, Акцесс или наличие функции в where
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39332717
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по "IIf" это текст процедуры в ВБА на стороне клиента. Конечно будет тормозить и еще как - в Вашем случае вся таблица гонится на него.
Создайте хранимую процедуру с параметрами и будете получать все быстро и красиво.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39332962
igv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
igv
Гость
Odess,

Код: vbnet
1.
2.
3.
4.
SELECT *
FROM METR.____________serv_svodnaya
ORDER BY id_serv_svodnaya;
 


такой запрос стал работать очень быстро (если я правильно поняла Ваш посыл).

но хочется поставить фильтр с глобальной переменной, но не могу разобраться с синтаксисом (
Код: vbnet
1.
2.
3.
4.
5.
SELECT *
FROM METR.____________serv_svodnaya
WHERE poveritel=MyTempVars("MyVar")
ORDER BY id_serv_svodnaya;
 
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39332964
igv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
igv
Гость
в запросе заполняется строка подключения к ODBC
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39332983
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igvв запросе заполняется строка подключения к ODBC
Не нужно так делать. Создавайте запросы на сервере, в этом вся его прелесть.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39333255
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microsoft Access не приспособлена для активной сетевой работы.
Всё попытки реализовать многопользовательскую работу кончались жуткими тормозами.
Не тот это инструмент.
Технология не та.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39333305
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Microsoft Access не приспособлена для активной сетевой работы
Правильно спроектированное приложение, где основная логика, затрагивающая совместную работу перенесена на SQL сервер, работает прекрасно даже под высокой многопользовательской нагрузкой.

mdb/accdb действительно не приспособлены для активной совместной работы, хотя я слышал противоположные мнения. Мой опыт этого не подтверждает, увы.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39334636
igv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
igv
Гость
Подскажите что можно использовать для сетевой работы? (максимально простое в разработке).

Помогите пожалуйста разобраться с синтаксисом:
запрос к SQL серверу, где MyTempVars("MyVar") это глобальная переменная.

Код: vbnet
1.
2.
3.
4.
5.
SELECT *
FROM METR.____________serv_svodnaya
WHERE poveritel=MyTempVars("MyVar")
ORDER BY id_serv_svodnaya;
 



при этом выдает ошибку:
...[SQL Server]'MyTempVars' is not a recognized function name. (#195)
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39334707
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читайте про параметры процедур.
Маленький пример:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ALTER PROCEDURE [dbo].[web_MAC]
(@MAC char(18)='00:00:00:00:00:00', @k int output)

AS
BEGIN
SET NOCOUNT ON

set @K =( SELECT  TOP 1  Pass FROM  dbo.WebMAC Where MAC=@MAC ) 

if @K is null 
	set @K =0
	
END
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39334938
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Microsoft Access не приспособлена для активной сетевой работы.
Всё попытки реализовать многопользовательскую работу кончались жуткими тормозами.
Не тот это инструмент.
Технология не та.Вы правы. Многое зависит от требований к задаче и условий эксплуатации. У нас на предприятии уже 12 лет работает сетевая задача на чистом Access. Число одновременно работающих пользователей 5-7 (обычно), сервер терминалов. База за это время выросла со 150 до 800 Мб. Ещё на 10 лет хватит.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39335676
igv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
igv
Гость
Немного поразбиравшись поняла, что проблема намного сложнее для меня чем казалось. Даже если этот запрос будет работать, то он будет открывать таблицу для чтения, в то время как нужно добавлять и изменять записи.
Подскажите, уважаемые форумчане, в каком направлении вообще двигаться? Нужно обеспечить подключение к одной таблице нескольких пользователей (у каждого идет индивидуальная выборка записей).
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39405214
vgrafin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Некоторые наблюдения по теме тормозов. База работает с 1998г. Office2007,2010,2013. Клиентская часть - 10Мб, табличная 10Мб. Активных пользователей 5-6. Прибыль по 10-11тыс записей в месяц-это около 3Мб/мес. Около 80 таблиц, интерфейс с заморочками. Борьба с "опуханием" - устаревшие, но нужные данные выносятся в другую базу(archive.mdb), доступ по запросу, без прилинкованных таблиц. Удаётся удерживаться на уровне 8-10Мб. Забой в личные таблицы на сервере, только потом сброс в общую, со всеми проверками. "Темп" таблицы -локально, при выходе очистка. Локально работает шустро, в сети начало тормозить, даже при 1 пользователе! Пора подумать о SQLсервере? Надо попробовать. Беру довольно дохлую машинку, единственную свободную в конторе. Ставлю левый MS server2008, такой же SQL2008. Перенёс, приODBC-лся, вроде работает. Мысль - а на чём лежит моя -by.mdb? А, на Samba. Доступ только у СА. Переношу табличную часть на "свой сервер" - ого-го, работает, как на локалке. Ну почти. Пока не знаю, радоваться или нет.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39405288
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vgrafinПереношу табличную часть на "свой сервер" - ого-го, работает, как на локалке.

Скорее всего вы базу перенесли на абсолютно свободный комп (хоть и дохлый) вот и летает..., часто бывает что с базой на сервере предприятия работает максимум 5 человек, а сам сервак чем только не занимается в это время (и печать вся на нем, и домен и куча терминальных пользователей, и в гарант с консультантом все лезут на него и фаервол не дремлет), а ваша база там двадцатая в очереди на обработку ...
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39405576
vgrafin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag, уточнил - Samba на голяк, никому больше не прислуживает. Только 1С, но бухгалтерия не дымиться. Последняя крамольная мысль - к чёрту загруженные? незагруженные сервера - попробую на любой приличный неозадаченный комп. Как ранее не додумался?
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39405702
I2S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
I2S
Гость
vgrafin, сама база в каком формате Access?
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39405803
vgrafin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
I2S, Пока всё .mdb, хотя 2003 офис уже перестал использоваться. Но от новых возможностей мне ничего не треба. И .ocx приходится доставлять на оф.10 и 13. На старый календарь сильно завязано. Зачем хорошие вещи выкидывать, лучше в хорошие руки.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39405843
vgrafin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag и остальным исследователям. Включил диспетчер задач, Сеть. Верх ползёт по 1Гб/сек. Вызов Samba Даёт здоровенные секунды на 2 и приличный пик исходящего трафика. Запрос с моего - махонькие пики. Быстрое листание сложной формы даёт 1,2 -2мбит/с и 10-500кбит/с (счётчик На Win10). Ну, так, на глаз. Призабаво-с.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39406127
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vgrafinБорьба с "опуханием" - устаревшие, но нужные данные выносятся в другую базу(archive.mdb), доступ по запросу, без прилинкованных таблиц.

Подскажите как делается доступ по запросу в архивную базу без прилинкованых таблиц?

Я в своё время отказался от сбрасывания в архивную базу и держу архивные таблицы в рабочей базе от чего "опухание" прогрессирует (уже 150 МБ). Причиной отказа была проверка ключевых полей сброшенных данных чтобы в случае возврата архивных данных в рабочие таблицы не нарваться на конфликт ключей. Поэтому при каждом создании записи проверяю максимальное значение ключа в рабочей и архивной базе и создаю на единицу больше (счётчикам не доверяю). А для проверки приходится держать поближе архивные таблицы.
Оптимальность работы своей базы конечно оставляет желать лучшего. Но вот над разделением архивных от рабочих подумываю. Но как быстро и качественно делать проверку ключей в них?
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39406626
I2S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
I2S
Гость
vgrafin, существует глюк (на своей шкуре испытал). База, созданная на 2000-2003 Аксе, после сжатия в Акс 2007 и далее теряет свою "скорострельность", такое впечатление, что перестает работать индексация. И только сжатие базы в родном Аксе восстанавливает эту лажу. Возможно Вы столкнулись с такой же ситуацией. Ну а после "лечения" надо снять галку "Автоматического сжатия".
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39406631
I2S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
I2S
Гость
vgrafin, а вообще то копайте в сторону открытых рекордсетов в базе данных. Прекрасно Акс работает с сетью, наговоры все это
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39406661
vgrafin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GVOV,
INSERT INTO tb_1 IN 'X:\Base\mybase.mdb' SELECT...; 'это делает конструктор

SELECT tb_1.*
FROM X:\Base\mybase.tb_1 tb_1; этого конструктор не создаёт и не понимает.
Да, выгрузить и посмотреть не проблема, но необходимо хорошо знать структуру базы и способов её использования, что б понять, какие ухищрения подойдут. Можно делать сделать запрос на объединение, а прилинковку делать временную на время запроса.
А на счёт возврата данных назад-много вопросов. Какие таблицы архивируются, нужно ли их потом редактировать, какова частота обращения к ним, архивируются ли справочные, таблицы, частями или целиком? А что делать тем у кого вставка в тот момент, когда таблицу напихали архивными данными. Вопросы, вопросы... У меня, например, есть справочные, таблицы, которые могут меняться(что б мусор не тащить).Если основное поле слишком длинное(название клиента -а он ни кому не нужен), есть доп. поле с короткой понятной аббревиатурой(уник.индекс). В архив я вставлю не ключ, а это поле. В архиве не нужно соединений, а клиента можно выкинуть, в запросе фильтром выбрать. Нереляционно, но работает. Размер архива мне как-то не очень.
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39406708
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешно читать, как народ вместо того, что бы перейти на SQL, продолжает набивать шишки и ищет себе проблемы на голову...
...
Рейтинг: 0 / 0
ускорить работу access в локальной сети
    #39406720
GVOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vgrafinGVOV,
INSERT INTO tb_1 IN 'X:\Base\mybase.mdb' SELECT...; 'это делает конструктор

SELECT tb_1.*
FROM X:\Base\mybase.tb_1 tb_1; этого конструктор не создаёт и не понимает.
Да, выгрузить и посмотреть не проблема, но необходимо хорошо знать структуру базы и способов её использования, что б понять, какие ухищрения подойдут. Можно делать сделать запрос на объединение, а прилинковку делать временную на время запроса.
А на счёт возврата данных назад-много вопросов. Какие таблицы архивируются, нужно ли их потом редактировать, какова частота обращения к ним, архивируются ли справочные, таблицы, частями или целиком? А что делать тем у кого вставка в тот момент, когда таблицу напихали архивными данными. Вопросы, вопросы... У меня, например, есть справочные, таблицы, которые могут меняться(что б мусор не тащить).Если основное поле слишком длинное(название клиента -а он ни кому не нужен), есть доп. поле с короткой понятной аббревиатурой(уник.индекс). В архив я вставлю не ключ, а это поле. В архиве не нужно соединений, а клиента можно выкинуть, в запросе фильтром выбрать. Нереляционно, но работает. Размер архива мне как-то не очень.

Спасибо, относительно запросов понял.
А чем прилинковка плохая в плане производительноти что её лучше делать временной?
Я архивирую только данные без справочников. Они постоянно в рабочей базе (они не критично растут) но при попытке удаления из них данных проверяю наличие в архивных таблицах связей и не даю их удалять. Также использую Нереляционность для отсоединения связей (вообще база без связей, связи поддерживаю логикой приложения при добавлении, редактировании, удалении)
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ускорить работу access в локальной сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]