On-line: Oskar_AAA, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост N: 7715
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.11.22 19:24. Заголовок: Вопрос к Паше или Александру по ADS


Есть функция AdsCopyTable , работает довольно медленно.
База в ~1.5 гига , копируется 3 минуты , при чем установка AdsLocking , False или True
на скорость ни как не влияет.
Можно ли на Сях написать AdsCopyFile , что бы он работал нормально при AdsLocking
равной True и что бы это была именно файловая операция ?
Hb_fcopy делает тоже самое за 55 сек , при AdsLocking равной False.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 10 [только новые]


Администратор




Пост N: 4091
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.11.22 14:24. Заголовок: Я с ads не имел дел ..


Я с ads не имел дел не помню сколько, но точно больше десяти лет
AdsLocking равная True это ADS_PROPRIETARY_LOCKING, т.е. Ads открывает файл монопольно, т.е никому больше открыть файл не даст.
Это в принципе невозможно

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7716
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.11.22 14:25. Заголовок: Печально... :sm20:..


Печально...

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4092
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.11.22 14:29. Заголовок: вот фрагмент из доки..


вот фрагмент из доки:

When Advantage Proprietary Locking is used, files are opened in an exclusive mode. Since the files cannot be opened by non-Advantage users, the Advantage Database Server can assume the environment is Advantage-only and internally maintains specific locking information. Non-Advantage applications can not open the files. Likewise, the Advantage Database Server cannot open files that were opened by some other application.

Но по другому и быть не может. Копирование по записям всегда будет на порядок медленнее чтения/записи с использованием большого буфера

Можно задать AdsCacheRecords побольше, хоть 1000 записей или еще больше

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7717
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.11.22 14:33. Заголовок: Так а средствами ADS..


Так а средствами ADS нельзя скопировать как файл или там ни чего такого для этого нет ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4175
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.11.22 14:53. Заголовок: Dima Если есть поле..


Dima
Если есть поле TimeStamp в таблицах (типа #), то можно один раз взять всю базу, потом брать только изменения от взятого ранее. Так делаю давно еще с clipper+mysql\firebird\dbf.
Для базы firebird (записей от ~2 500 000-~10 000 000) каждые два часа планировщик запускает gbak.exe (копия данных всей базы), работает от 3-5 минут не останавливая работу с базой
 цитата:
База в ~1.5 гига , копируется 3 минуты


может не так страшно
Но вариант брать только измененные, нравится больше

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7718
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.11.22 15:00. Заголовок: SergKis пишет: може..


SergKis пишет:

 цитата:
может не так страшно


так это только 1 файлик а общий вес базы 10 гиг

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4093
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.11.22 15:05. Заголовок: Может стоит закрыть ..


Может стоит закрыть базу, скопировать ее как набор файлов, и открыть вновь ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7719
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.11.22 15:06. Заголовок: Pasha пишет: AdsCac..


Pasha пишет:

 цитата:
AdsCacheRecords


Поигрался цифрами от 50 до 10000 , на 20 сек быстрее всего лишь.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4176
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.11.22 15:14. Заголовок: Dima пишет так это т..


Dima пишет
 цитата:
так это только 1 файлик а общий вес базы 10 гиг


В целом, это без разницы (если нет и сервера "зеркала"), копии нужны и сколько времени надо для этого НЕ ВАЖНО, если надо час или более, главное не останавливая работу с базой в момент копирования. Если есть возможность добавить поле TimeStamp, делать это + триггер сервера для заполнения его (поле # заполняет rdd) при изм. любого поля в записи. Возможно у самых "емких" таблиц и брать только измененные записи. Для мало изменяемых таблиц, можно брать копию и журналы log после нее. В целом вариантов не так много, а копии нужны всегда

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1482
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.11.22 20:40. Заголовок: Dima пишет: Так а с..


Dima пишет:

 цитата:
Так а средствами ADS нельзя скопировать как файл или там ни чего такого для этого нет ?


В тех версиях, с которыми я когда-то имел дело, таких средств не было.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 408
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет