Автор | Сообщение |
|
| |
Пост 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.
|
|
|
Ответов - 10
[только новые]
|
|
|
| Администратор
|
Пост N: 4091
Зарегистрирован: 23.05.05
|
|
Отправлено: 06.11.22 14:24. Заголовок: Я с ads не имел дел ..
Я с ads не имел дел не помню сколько, но точно больше десяти лет AdsLocking равная True это ADS_PROPRIETARY_LOCKING, т.е. Ads открывает файл монопольно, т.е никому больше открыть файл не даст. Это в принципе невозможно
|
|
|
|
| |
Пост N: 7716
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.11.22 14:25. Заголовок: Печально... :sm20:..
Печально...
|
|
|
|
| Администратор
|
Пост 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 записей или еще больше
|
|
|
|
| |
Пост N: 7717
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.11.22 14:33. Заголовок: Так а средствами ADS..
Так а средствами ADS нельзя скопировать как файл или там ни чего такого для этого нет ?
|
|
|
|
| постоянный участник
|
Пост 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 минуты |
| может не так страшно Но вариант брать только измененные, нравится больше
|
|
|
|
| |
Пост N: 7718
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.11.22 15:00. Заголовок: SergKis пишет: може..
SergKis пишет: так это только 1 файлик а общий вес базы 10 гиг
|
|
|
|
| Администратор
|
Пост N: 4093
Зарегистрирован: 23.05.05
|
|
Отправлено: 06.11.22 15:05. Заголовок: Может стоит закрыть ..
Может стоит закрыть базу, скопировать ее как набор файлов, и открыть вновь ?
|
|
|
|
| |
Пост N: 7719
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.11.22 15:06. Заголовок: Pasha пишет: AdsCac..
Pasha пишет: Поигрался цифрами от 50 до 10000 , на 20 сек быстрее всего лишь.
|
|
|
|
| постоянный участник
|
Пост N: 4176
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.11.22 15:14. Заголовок: Dima пишет так это т..
Dima пишет цитата: | так это только 1 файлик а общий вес базы 10 гиг |
| В целом, это без разницы (если нет и сервера "зеркала"), копии нужны и сколько времени надо для этого НЕ ВАЖНО, если надо час или более, главное не останавливая работу с базой в момент копирования. Если есть возможность добавить поле TimeStamp, делать это + триггер сервера для заполнения его (поле # заполняет rdd) при изм. любого поля в записи. Возможно у самых "емких" таблиц и брать только измененные записи. Для мало изменяемых таблиц, можно брать копию и журналы log после нее. В целом вариантов не так много, а копии нужны всегда
|
|
|
|
| moderator
|
Пост N: 1482
Зарегистрирован: 06.07.06
|
|
Отправлено: 06.11.22 20:40. Заголовок: Dima пишет: Так а с..
Dima пишет: цитата: | Так а средствами ADS нельзя скопировать как файл или там ни чего такого для этого нет ? |
| В тех версиях, с которыми я когда-то имел дело, таких средств не было.
|
|
|
|