Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Локировка записей??? / 22 сообщений из 22, страница 1 из 1
04.06.2003, 12:00
    #32176034
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
В локальной сети есть компьютер Comp1.
На нём лежит db1.mdb, c 1 таблицей Table1, содержащей 50000 записей.

На компьютере Comp2 есть db2.mdb, в которой есть LINK к Table1.
На компьютере Comp3 есть db3.mdb, в которой есть LINK к Table1.

1)Из db2 (Comp2) открываем таблицу Table1 (время открытия где-то 1 сек.).
2)Далее из db3 (Comp3) открываем таблицу Table1 (время открытия ОКОЛО 10 СЕК!!! )

3)Открываю в db1 таблицу Table1 , находясь на компьютере Comp3 (открывается моментально!!!)

(Конфигурация одинаковая, Access2000, mdac 2.7)

Не могу понять почему ссылка на табл. работает медленнее, чем прямое обращение к ней :(
...
Рейтинг: 0 / 0
04.06.2003, 12:11
    #32176051
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
>Не могу понять почему ссылка на табл. работает медленнее, чем прямое обращение к ней :(

ODBC. Япона мать!
...
Рейтинг: 0 / 0
04.06.2003, 12:24
    #32176076
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
Это как-то можно побороть?
...
Рейтинг: 0 / 0
04.06.2003, 12:25
    #32176082
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2 Сенин Виктор
Вроде аксес не дает через одбц к мдб цепляться? Только jet-овские соединения. Так что одбц ни при чем.

2 AlTis
Ты как с третьего компа базу открываешь? Лезешь через сеть на комп1, открываешь мдб и открываешь таблицу? Так когда ты файл открываешь - он у тебя весь и читается (в крайнем случае кэшируется на сервере) со всем его содержимым. В том числе и с таблицей. Вот она и открывается моментально. А через линк - он по сети данные по чуть-чуть тянет.
...
Рейтинг: 0 / 0
04.06.2003, 12:32
    #32176090
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2Лох Позорный
Можно что-то сделать для увеличения производительности?
...
Рейтинг: 0 / 0
04.06.2003, 13:08
    #32176157
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2Лоху
>Вроде аксес не дает через одбц к мдб цепляться?
Код: plaintext
1.
2.
Встроенные драйверы
Access содержит встроенные драйверы, позволяющие импортировать, экспортировать или связывать следующие типы данных: базы данных Microsoft Access , проекты Microsoft Access, файлы Paradox, dBASE, Microsoft Excel, Lotus  1 - 2 - 3 , Microsoft Exchange, Microsoft Outlook, текстовые файлы с фиксированной шириной полей, текстовые файлы с разделителями и HTML.


>Только jet-овские соединения. Так что одбц ни при чем.

Причем. Если я правильно (?) понял следующие выдержки из MSDN
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Note   The DAO database classes are distinct from the MFC database classes 
based on Open Database Connectivity (ODBC). All DAO database class names have 
the “CDao” prefix. You can still access ODBC data sources with the DAO classes; 
the DAO classes generally offer superior capabilities because they are specific to 
the Microsoft Jet database engine.

...

The DAO-based classes access data through the Microsoft Jet database engine, including ODBC drivers.

...

ODBC (Open Database Connectivity)
A standard protocol that permits applications to connect to a variety of external 
database servers or files. ODBC drivers used by the Microsoft Jet database engine 
permit access to Microsoft SQL Server and several other external databases. 


Поправте меня, плиз, если я не прав (что возможно) или хреново перевожу (чтоочень возможно) :)
...
Рейтинг: 0 / 0
04.06.2003, 13:49
    #32176238
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
Нашел точнее
Код: plaintext
1.
2.
3.
4.
5.
6.
Microsoft Office  2000  Supported Data Formats and Installed OLE DB Providers
Microsoft

January  1999 
...
ODBC drivers When linking from or importing to an Access database (.mdb):  


Т.е. если есть линкованная таблица - значит используется ODBC через Jet.
...
Рейтинг: 0 / 0
04.06.2003, 14:20
    #32176304
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2 Сенин Виктор
В аксесе естьь встроенные драйвера к mdb, xls, dBase и т.п. Это НЕ то же самое что одбц драйвера к этим же вещам.
Через одбц можно цепляться к MS SQL например ("...access to Microsoft SQL Server and several other external databases..."), а вот к аксесу - только через встроенные драйвера. Не пытался конектиться через одбц ко всяким парадоксам, дибейсам и аксесам других версий, но есть предположение что тоже только через встроенные драйвера.
Через одбц можно конектится ко всему (хоть ко вселенскому разуму), но не из аксеса.

2 AlTis
Сетка какая?
...
Рейтинг: 0 / 0
04.06.2003, 14:27
    #32176322
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
>Через одбц можно конектится ко всему (хоть ко вселенскому разуму), но не из аксеса.

А как же
Встроенные драйверы
Access содержит встроенные драйверы, позволяющие импортировать, экспортировать или связывать следующие типы данных: базы данных Microsoft Access
....


Вопрос котрый меня сейчас волнует: когда делается линковка таблиц Mdb+mdb - что используется? ОДБЦ?
Пока нашел что прилинковке идет работы все-таки через ОДБЦ.
Если можешь - просвети. И если можно, выдержки из хелпов.

Просто пытаюсь понять что лучше: использовать CurrentProject.Connection для ссылки на линкованную таблицу либо использовать свой Кнектион для прмого указания таблицы с данными. Если линковка идет через ОДБЦ - то это лишний тормоз. Но в любом случае буду сравнивать на опытных данных.
...
Рейтинг: 0 / 0
04.06.2003, 14:48
    #32176354
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
ааа ... нашла коса на камень )))

