Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
Есть linkedserver к базе MS ACCESS
Надо написать в одной из процедур обновление одной таблички в базе ACCESS.

sp_addlinkedserver 'BASPRAIS', 'Access', 'Microsoft.ACE.OLEDB.12.0', '\\D103\d\Sklad\Data\BasPrais.mdb'
go
sp_addlinkedsrvlogin 'BASPRAIS', false, 'sa', 'Admin'


Надо очистить одно поле в таблице. В таблице порядка 30000 записей.
Банальный запрос:

UPDATE    BASPRAIS...T186_MatOtchetOstatok
SET              KolOstServ = 0
выполняется порядка 5-10сек

так немного быстрее

EXECUTE ( 'UPDATE    T186_MatOtchetOstatok
SET             KolOstServ = 0 ' ) AT BASPRAIS;



и почему если этот-же запрос выполнить из самой базы ACCESS с прилинкованной таблице по сети, он выполняется на порядок быстрее , где-то за 1сек?

Конечно, пока решение найдено такое: На клиенте ACCESS чистим табличку, вызываем процедуру на сервере, потом чистим на клиенте вторую табличку, вызываем вторую процедуру на сервере.
Хотелось бы решить красиво одной хранимкой, но тогда плучается гораздо медленее.

Может можно как то еще выполнить запрос в базе ACCESS средствами MS SQL ?
Спасибо.
13 апр 12, 02:03    [12409329]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
aleks2
Guest
1. Задуматься над вопросом: а нафега козе баян, а мине база .MDB?
2. Осознать ненужность оной.
3. Создать табличк(у/и) прям на сервере.
13 апр 12, 04:48    [12409389]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
Glory
Member

Откуда:
Сообщений: 104751
bvmblad
и почему если этот-же запрос выполнить из самой базы ACCESS с прилинкованной таблице по сети, он выполняется на порядок быстрее , где-то за 1сек?

А почему запрос к внешней базе должен работать так же, как к собственным таблицам ?
Только потому что в названии обеих продуктов есть Microsoft ?
13 апр 12, 08:00    [12409473]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
Glory
bvmblad
и почему если этот-же запрос выполнить из самой базы ACCESS с прилинкованной таблице по сети, он выполняется на порядок быстрее , где-то за 1сек?

А почему запрос к внешней базе должен работать так же, как к собственным таблицам ?
Только потому что в названии обеих продуктов есть Microsoft ?


Именно эти вопросы и возникли самые первые.
Хотелось как-то пошустрее.
Ну ... если нельзя значит нельзя.
Спасибо.
13 апр 12, 09:21    [12409793]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
aleks2
1. Задуматься над вопросом: а нафега козе баян, а мине база .MDB?
2. Осознать ненужность оной.
3. Создать табличк(у/и) прям на сервере.


Вы прочитайте вопрос в теме и какие у вас ответы/вопросы?

1 Баян достался по наследству в виде разрозненных приложений ACCESS на фирме , созданных за 15 лет и их по объему достаточно много и они решают всю бизнес логику фирмы.

2. Да именно так и надо.

3. Мне не надо в приложении ACCESS баян в виде прилинкованной таблички c сервера. Вы потом постройте запросы в аксесе с джойнами на эту табличку и посмотрим как у вас это все будет шевелиться.

Если вы зададите вопрос "что то стучит сзади в моем любимом авто?" и получите ответ
"Летайте самолетами аэрофлота" , вас этот ответ удовлетворит ?

Не знаете ответа - не отвечайте
13 апр 12, 09:30    [12409841]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
Glory
Member

Откуда:
Сообщений: 104751
bvmblad
Именно эти вопросы и возникли самые первые.

База access - это просто файл
Разумеется само приложение access со своим файлом работает быстрее, чем все другие, которые работают с файлом через некий драйвер.
Перенос таблиц из access в mssql решит эту проблему
13 апр 12, 09:34    [12409856]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
Glory
bvmblad
Именно эти вопросы и возникли самые первые.

База access - это просто файл
Разумеется само приложение access со своим файлом работает быстрее, чем все другие, которые работают с файлом через некий драйвер.
Перенос таблиц из access в mssql решит эту проблему


Ясно. Переносим потихоньку на SQL SERVER. Но невозможно все задачи одним махом перетащить , поэтому приходится на переходном этапе городить "мосты"
13 апр 12, 10:08    [12410038]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
aleks2
Guest
bvmblad
3. Мне не надо в приложении ACCESS баян в виде прилинкованной таблички c сервера. Вы потом постройте запросы в аксесе с джойнами на эту табличку и посмотрим как у вас это все будет шевелиться.


1. Ты не поверишь, я строил.
2. Все шевелилось.
3. Ты, просто, не умеешь готовить кошек. Тьху. Access.
13 апр 12, 10:18    [12410087]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
aleks2
bvmblad
3. Мне не надо в приложении ACCESS баян в виде прилинкованной таблички c сервера. Вы потом постройте запросы в аксесе с джойнами на эту табличку и посмотрим как у вас это все будет шевелиться.


1. Ты не поверишь, я строил.
2. Все шевелилось.
3. Ты, просто, не умеешь готовить кошек. Тьху. Access.


Летайте самолетами аэрофлота =)
13 апр 12, 10:54    [12410274]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
aleks2
Guest
bvmblad
aleks2
пропущено...


