Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
Основное различие шестой и пятой версии?
(support) (1)
“Основное различие шестой и пятой версии?”
Выделено жирным шрифтом в “Краткое описание”.
Лучше было бы, если это было ясно из заголовка
затестил совместимость с прямыми запросами
получается ошибка
FAILED! ICommandText::Execute(): d:\_work est_base
g405.dbf is not a table
применительно к провайдеру OLEDB
Таким образом есть вопрос: «Будет ли возможность использовать 1С++ в части прямых запросов»
Причем:
1. Если применять VFP OLEDB —
будет ошибка «rg405.dbf is not a table»
2. Если применять Advantage OLE DB (читай родной драйвер) —
будет ошибка » Error 7014: Invalid DBF table. Table name: rg405″
Странно что при разработке решения забыли про такой момент как 1С++
А если поместить md файл в саму базу, и в настройках указываать ip адрес для конекта с базой ну и ваши блокировки тоже держать в базе а не в файлах LCK Возможно ли это реализовать?
(desty)
“OLEDB, VFP OLEDB, Advantage OLE DB”
Полученный Вам результат очевиден:
1) В разработке используется не DBF формат файлов.
2) Файлы стандарта ADSа имеют не стандартное (ADT/ADI) расширение, а расширение — DBF/CDX.
«Будет ли возможность использовать 1С++ в части прямых запросов»
Если данная разработка покажет преимущества по скорости в среде 1Са по сравнению с аналогичной разработкой на CodeBase, то будут развиваться средства РУС. В том числе и в части прямых запросов на SQL. Но выполнение прямых запросов будет не через 1С++.
(bpx)
Я не совсем понял — о чём идёт речь.
“А если поместить md файл в саму базу”
Данная разработка не обращается к этому файлу.
“указываать ip адрес для конекта”
Посмотрите описание функции AdsConnect() в Advantage 8.1. Если Ваш вопрос возник в части использования Linux в качестве серверной ОС, то, думаю, задача решается другим способом.
“ваши блокировки тоже держать в базе а не в файлах LCK”
В данной разработке не используются файлы LCK для блокировок.
Чего то как то не сильно заметен прирост. Все отчеты пока формируются дольше…
(miandrew)(8)
«Чего то как то не сильно заметен прирост»
По сравнению с чем? В какой тестовой платформе (сеть, локально, количество пользователей и т.д.)? Если не трудно – поподробней.
Судя по рейтингу – “кривые запросы” для SQL делать не надо. Это радует…
много людей считает, что если разработка не продаётся следовательно автор не надёжен и в любой момент бросит.
или просто не рискуют данными базы….
(angro)
“много людей считает, что если разработка не продаётся следовательно автор не надёжен и в любой момент бросит”
Хорошо, что есть и другие люди. 😉
(miandrew)
“или просто не рискуют данными базы….”
Да. Такие разработки надо хорошо проверять, перед тем как решиться на их использование. Как и любые СУБД. Пример тому ошибка в сервере CodeBase (транзакции при включенной оптимизации). А они продают его больше десяти лет. Продукт – платный. 🙂
to (hogik) Спасибо большое!
А вот с 1С++ было бы все-таки подружить неплохо 🙂
to (all)
http://www.hotsoft.ru/ADS/index.htm
Очень приятно удивил объем инсталлятора ADS и возможности
Про ADS обзорная информация
(Belomor)
“А вот с 1С++ было бы все-таки подружить неплохо”
Если речь идет о прямых запросах, то сделать больше чем в операциях 51-59 РУСа, не удастся. Разработчики ADS сделали типичную ошибку – “навигационный доступ” к данным для свободных (в терминологии словаря данных) таблиц и SQL несовместимы, если использовать ADT/ADI формат таблиц.
(hogik) Ну нет — так нет 🙂 У меня сейчас загружается в ночь одна ядреная базуля, завтра посмотрю на ее быстродействие. Хотя по ощущениям, загрузка идет медленнее, чем родная от 1с. И еще вопрос — обратный переход к родному DBF возможен или пока не реализовывался?
(Belomor)
“по ощущениям, загрузка идет медленнее”
Вы, надо полагать, делаете загрузку на той же машине, где лежит база данных (т.е. не по сети). В таком режиме “родные” DBFы будут работать всегда быстрее. Сравнивать производительность надо при работе в сети.
“обратный переход к родному DBF возможен”
Той же выгрузкой-загрузкой. Обратный конвертор писать не планирую.
Поясните тупому — аналогичная для CodeBase и эта разработка — они как соотносятся? и почему появилась эта? та, что на CodeBase — ее какая судьба будет?
.. и просто интересно: у автора есть статистика работы с «его» серверами с 1С — т.е. сколько народа использует ЭТО в посведневной работе 1С?
(hogik) «Той же выгрузкой-загрузкой» Этого более чем достаточно
«делаете загрузку на той же машине» Так точно. А как работа в пользовательском варианте на той же машине? Тоже чудес ждать не стоит?
(Сhe Burashka)
>> “Поясните тупому”
Шутка, да?
>> “аналогичная для CodeBase и эта разработка — они как соотносятся?”
Делают разработки одно и тоже, но на разных СУБДах.
>> “и почему появилась эта?”
Мне известны всего две СУБД, на которых можно сделать данную разработку. Об ADS я узнал чуть позже, чем о CodeBase – когда разработка на CodeBase уже была опубликована. Но, на мой взгляд, ADS “мощней”, чем CodeBase. Вот и сделал на ADSе. Замечу, что, похоже, разработчики ADSа не знали о существовании CodeBase. Т.к. на сайте, продающем эту СУБД сказано, что она единственная позволяющая организовать клиент/серверную технологию для xBase систем.
>> “та, что на CodeBase — ее какая судьба будет?”
Она живет своей жизнью. Будут ошибки – исправлю.
>> “у автора есть статистика работы с «его» серверами с 1С — т.е. сколько народа использует ЭТО в посведневной работе 1С?”
За народ ничего не скажу. А у нас она работает уже год. Сервер перезапускался только из-за потери электропитания и ошибок администратора БД. Раза два-три… Пару раз переиндексировали базу данных – не по причине заваливания сервера. Недостаток заметили один. На сервере со слабой подсистемой ввода/вывода возникают значительные задержки в интерактивных задачах, если запускается одновременно серьёзный отчет. Я попытался “направить” разработчиков CodeBase на решения этого вопроса – не получилось. Это тоже послужило причиной появления разработки на ADS.
(Belomor)
«А как работа в пользовательском варианте на той же машине? Тоже чудес ждать не стоит?»
Если с сервером БД будут работать другие пользователи по сети, то лучше так не работать. А для регламентных работ так и надо работать. Скорость зависит от задач и самого железа. У меня документы проводятся раза в два быстрее (чем “родные” DBFы), а отчеты – наоборот. Сильно влияет системное кэширование. Повторный запуск отчета выполняется раз в пять быстрее первого запуска. Но, повторюсь, не для этого делался клиент/сервер – в сети, при большом количестве пользователей надо сравнивать.
(hogik) База залетала 🙂
(20) Спасибо за разъяснения. А как-нибудь вечерком по асе можно пообщаться?
(Сhe Burashka)
“по асе можно пообщаться?”
У меня нет асе. Лучше — по обычному телефону.
Где взять Advantage Data Architect 8.1?
(25) Вопрос снят
http://www.hotsoft.ru/ADS/files.htm
Нашел все даже больше здесь
Да уж, цены кусаются за сервер, не дешевле ли купить win2003 и поднять на ней терминал?
Конечно дешевле. Т.к. для использования ADS надо купить и Windows Server и сам ADS.
Поставил на промышленную базу 500 мб.
Юзеров — 8 шт, сервер — 2003 коредуо 2-х ядреный, 2 гиг память.
Неделя работы. Ошибок нет.
Скорость:
отчеты — в 3 раза быстрее,
документы — на прежнему,
списки — летают.
В общем — пока Супер.
Кодебазе отдыхает.
Отдыхает не только CodeBase, но и “родные” DBFы. На базе данных размером в 6 гигабайт (только DBFов) производительность ADS в 2-3 раза выше на самых “тяжелых” задачах. Даже при благоприятном режиме работы “родных” DBFов – монопольном.
На что влияет «Размер страницы в индексных файлах» (Строка № 5: файл DBEng32.ini)
Посмотрите в описании к ADS два раздела:
1) Index Page Size.
2) Index Key Size and Page Size Relationships.
А почему бы не использовать родные дбФ зачем изменять формат не изменяя расширения? Ведь АДС поддерживает ДБФ формат
(33)(pstar)
“А почему бы не использовать родные дбФ”
Формат ADI/ADT имеет ряд преимуществ перед CDX/DBF.
Вот основные:
1) Снято ограничение на размер таблиц в 1(2) гигабайта.
2) Работают быстрей.
3) Поддерживает средство использования пространства от удалённых записей без построения дополнительных индексов.
4) Позволяет изменять размер страницы (блока) индексных файлов.
Есть и недостатки, но их удалось преодолеть.
“зачем изменять формат не изменяя расширения?”
К сожалению, существуют “процессы” в 1С, которые хотят видеть файлы именно с расширениями CDX и DBF. В моей разработке эти “процессы” не перехватываются. Например, после реорганизации схемы базы данных переписываются файлы из рабочего каталога в основной каталог по расширениям CDX и DBF.
“Ведь АДС поддерживает ДБФ формат”
Да.
Результаты тестов производительности ADS 4.3, MS-SQL 6.5 и Borland Interbase 4.2:
http://www.prbank.ru/pbsite.nsf/61272a04b78f320ec3256c70003bf47f/4234c7e1578f75e9c3256c8 400561174?OpenDocument
Тесты несколько устарели…
Вопрос к разработчику: Есть или нет DBEng32.dll для версии сервера 7.1?
(36) «Есть или нет DBEng32.dll для версии сервера 7.1?»
Нет.
смотрю выходит Advantage 9.0. … данная разработка думаю без проблем будет работать и на базе этого сервера?
(38) “…выходит Advantage 9.0. …будет работать и на базе этого сервера?”
Пока только — Beta. Я её еще не пробовал. Нововведений для наших задач там нет.
(37)
Тогда еще один вопрос — а возможно ли? Или чего-то для работы 1С не хватает в 7.1? Есть желание поставить на Linux, для него есть кряк (7.1), 8.1 только триал
(40)
Запуск под Linux интересная и полезная задача. Но рекомендую сначала попробовать в версии 8.1. И если заработает, то дальше решим, что делать с версиями ADSа.
(40)
Проверил под 8.1 Библиотеки и в Linux и в Windows версии 8.10.0.18 (последние) сервер — на базе Linux (триал с оффсайта) клиенты на Windows. Имеем:
Ошибка 6316 — «The version of the Advantage Client Kit driver is newer than the version of the Advantage server. The version of the Advantage server must be the same or greater than the version of the Advantage Client Kit driver. » Пока не разобрался, в чем дело. Если такая же версия сервера запускается под Windows — тогда все ОК. Сегодня попробую качнуть и поставить 9.0. О результатах отпишу.
(42)
Думаю, надо начать с запуска на клиенте под Windows утилиты “Advantage Data Architect 8.1” и попробовать соединиться с сервером, запущенным под Linux. В меню выбрать Tools->RemoteServerInfo, а там ввести значение в поле ServerDrive и нажать кнопку Connect.
(40)
с версией 8.1…
…нужно было поставить adsodbc на сервер с Linux, коннект есть, остались разрешения для файлов, получаю ошибку 7040 «File creation error» будем разбираться с разрешениями в Linux
(44)
В моей разработке ODBC не используется. Чтобы запустить разработку с сервером ADS под Linux надо обеспечить одновременный доступ к файлам базы данных для приложения, работающего в Linux (сервер ADS), и приложения, работающего в Windows (клиент 1С+DBEng32). Это в Linux возможно?
(44)
http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=020312-1400
А без установки ODBC для Linux ругается на версию сервера. Пришлось ставить. После этого ошибка пропала. Разобрались и с 7040. Оказывается, что в корне файловой системы нужно создать зеркало расшареного каталога со всеми вложенными каталогами и файлами. Вот ответ от разработчиков
После копирования папки в корень сразу не работает, 1С ругается насчет транзакций, пришлось тянуть базу в Windows и конвертить с помощью ConvDBF
(46)
Все, с одним пользователем работает :), но тормоза жуткие, надо настраивать ADS сервер
Прошу прощения за флуд, но два Windows клиента с работают на ура :). Осталось победить долгую загрузку структуры данных и потестить на большем количестве пользователей
(46-47) Молодец. Спасибо.
Долгая загрузка структуры данных в монопольном режиме? При первом входе в 1Су? А как вообще производительность? И по сравнению, с каким использованием 1Са?
(49)
Долгая загрузка структуры данных программы при любом входе, я думаю, это чисто сетевая проблема. Производительность как на локальной базе практически. Но есть еще одна проблема, пока не знаю из-за чего… Еще трех клиентов не удается подключить, ошибка 6420, пока непонятно, боремся :)…
(50)
Ошибка 6420, думаю, из-за ограничения на пять пользователей для демо-версии. Долгая загрузка, именно, структуры данных или долго открываются файлы? Спрашиваю об этом потому, что у меня были сложности и при использовании Windows версии. Но в этом направлении мне можно работать дальше. Очень радует, что производительность близка к режиму работы локальной базы. Может мне пора заняться версией 7.1, а Вам (если есть желание) написать маленькую инструкцию по установке системы на Linux для публикации на данном сайте? Я посмотрел описание версии 7.1. На первый взгляд проблем не будет. Но отлаживать работу с самим сервером придётся на Вашей территории.
(51)
Инструкцию написать несложно, вот только разберемся с ошибкой, т.к. пока удалось запустить только двух пользователей. Как запустим 5, тогда можно будет говорить об успешной установке и настройке.
Странно это. Такое впечатление, что ОНО считает один вход за два. А что показывает “Advantage Configuration Utility”?
(51)
Все, пофиксили, ADS.INI поправили и положили в каталог bin, все заработало
(53)
Нет, ОНО не считает один вход за два, просто по умолчанию ищет конфигурацию в каталоге …1cv77in. И кстати, снесли сервер 8.1, поставили версию 7.1, в …1cv77in кинули библиотеки ace32.dll версии 7.10.0.15 и axcws32.dll версии 7.10.0.1 из пакета aceapi для версии 7.1. РАБОТАЕТ!!! 🙂
(51)
http://infostart.ru/blogs/352/manual.php . Для 8.1 версии.
Добавлена сборка для Advantage 7.1.
Прочитал: документацию к разработке, все отзывы здесь, посмотрел на цену ADS.
Да, действительно, видимо работает быстрее и надежнее DBF/SQL (надежнее DBF, быстрее SQL).
НО сервер ADS не «бесплатный».
Вопрос: Может быть всетаки есть смысл сделать аналогичную разработку на бесплатном сервере (Firebird, MySQL, Postgresql …).
При этом я понимаю что это будет работать медленнее чем CodeBase и ADS по причинам описанным Вами в «DBEng32.doc».
Но решит проблему «1Гб» дбф версии,
плюс бесплатность и надежность SQL — серверов,
плюс на linux ставить и обслуживать легче…
Может быть есть возможность сделать такую «Вестчь» как транслятор из обращений к MSSQL в обращения к другому бесплатному SQL серверу? Типа как делает «WINE@Etersoft SQL» в linux?
В любом случае спасибо за Ваш труд.
(58)(shoorlo)
http://infostart.ru/projects/811/
http://infostart.ru/projects/2127/
http://infostart.ru/profile/2905/projects/1725
http://infostart.ru/projects/811 и в этой разработке режим файл-сервер бесплатный. Т.е. использование в режиме терминал-сервер данной разработки снимает ограничение на размер (в рамках разумного) таблицы базы данных.
“Может быть есть возможность сделать такую «Вестчь» как транслятор из обращений к MSSQL в обращения к другому бесплатному SQL серверу?”
На уровне интерфейса DBEng32 – нет.
См. ответ (110) в
См. ответ (128) в
“это будет работать медленнее чем CodeBase и ADS”
О скорости разговора не возникнет. На маленькой базе это будет работать, а на большой базе оценить скорость будет не возможно. Не дождётесь результата. Но для маленьких баз и DBFная версия работает не плохо.
“Типа как делает «WINE@Etersoft SQL» в linux?”
Но это уже сделано. И это, думаю, единственный способ посадить 1С на другой SQLной сервер. Однако меня в этой разработке смущает (теоретически) скорость работы такого решения исходя из моего понимания MS SQL и PostgreSQL. Т.к. (практически) такую реализацию я начинал делать. И отказался от такого решения.
“Но решит проблему «1Гб» дбф версии,”
Расширение с 1 на 2 гигабайта сделано в
Расширение до 2147483647 записей сделано в
“надежнее DBF/SQL (надежнее DBF, быстрее SQL).”
Я и к DBF добавил бы слово “скорость”. Т.к. по моим оценка на нашей системе оно работает быстрее, чем штатные DBFы.
“НО сервер ADS не «бесплатный».”
Я данную разработку делал как конкурент MS SQLному решению. Как в части выигрыша скорости без переделки конфигурации, так и в части цены.
Спасибо за полный ответ.
Ну вот, свершилось! Сразу хочу выразить автору огромнейший РЕСПЕКТ!!
Ситуация:
База около 10 Гб, УРБД — 10 филиалов, при слиянии двух фирм, и переносе остатков размер 1SENTRY.DBF в центральной БД резко скакнул за 2Гб.
И как следствие — все ВСТАЛО!
Перевод на СКЛь центральной БД особо не помогал ,т.к. на периферийках размер злосчатсной таблицы проводок подкатывал так же к критическому порогу в 2 147 483 648 байт, и запаса хватало на 2-3 дня работы.
Перевод на СКЛь всех филиалов в кратчайшие сроки (1-2 дня) так же не реален, ибо некоторые филиалы в самом захолустье региона с интернетом, который «то потухнет / то погаснет»
Итог:
1 . используя данную разработку разбросал по филиалам дистрибутив (вместе с сервером ADS = 16 мб в архиве) и за 2 дня перевел половину баз на ADS
2. 4 дня — полет нормальный — по скорости — так же как в ДБФ (отчеты — немного быстрее), транзакции перестали доставать.
Замечание:
при конвертации баз ИМХО быстрее использовать ConvDBF.exe, нежели выгрузку/загрузку. У меня по времени получилось — Conv — около 3 часов, а вот с загрузкой «попал» на 16 часов (хотя может и на сервере были какие проблемы..)
Вобщем, сие творение — спасательный круг для варианта «между СКЛь и ДБФ»!
Еще раз огромное спасибо!
Почему то долго документы делаются не проведенными (ок. 10000 строк проводок)- до 20-30 мин., а проводятся относительно быстро — 5-10 мин.
Платформа 025, Бухгалтерия рел. 493, DBEng32 (Сборка версии 6.0.1.4)
(62)(Albert)
А с родными DBFами, в аналогичных условиях запуска сессии 1С, сколько минут выполняются эти действия?
(63) С родными DBF: сделать не проведенным 6 мин., провести 10 мин.
У документа 17 тыс. проводок.
(61) > т.к. на периферийках размер злосчатсной таблицы проводок
а имеет ли смысл в центре иметь детальную до гвоздя проводку???
(64)(Albert)
Возможно влияет кэширование на стороне сервера. Меняется время, если выполнить депроведение после проведения? В каком режиме проводится замер — монопольно, локально и т.д.? Используется операция #61 из РУСа?
(65) наверное имелось ввиду «в периферийке» а не «в центре»?
смысла конечно не имеет, только так уж исторически сложилось (и это необходимо), что миграция по основным документам «все — везде»
(64) Терминальный сервер (проц. Q6600, ОЗУ 4 Гб, Win server 2003 SE):
-1С 7.70.025
-Advantage Server 8.10.0.18
Соответственно захожу по терминальной сессии монопольно. Никакие операции из РУСа не использую.
Замечено: на диске С: в момент проведения/депроведения создаётся файл с расширением *.TPS. Причем при проведении он достигает размера 120 мб (для документа с 4774 проводками), а при депроведении 60 мб. Но скорость создания этого файла в 2-3 раза (условно) быстрее при проведении.
Время, если выполнить депроведение после проведения, не меняется (по-моему).
З.Ы. Есть документ с 17 тыс. проводками, так файл *.TPS достигал 900 мб.
(68)(Albert)
Если у Вас есть возможность, поставьте в глобальном модуле вызов: EXT._(61,»»,1), загрузив внешнюю компоненту AddInExt. Интересно, изменится ли время депроведения документа?
(68)(Albert)
Я выяснил, что причина медленного депроведения документов и большого файла *.TPS в большом количестве удаляемых записей в рамках одной транзакции. Так криво это у них реализовано. Я проверил это и в версии 8.10.0.38 — никакой разницы. Думаю, ускорить этот процесс можно путем разнесения базы данных и *.TPS на разные жесткие диски. Как это обойти в DBEng32 — пока, не придумал. Вопрос к Вам. Зачем использовать Advantage в режиме терминал сервер? Если из-за размеров таблиц, то, на мой взгляд, логичнее использовать DBEng32 для CodeBase 6.5 в режиме ПДБД. Бесплатно, нет ограничения на количество пользователей, размер таблиц не ограничен 1(2) гигабайтами, скорость работы как в локальном режиме родных DBFов, имеются полезные настройки, устранены врожденные клинчи и т.д.
(69) Время депроведения не меняется 🙁
Буду пробовать CodeBase…
(70) А из формата Advantage в CodeBase есть конвертер?
(72) Нет.
(hogik) Очень интересная разработка.
Существует ли возможность разнести файлы конфигурации (*md) и файлы базы (dbf) в разные каталоги для работы пользователей, т.е. закрыть для пользователя файлы БД? Если я правильно понял, это возможно для CodeBase.
(74)(AL2004)
Для Advantage — нельзя. Для CodeBase — не рекомендуется, т.к. не будет работать реорганизация БД, тестирование и исправление ИБД, реиндексация и т.д.
(hogik)
Спасибо за ответ. Для проекта желательно разнести конфигурацию и базу данных, модификация и переиндексация базы будет осуществляться локально на сервере. Что посоветуете?
Ранее была Ваша информация о соотношении производительности ADS/CodeBase как 5/1 на операциях чтения.
Информация на текущих релизах актуальна?
(76)(AL2004)
http://infostart.ru/blogs/482/
«желательно разнести конфигурацию и базу данных… Что посоветуете?»
В этом случае посоветую MS SQL ;-)))
«ADS/CodeBase как 5/1 на операциях чтения»
На «тупых» операциях чтения почти 1/1. См.
«Информация на текущих релизах актуальна?»
По нашему опыту эксплуатации на Advantage (в сетевом режиме, на реальных задачах, без изменения конфигурации) работает в два (и более) раза быстрее чем родные DBF. А на CodeBase (в наших условиях) работает медленнее чем родные DBF. Но это зависит от задач, количества пользователей, железа и т.д.
Хочу попробовать Вашу разработку, 1С БД под SQL ~ 20 ГБ, сконвертировать в DBF нет возможности, т.к. размер некоторых таблиц первышает 2 ГБ. Выгрузил БД в csv формат. Могу ли я воссоздать структуру и данные в ADT/ADI, используя Advantage Data Architect (Tools — Import data — Delimited Text File)? Или можно как-то по другому ?
(78)(kerya33)
http://infostart.ru/projects/1512/
«Или можно как-то по другому ?»
Можно использовать штатные средства конфигуратора выгрузить/загрузить данные. Для больших баз данных —
База 1.5 Гб. Максимальный размер DBF — 500 Мб.
1. Терминалка + DBEng32 6.0.1.5 + Advantage 9.0
2. Терминалка + DBF + патченый dbeng32.dll (для включения кэширования записи на диск)
Погонял и так и эдак. Быстродействие второго варианта выше минимум раза в 2 как на отчетах, так и на проведении/распроведении. Даже при двукратном использовании тех же документов и отчетов (так что кэш Advantage тут не причем). Единственное, что понравилось в первом варианте — то что индексы не рушатся при нештатном завершении сеанса 1С, но жертвовать ради этим быстродействием в разы я не готов, да и в терминалке эта проблема не так актуальна.
(80) а что за патч такой для включения кэширования? Где почитать/попробывать?
(81)http://www.kb.mista.ru/article.php?id=136
читай в конце страницы…
искать в закромах саму библиотеку-лень..где-то валялась 🙂
(80) гонял аналогично, забил на адвантадж.. Он подойдет только, если исключить Терминал из цепочки, как альтернатива скулю…
Имхо.
(82) а включение кэширование записи в свойствах самого винта — это не то?
(82) неа.. 🙂
(80)(maljaev)
http://infostart.ru/forum/forum16/topic8048/messages/ И, думаю не придется использовать «патченый dbeng32.dll (для включения кэширования записи на диск)» в ущерб надежности системы.
А почему возникает желание проверять клиент/серверную СУБД в режиме «Терминалка + DBEng32 6.0.1.5 + Advantage 9.0»? Чего мне надо написать в инструкции, чтобы люди не тратили своё время на такие проверки? Для терминального режима логичнее использовать разработку на «CodeBase 6.5» в режиме ПДБД используя RAM диск для файла транзакций. По скорости работы в локальном режиме посмотрите
(81)(JohnyDeath)
Не рекомендую использовать этот «патч…для включения кэширования».
(87) Да уж год как с этим патчем и сам, и клиенты в терминалке работают — полет нормальный, никаких нареканий. На одной из баз (где документ при проведении создает еще несколько подчененных) скорость проведения этого документа при использовании патча возрастает где-то в 10 раз по сравнению с типовым, почему так сильно и сам незнаю. Но патч можно юзать либо на локальной базе, либо в терминалке. В сетевом доступе — ни в коем разе!
P.S. А с CodeBase поколдую на досуге…
(88)(maljaev)
«скорость…возрастает…в 10 раз…, почему так сильно и сам незнаю»
;-))) А я знаю, поэтому и не рекомендую его использовать.
Вызов FlushFileBuffers() в многопользовательских системах используется для гарантированного предоставления непротиворечивой информации после обновления информации одной задачей для другой. Для этого, при записи, выполняется примерно такая последовательность операций:
1) Блокировать «семафор».
2) Обновить группу связанных записей.
3) Сбросить буфера на диск.
4) Разблокировать «семафор».
Читающая задача опрашивает «семафор» и начинает чтение данных только после его разблокировки. Что произойдет если поменять местами операции #3 и #4? Читающая задача может получить противоречивую информацию, т.к. часть связанных записей не будет находиться на диске. А именно это и делается, если не выполнять операцию #3 и отдать сброс буферов на откуп операционной системе. А предложение автора данного «патча» о выборочном сбросе буферов (в части *.CDX) ошибочно, т.к. такая, в частности, последовательность операций выполняется при обновлении и чтении индексный файлов.
После моих неудачных экспериментов с wine@etersoft, postgre и selta,http://linuxforum.ru/index.php?s=4aa56fdbdac796163b8b8d3745acc6ee&showtopic=83515 решил попробовать Вашу разработку. Выгрузив по Вашему совету почти 30Гб базу компонентой от romix’а, загрузил ее под ADS server на windows. Размер некоторых таблиц достигал 3Гб, но производительность при работе с журналами и списками стала на порядок выше, чем в selta. Поднял ADS на линукс (спасибо @lex, кстати никакие adsodbc не потребовались). 1С из под windows работает нормально. Установил 1С под wine@etersoft на ту же машину, что и ADS. Advantage Data Architect тоже из под wine@etersoft нормально видит и локальный сервер и удаленный (сервер в локальной сети так-же пробовол и под windows и под linux). 1C из под wine коннектится и к локальному и к к удаленному (через cifs) ресурсу. Но вот ошибку 7040 «File creation error» так и не смог победить. Подозреваю, что это из за того, что wine имеет ограниченную область видимости в linux, а ADS-у под линукс нужно зеркало расшареного ресурса в корне. Очень хочется подружить ADS и 1С клиента под линукс. Посмотрел в сторону Вашей разработки на Codebase, но нигде в сети не могу найти Codebase сервер под линукс. Может кто, поможет … советом.
(90)(kerya33)
То, что при работе с журналами и списками скорость будет выше, чем при использовании «selta» — понятно и без загрузки базы данных 😉 Странно, что разработчики этой «selta» не сообразили это до начала реализации своей разработки. А всё остальное как быстро работает?
Про CodeBase под Linux информация от Sequiter Inc: «CodeBase for Linux has client/server support. However, client/server support does not work across different operating systems, such as between Windows and Linux.»
(91)(hogik)
В разделе «Тестирование и исправление информационной базы» — «Проверка физической целостности» конфигуратора при работе с ADS возникает ошибка DBEng32 #023 (Invalid path for 1CV7.DD). Так и должно быть ?
Имеет ли смысл пункт «Упаковка таблиц информационной базы» при работе с ADS ?
(93)(kerya33)
«Проверка физической целостности» конфигуратора при работе с ADS возникает ошибка DBEng32 #023 (Invalid path for 1CV7.DD).»
DBEng32.doc->РазделЭксплуатация->ПунктНомер3
«Имеет ли смысл пункт «Упаковка таблиц информационной базы» при работе с ADS ?»
Не имеет смысла, и не выполняется если включено.
«остановлюсь на чем то — буду тестировать конкретно.»
А какое время загрузки базы? А в сравнении с SQLной версией 1Са?
(94)(hogik)
«DBEng32.doc->РазделЭксплуатация->ПунктНомер3»
Извиняюсь за невнимательность, совсем голова уже опухла …
«А какое время загрузки базы? А в сравнении с SQLной версией 1Са?»
Из 1С загрузку и выгрузку на SQL версии я не делал, просто подключал копию рабочей SQL-ной базы на машину, где начал тестирование. Загружал SQL БД только через selta под wine примерно 20 часов. Выгруженый файл romix.dat из SQL БД ~ 2,5Гб грузился в ADS под DBF-ной 1С не помню сколько, но гораздо быстрее, чем selta в postgres. Единственное, чего не стал дожидаться для тестов, это перерасчета итогов (которые как я понимаю делаются во время загрузки). В SQL ной конфигурации были задействованы «быстрые итоги», я с этим пока не разбирался.
Некоторые итоги тестирования: (не связанные с расчетом итогов)
Формирование реестра документов:
ms SQL на локальной машине -10 мин
ADS под win на этой же машине — 9 мин 45 сек 😉
ADS под Linux в локалке — 12 мин
Но на машине с Linux в 6 раз меньше памяти, да и помедленней она. Несколько (~ на 10%) снижается нагрузка на процесс 1С.exe в винде при работе с удаленным ADS. Радует что DBF версия 1С при работе с ADS на удаленной машине загружает 100 Мбит сеть на ~ на 4% (для чистоты эксперимента сетка домашняя, в ней жили только эти две машины), adsd демон под линем (собственно сам ADS сервер) во время работы отъедает 40 — 50 % процессорных ресурсов, посмотрим, что будет на нескольких запущеных задачах по сравнению с ms SQL.
(96)(kerya33)
«Единственное, чего не стал дожидаться для тестов, это перерасчета итогов»
На моих тестах пересчет итогов занимает бОльшую часть времени загрузки. Но я приспособился это делать через «DBEng32 для CodeBase 6.5». Сначала делаю загрузку в базу данных CodeBase в режиме ПДБД (работает быстро), затем конвертирую базу в родные DBFы, а потом конвертирую в базу Advantage. Единственно, что не проверял — как себя поведут конверторы при размере родных DBFов больше 2 гигабайт. Формально, должно работать…
(97)(kerya33)
«на Linux крутится ADS 7.1 на win — 8.1, но думаю это не принципиально»
По скорости и надежности ничего не скажу, т.к. 7.1 не пробовал. Но совместимость моих DLL и EXE есть. Достаточно в BIN каталог 1Са положить ace32.dll и axcws32.dll из версии 7.1. Похоже, что и для версии 9.х не требуется повторная компиляция моих библиотек. В этой части они молодцы, в отличии от Sequiter, где приходится, при переходе с версию на версию, компилировать всё заново.
(98)(hogik)
«На моих тестах пересчет итогов занимает бОльшую часть времени загрузки.»
Это я уже понял, когда после 100% загрузки romix.dat база шуршала еще энное количество времени и мне пришлось прервать процесс.
«затем конвертирую базу в родные DBFы», «как себя поведут конверторы при размере родных DBFов больше 2 гигабайт»
Чет, вот здесь я туплю. Конверторы может и отработают, а вот как родные DBF размером больше 2Гб можно получить? На начальном этапе (до Вашего совета по выгрузке через romix.dat) пользовал «Data Export 2007 for SQL server», там база реально только в csv выгрузилась, в DBF тоже выгрузилась, вот только большие таблицы все стали ровно 2Гб, что уж там внутри я смотреть не стал 😉 Если можно поподробнее про DBF>2Гб, как раз хотел базу приводить к нормальному виду (с перерасчетом итогов).
«Достаточно в BIN каталог 1Са положить ace32.dll и axcws32.dll из версии 7.1»
А без этой манипуляции с ADS 7.1 под линуксом ничего жить и не хотело.
«Похоже, что и для версии 9.х не требуется повторная компиляция моих библиотек»
Ага, работает с библиотеками от 9.1, вот только триал коды с ОФ сайта на 9.1 под Linux они заявляют на 30 дней тестирования, а Data Architect мне показала Evolution Date 10 дневным сроком. Я не стал заморачиваться и поставил под линь ADS 7.1
(96)(kerya33)
«Если можно поподробнее про DBF>2Гб,…»
Ставим разработку под CodeBase 6.5 — только клиентскую часть (каталог BIN). Ставим «патч» от Романа. Запускаем сессию 1С в режиме ПДБД (в окне запуска сессии ставим маршрут к базе на локальном диске). Загружаем штатными средствами базу данных. Загрузка в CodeBase 6.5 пройдет (и относительно быстро), т.к. в нем ограничение на количество записей, а не размер файла (2 147 483 647 штук). Сохраняем результат. Далее запускаем ConvDBF с флагом «/-«. Сравниваем суммарный размер всех DBFов с сохраненным результатом. Если совпадает идем дальше, если нет — сообщаем мне и я буду разбираться. Далее ставим разработку на Advantage. Запускаем ConvDBF (из Advantage) без параметров. Сравниваем полученные размеры с сохраненными. Они должны отличаться не значительно, т.к. размер записей Advantage на 4 байта больше размера записи стандартного DBFа. И еще немного отличается размер заголовка файла. Всё…
(100)(hogik)
Спасибо, обязательно буду пробовать, о результатах отпишу.
(100)(hogik)
Загрузил БД в codebase, ставил только клиентскую часть.
3 ч 20 мин подгружался romix.dat, и потом после формирования recalc.cmd еще 11 часов формировались итоги/остатки и индексы. Отработало все до конца, и это действительно быстрее загрузки в ADS, поскольку, как я писал выше, что расчет итогов в ADS мне пришлось прервать на аналогичной операции. Конвертер в ADS пока не запускал, решил потестировать «as is»
«Реестр документов»
Codebase режиме ПДБД — 1 мин 22 сек
MS SQL — ~2мин
ADS — ~2 мин.
А вот для «Анализ счета по субконто», результаты чет совсем не утешают:
MS SQL — 36 сек
Codebase ПДБД — 206 сек
ADS — 574 сек
Может нужно смотреть сам расчет, поскольку конфигурация перенесена из 1сSQL на 1сDBF-ную версию ?