кстати очень интересно если кому нибудь удастся выбрать конфигурацию драйвера - строку подключения ADO при которой будет достигнуто максимальное быстродействие.

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


а вот мысль если очень сложные запросы размещать в исходной базе и линковаться уже к запросу будет ли выигрыш?
...
Рейтинг: 0 / 0
04.06.2003, 14:51
    #32176359
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
Вопрос котрый меня сейчас волнует: когда делается линковка таблиц Mdb+mdb - что используется? ОДБЦ?
Вобще-то я не уверен на все 100, но считаю что НЕ одбц. Выдержки из хелпов не приведу, но ведь и в твоих выдержках нигде не сказано что "встроенные драйвера"=одбц? Просто некий "встроеный драйвер". Так написано, так оно и есть (имхо). И наоборот, если говорится про одбц - нигде не пишется что с его помощью можно конектиться к мдб. Вроде так? Или кинь в меня куском хелпа где слова одбц и мдб вместе встречаются.
...
Рейтинг: 0 / 0
04.06.2003, 14:54
    #32176366
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
>а вот мысль если очень сложные запросы размещать в исходной базе и линковаться уже к запросу будет ли выигрыш?

Нет. Будет проигрыш. Если ты имел ввиду сохраненый запрос в базе с данными.

Но вот будет ли выигрыш, если подключаться напрямую к базе и в CommanText указать колбасятину которая вовзращает нужные данные? Т..е используя только напрямую таблицы из файла сданными и ничего и з интрфейсной части (сохраненых запросов, своих функций)
Это надо пробовать на больших объемах.
Буду пробовать. Раскажу потом.
...
Рейтинг: 0 / 0
04.06.2003, 15:33
    #32176433
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
Попробовал на 0,5 миллионе записей
Поиск через Seek/Find по PrimaryKey
Одна хрень.
Seek - на собственной локальной таблице от 0 до 10 мс
Seek - на удаленной табдлице открытие напрямую 10 мс
Find - на линкованной таблице от 4100 до 5000 мс
Find - открытие напрямую удаленной таблицы 4100-4400 мс

Сейчас попробую поиск по индексированному уникальному текстовому полю

З.Ы.
Не очень-то я эксперементы ставить умею.
...
Рейтинг: 0 / 0
04.06.2003, 15:39
    #32176442
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2Лох Позорный
Сетка 100 мегабитная.
Может я что не так сформулировал....
1 пользователь откр. прилинкованную табл. практически моментально, но когда эту же табл. пытается откр. 2-ой пользователь, начинаются тормоза.
Если 1 польз. подключен и 2-ой откр. табл. по сетке (комп->БД->табл.), то табл. открывается моментально.

Вопрос:как 2-ум пользователям обратиться к прилинкованной табл. с максимальным быстродействием. (может настройки локировок, ODBC, ещё что-то.....????) Помогите.
...
Рейтинг: 0 / 0
04.06.2003, 15:42
    #32176451
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
ОчЯпятка:Seek - на удаленной табдлице открытие напрямую 50мс


Seek - на собственной локальной таблице от 0 до 10 мс
Seek - на удаленной табдлице открытие напрямую 60 мс
Find - на линкованной таблице от 4200 до 4300 мс
Find - на локальной собственнйо таблице первый запуск 21220 (затем по 1100)
Find - открытие напрямую удаленной таблицы 5400-5700 мс
...
Рейтинг: 0 / 0
04.06.2003, 15:43
    #32176454
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2AlTis

А что значит "открывает"?
как? код покажи
...
Рейтинг: 0 / 0
04.06.2003, 15:57
    #32176482
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
может тормоза связаны с блокировками которых ты не делаешь открывая рекордсет только для чтения?
...
Рейтинг: 0 / 0
04.06.2003, 16:08
    #32176500
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
ЭТО ТОЛЬКО ПРЕДПОЛОЖЕНИЕ !!!!

при использовании линкованной таблицы для формы или локальных операций runsql, запросы, dlookup
1. драйвер для обеспечения защиты от грязного чтения накладывает блокировку на всю таблицу.
2. вытягивает заблокированные записи
3. снимает блокировку

если самым тягомотным является наложение блокировок (все-таки запись куда-то!!!) то предположение может оказаться верным

отсюда будет вывод не пользоваться запросами и линкованными таблицами а делать все через ado c указанием типа блокировки
...
Рейтинг: 0 / 0
04.06.2003, 16:37
    #32176557
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2Senin Viktor
Открытие табл. не програмно, а просто в окне БД.
При открытии програмно то-же самое

Код: plaintext
1.
2.
3.
4.
dim td as DAO.Tabledef
dim rs as DAO.Recordset
     set td=CurrentDb.TableDefs( "Table1" )
     set rs=td.OpenRecordset
...
Рейтинг: 0 / 0
04.06.2003, 16:56
    #32176591
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2 АлексейК
отсюда будет вывод не пользоваться запросами и линкованными таблицами а делать все через ado c указанием типа блокировки
... и перейти на MS SQL Server
Согласно Дейту хорошая СУБД должна накладывать мягкую блокировку для любой записи которую ты читаешь. И жесткую для любой которую пишешь. ADO/DAO/таблица/запрос - роли не должно играть. Аксес действительно накладывает блокировки даже при чтении, и действительно не зависит от способа чтения. Указание типа блокировки для ADO - влияет только на блокировку при записи.

3. снимает блокировку
Только при закрытии набора/таблицы/запроса. AlTis - попробуй это проверить. Т.е. при закрытии 1-м пользователем таблицы тормоза у 2-го исчезают или нет?
...
Рейтинг: 0 / 0
04.06.2003, 17:36
    #32176666
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
2Лох Позорный
Да, тормоза исчезают.
Проделал несколько экспирементов с 2-3 подключениями.
Даже если табл. пустая время открытия неудоволетворительное.
...
Рейтинг: 0 / 0
04.06.2003, 17:58
    #32176697
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Локировка записей???
Скорее всего проблемы при обращении к файлу ldb (это только предположение).
Надо мониторить сервак.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Локировка записей??? / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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