1. Ты не поверишь, я строил.
2. Все шевелилось.
3. Ты, просто, не умеешь готовить кошек. Тьху. Access.


Летайте самолетами аэрофлота =)


1. Хе-хе. Дарагуля, я здесь тусуюсь давно и, надеюсь, имею некую репутацию.
2. Это ж не я прошу совету.
3. Так что, скромнее надо быть, пилот аэрофлота.
13 апр 12, 11:00    [12410320]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
aleks2
bvmblad
пропущено...


Летайте самолетами аэрофлота =)


1. Хе-хе. Дарагуля, я здесь тусуюсь давно и, надеюсь, имею некую репутацию.
2. Это ж не я прошу совету.
3. Так что, скромнее надо быть, пилот аэрофлота.


Многоуважаемый, quot aleks2.
Я вроде спросил один вопрос.

Может можно как то еще выполнить запрос в базе ACCESS средствами MS SQL ?

я не спрашиваю как мне перейти с ACCESS на SQL SERVER или на 1С, как вести учет склада, как делать логистику закупок и оптимизацию остатков склада и многое другое.

Вопрос не стоит зачем мне это надо и не обсуждается.
Мне это надо.
Если вы уже почитали всю ветку вопросов и ответов Glory , то могли бы уже догадаться.
Я прекрасно отдаю себе отчет, что лучше что бы все крутилось на SQL SERVER, но в силу обстоятельсв это невозможно на данном этапе.
И при всех прочих равных SELECT по 2 родным таблицам в ACCESS выполняется гораздо проще и быстрее чем тот-же SELECT когда одна таблица будет c сервера.
Почему ACCESS?
Ну написано на нем приложение энциклопическое, которое работает уже 100 лет. Вы вот за 1 час перенесете все на сервер?
Нет.

На поставленный вопрос вы не ответили и америку для меня не открыли.
автор
1. Задуматься над вопросом: а нафега козе баян, а мине база .MDB?
2. Осознать ненужность оной.
3. Создать табличк(у/и) прям на сервере.

Спасибо за дельные советы, тусуйтесь дальше и поднимайте свою репутацию.
13 апр 12, 11:49    [12410799]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
aleks2
Guest
1. Никак, дарагуля.

2. Этак вы ишо захочете выполнить запрос не выполняя запрос.

3. Как-то так.
13 апр 12, 13:09    [12411466]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
aleks2
Guest
Раньше, тредстатер был более обучаем
Выборка за период
13 апр 12, 13:12    [12411488]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
qwerty112
Guest
bvmblad
Может можно как то еще выполнить запрос в базе ACCESS средствами MS SQL ?

через автоматизацию, - sp_OACreate 'ADODB.Connection', ... и т.д.
но врядли это чем-то поможет ...
13 апр 12, 13:54    [12411856]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
qwerty112
bvmblad
Может можно как то еще выполнить запрос в базе ACCESS средствами MS SQL ?

через автоматизацию, - sp_OACreate 'ADODB.Connection', ... и т.д.
но врядли это чем-то поможет ...

довольно интересно , надо будет попробывать, Спасибо.
Пока остановились на том, что по максимуму выполнять что можно выполнить на клиенте, ну а что надо с сервером то сервером.
13 апр 12, 14:23    [12412128]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
aleks2
Раньше, тредстатер был более обучаем
Выборка за период


Вы помогли с поставленным вопросом за что вам и спасибо большое, чему то научили.
но когда я спрашиваю как мне выполнить запрос к АССESS из MS SQL SERVER, а мне говорят зачем тебе АКСЕСС я этого не понимаю.
Ну раз спрашиваю, значит не для праздного интереса.
13 апр 12, 14:35    [12412247]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
iljy
Member

Откуда:
Сообщений: 8711
bvmblad,

да поймите уже наконец, что если у вас возникла необходимость выполнить запрос из скуля к аксесу, то на порядок проще один раз перенести таблицу в скуль и забыть о подобных заморочках. А в аксесе, раз уж там столько всего висит, сделать линк.
13 апр 12, 14:48    [12412365]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
iljy
bvmblad,

да поймите уже наконец, что если у вас возникла необходимость выполнить запрос из скуля к аксесу, то на порядок проще один раз перенести таблицу в скуль и забыть о подобных заморочках. А в аксесе, раз уж там столько всего висит, сделать линк.


Представьте половина аналитики уже переведена на SQL.
Есть еще относительное независимое приложение ACCESS, в котором например выполняется еще другая аналитика.
Есть в этой базе таблица с кучей полей которые заполняются и контролируются именно приложением АССЕSS.
В этой таблице есть 1 поле назовем его бух_остатки_товара, данные которые уже контроллируются на SQL.
Мне надо переодически в эту табличку записать эти остатки с сервера по ключу кода товара.
Ну и что мне делать по вашему?
Вынести эту таблицу на SQL и сделать линк в аксесе?
А как мне потом с ней работать в аксессе там куча обработак по другим полям и множество других запросов с другими таблицами этой базы данных.
Вы считаете эти все запросы станут просто летать в аксесе от того что теперь таблица не в аксесе а на сервере?
Эфект будет тот-же что и в этой теме, но теперь в аксесе.
зачем мне переписывать сотню процедур от того что теперь таблица стала не родной.
Уж лучше я пока ее как-нибудь обновлю данными из SQL и буду работать как работало и постепенно писать приложение на SQL SERVER, когда можно будет полностью отстрелиться от этого приложения на аксесе.
13 апр 12, 15:27    [12412780]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
iljy
Member

Откуда:
Сообщений: 8711
bvmblad,

я не очень понимаю, что вы собираетесь переписывать в аксесе. Вы замените таблицу на линк, с тем же именем, и собственно все переделки на этом закончаться. Может станет и медленнее, но не думаю, что намного. Вот так постепенно все таблицы на скуль и утащите.
13 апр 12, 15:35    [12412862]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
iljy
bvmblad,

я не очень понимаю, что вы собираетесь переписывать в аксесе. Вы замените таблицу на линк, с тем же именем, и собственно все переделки на этом закончаться. Может станет и медленнее, но не думаю, что намного. Вот так постепенно все таблицы на скуль и утащите.


а вы объедените 2 таблицы в аксесе одна из которых прилинкованная с серверная, и посмотрите в профайлер как аксесс будет с сервера по 1 строчке выдергивать из таблицы выдергивать.
и откройте форму на этом источнике в котором 60000 записей.
A потом скажите пользователям ну.. немножко медленее стало работать.
Если работать то или на SQL в ADP или на MDE.
Делать сборную солянку работать очень неудобно.
13 апр 12, 16:14    [12413173]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
bvmblad
Member

Откуда: Минск
Сообщений: 184
Спасибо всем за обсуждение вопроса.
На этом думаю тема закрыта
13 апр 12, 16:22    [12413246]     Ответить | Цитировать Сообщить модератору
 Re: тормозит linkedserver MS ACCESS  [new]
iljy
Member

Откуда:
Сообщений: 8711
bvmblad
iljy
bvmblad,

я не очень понимаю, что вы собираетесь переписывать в аксесе. Вы замените таблицу на линк, с тем же именем, и собственно все переделки на этом закончаться. Может станет и медленнее, но не думаю, что намного. Вот так постепенно все таблицы на скуль и утащите.


а вы объедените 2 таблицы в аксесе одна из которых прилинкованная с серверная, и посмотрите в профайлер как аксесс будет с сервера по 1 строчке выдергивать из таблицы выдергивать.
и откройте форму на этом источнике в котором 60000 записей.
A потом скажите пользователям ну.. немножко медленее стало работать.
Если работать то или на SQL в ADP или на MDE.
Делать сборную солянку работать очень неудобно.

Ну вот вы зачем сейчас хрень написали? Я конечно уже лет пятьсот не работал (тьфу-тьфу) с аксессовскими базами, но помню, что все далеко не так плохо. Сейчас специально создал одну и проверил: да, при работе с линковаными таблицами скорость конечно меньше, но уж при соединении аксесс отнюдь не тащит с сервера все 100500 записей (тем более по одной), а вполне себе формирует запрос с фильтром, чтоб лишнего не тащить.
А вообще наличие соединения - это повод и остальные таблицы на сервер унести. А уж соединение двух линкованых таблиц выполняется на сервере без всяких заморочек. Так что двойка вам за знание способов интеграции.
13 апр 12, 16:40    [12413374]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить