DBEng32 (6.0.4.2, Advantage 8.1/9.1) — клиент/серверное использование DBFной версии 1С:Предприятие 7.7

99 Comments

  1. support

    Основное различие шестой и пятой версии?

    Reply
  2. hogik

    (support) (1)

    “Основное различие шестой и пятой версии?”

    Выделено жирным шрифтом в “Краткое описание”.

    Reply
  3. support

    Лучше было бы, если это было ясно из заголовка

    Reply
  4. lustin

    затестил совместимость с прямыми запросами

    получается ошибка

    FAILED! ICommandText::Execute(): d:\_work est_base
    g405.dbf is not a table

    применительно к провайдеру OLEDB

    Таким образом есть вопрос: «Будет ли возможность использовать 1С++ в части прямых запросов»

    Reply
  5. lustin

    Причем:

    1. Если применять VFP OLEDB —

    будет ошибка «rg405.dbf is not a table»

    2. Если применять Advantage OLE DB (читай родной драйвер) —

    будет ошибка » Error 7014: Invalid DBF table. Table name: rg405″

    Странно что при разработке решения забыли про такой момент как 1С++

    Reply
  6. bpx

    А если поместить md файл в саму базу, и в настройках указываать ip адрес для конекта с базой ну и ваши блокировки тоже держать в базе а не в файлах LCK Возможно ли это реализовать?

    Reply
  7. hogik

    (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 для блокировок.

    Reply
  8. miandrew

    Чего то как то не сильно заметен прирост. Все отчеты пока формируются дольше…

    Reply
  9. hogik

    (miandrew)(8)

    «Чего то как то не сильно заметен прирост»

    По сравнению с чем? В какой тестовой платформе (сеть, локально, количество пользователей и т.д.)? Если не трудно – поподробней.

    Reply
  10. hogik

    Судя по рейтингу – “кривые запросы” для SQL делать не надо. Это радует…

    Reply
  11. angro

    много людей считает, что если разработка не продаётся следовательно автор не надёжен и в любой момент бросит.

    Reply
  12. miandrew

    или просто не рискуют данными базы….

    Reply
  13. hogik

    (angro)

    “много людей считает, что если разработка не продаётся следовательно автор не надёжен и в любой момент бросит”

    Хорошо, что есть и другие люди. 😉

    (miandrew)

    “или просто не рискуют данными базы….”

    Да. Такие разработки надо хорошо проверять, перед тем как решиться на их использование. Как и любые СУБД. Пример тому ошибка в сервере CodeBase (транзакции при включенной оптимизации). А они продают его больше десяти лет. Продукт – платный. 🙂

    Reply
  14. Belomor

    to (hogik) Спасибо большое!

    А вот с 1С++ было бы все-таки подружить неплохо 🙂

    to (all)

    Очень приятно удивил объем инсталлятора ADS и возможности

    Про ADS обзорная информация http://www.hotsoft.ru/ADS/index.htm

    Reply
  15. hogik

    (Belomor)

    “А вот с 1С++ было бы все-таки подружить неплохо”

    Если речь идет о прямых запросах, то сделать больше чем в операциях 51-59 РУСа, не удастся. Разработчики ADS сделали типичную ошибку – “навигационный доступ” к данным для свободных (в терминологии словаря данных) таблиц и SQL несовместимы, если использовать ADT/ADI формат таблиц.

    Reply
  16. Belomor

    (hogik) Ну нет — так нет 🙂 У меня сейчас загружается в ночь одна ядреная базуля, завтра посмотрю на ее быстродействие. Хотя по ощущениям, загрузка идет медленнее, чем родная от 1с. И еще вопрос — обратный переход к родному DBF возможен или пока не реализовывался?

    Reply
  17. hogik

    (Belomor)

    “по ощущениям, загрузка идет медленнее”

    Вы, надо полагать, делаете загрузку на той же машине, где лежит база данных (т.е. не по сети). В таком режиме “родные” DBFы будут работать всегда быстрее. Сравнивать производительность надо при работе в сети.

    “обратный переход к родному DBF возможен”

    Той же выгрузкой-загрузкой. Обратный конвертор писать не планирую.

    Reply
  18. CheBurator

    Поясните тупому — аналогичная для CodeBase и эта разработка — они как соотносятся? и почему появилась эта? та, что на CodeBase — ее какая судьба будет?

    .. и просто интересно: у автора есть статистика работы с «его» серверами с 1С — т.е. сколько народа использует ЭТО в посведневной работе 1С?

    Reply
  19. Belomor

    (hogik) «Той же выгрузкой-загрузкой» Этого более чем достаточно

    «делаете загрузку на той же машине» Так точно. А как работа в пользовательском варианте на той же машине? Тоже чудес ждать не стоит?

    Reply
  20. hogik

    (Сhe Burashka)

    >> “Поясните тупому”

    Шутка, да?

    >> “аналогичная для CodeBase и эта разработка — они как соотносятся?”

    Делают разработки одно и тоже, но на разных СУБДах.

    >> “и почему появилась эта?”

    Мне известны всего две СУБД, на которых можно сделать данную разработку. Об ADS я узнал чуть позже, чем о CodeBase – когда разработка на CodeBase уже была опубликована. Но, на мой взгляд, ADS “мощней”, чем CodeBase. Вот и сделал на ADSе. Замечу, что, похоже, разработчики ADSа не знали о существовании CodeBase. Т.к. на сайте, продающем эту СУБД сказано, что она единственная позволяющая организовать клиент/серверную технологию для xBase систем.

    >> “та, что на CodeBase — ее какая судьба будет?”

    Она живет своей жизнью. Будут ошибки – исправлю.

    >> “у автора есть статистика работы с «его» серверами с 1С — т.е. сколько народа использует ЭТО в посведневной работе 1С?”

    За народ ничего не скажу. А у нас она работает уже год. Сервер перезапускался только из-за потери электропитания и ошибок администратора БД. Раза два-три… Пару раз переиндексировали базу данных – не по причине заваливания сервера. Недостаток заметили один. На сервере со слабой подсистемой ввода/вывода возникают значительные задержки в интерактивных задачах, если запускается одновременно серьёзный отчет. Я попытался “направить” разработчиков CodeBase на решения этого вопроса – не получилось. Это тоже послужило причиной появления разработки на ADS.

    Reply
  21. hogik

    (Belomor)

    «А как работа в пользовательском варианте на той же машине? Тоже чудес ждать не стоит?»

    Если с сервером БД будут работать другие пользователи по сети, то лучше так не работать. А для регламентных работ так и надо работать. Скорость зависит от задач и самого железа. У меня документы проводятся раза в два быстрее (чем “родные” DBFы), а отчеты – наоборот. Сильно влияет системное кэширование. Повторный запуск отчета выполняется раз в пять быстрее первого запуска. Но, повторюсь, не для этого делался клиент/сервер – в сети, при большом количестве пользователей надо сравнивать.

    Reply
  22. Belomor

    (hogik) База залетала 🙂

    Reply
  23. CheBurator

    (20) Спасибо за разъяснения. А как-нибудь вечерком по асе можно пообщаться?

    Reply
  24. hogik

    (Сhe Burashka)

    “по асе можно пообщаться?”

    У меня нет асе. Лучше — по обычному телефону.

    Reply
  25. item

    Где взять Advantage Data Architect 8.1?

    Reply
  26. item

    (25) Вопрос снят

    Нашел все даже больше здесь http://www.hotsoft.ru/ADS/files.htm

    Reply
  27. sergling

    Да уж, цены кусаются за сервер, не дешевле ли купить win2003 и поднять на ней терминал?

    Reply
  28. hogik

    Конечно дешевле. Т.к. для использования ADS надо купить и Windows Server и сам ADS.

    Reply
  29. item

    Поставил на промышленную базу 500 мб.

    Юзеров — 8 шт, сервер — 2003 коредуо 2-х ядреный, 2 гиг память.

    Неделя работы. Ошибок нет.

    Скорость:

    отчеты — в 3 раза быстрее,

    документы — на прежнему,

    списки — летают.

    В общем — пока Супер.

    Кодебазе отдыхает.

    Reply
  30. hogik

    Отдыхает не только CodeBase, но и “родные” DBFы. На базе данных размером в 6 гигабайт (только DBFов) производительность ADS в 2-3 раза выше на самых “тяжелых” задачах. Даже при благоприятном режиме работы “родных” DBFов – монопольном.

    Reply
  31. albert

    На что влияет «Размер страницы в индексных файлах» (Строка № 5: файл DBEng32.ini)

    Reply
  32. hogik

    Посмотрите в описании к ADS два раздела:

    1) Index Page Size.

    2) Index Key Size and Page Size Relationships.

    Reply
  33. pstar

    А почему бы не использовать родные дбФ зачем изменять формат не изменяя расширения? Ведь АДС поддерживает ДБФ формат

    Reply
  34. hogik

    (33)(pstar)

    “А почему бы не использовать родные дбФ”

    Формат ADI/ADT имеет ряд преимуществ перед CDX/DBF.

    Вот основные:

    1) Снято ограничение на размер таблиц в 1(2) гигабайта.

    2) Работают быстрей.

    3) Поддерживает средство использования пространства от удалённых записей без построения дополнительных индексов.

    4) Позволяет изменять размер страницы (блока) индексных файлов.

    Есть и недостатки, но их удалось преодолеть.

    “зачем изменять формат не изменяя расширения?”

    К сожалению, существуют “процессы” в 1С, которые хотят видеть файлы именно с расширениями CDX и DBF. В моей разработке эти “процессы” не перехватываются. Например, после реорганизации схемы базы данных переписываются файлы из рабочего каталога в основной каталог по расширениям CDX и DBF.

    “Ведь АДС поддерживает ДБФ формат”

    Да.

    Reply
  35. tarasenkov

    Результаты тестов производительности ADS 4.3, MS-SQL 6.5 и Borland Interbase 4.2:

    http://www.prbank.ru/pbsite.nsf/61272a04b78f320ec3256c70003bf47f/4234c7e1578f75e9c3256c8­400561174?OpenDocument

    Тесты несколько устарели…

    Reply
  36. @lex

    Вопрос к разработчику: Есть или нет DBEng32.dll для версии сервера 7.1?

    Reply
  37. hogik

    (36) «Есть или нет DBEng32.dll для версии сервера 7.1?»

    Нет.

    Reply
  38. logdog

    смотрю выходит Advantage 9.0. … данная разработка думаю без проблем будет работать и на базе этого сервера?

    Reply
  39. hogik

    (38) “…выходит Advantage 9.0. …будет работать и на базе этого сервера?”

    Пока только — Beta. Я её еще не пробовал. Нововведений для наших задач там нет.

    Reply
  40. @lex

    (37)

    Тогда еще один вопрос — а возможно ли? Или чего-то для работы 1С не хватает в 7.1? Есть желание поставить на Linux, для него есть кряк (7.1), 8.1 только триал

    Reply
  41. hogik

    (40)

    Запуск под Linux интересная и полезная задача. Но рекомендую сначала попробовать в версии 8.1. И если заработает, то дальше решим, что делать с версиями ADSа.

    Reply
  42. @lex

    (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. О результатах отпишу.

    Reply
  43. hogik

    (42)

    Думаю, надо начать с запуска на клиенте под Windows утилиты “Advantage Data Architect 8.1” и попробовать соединиться с сервером, запущенным под Linux. В меню выбрать Tools->RemoteServerInfo, а там ввести значение в поле ServerDrive и нажать кнопку Connect.

    Reply
  44. @lex

    (40)

    с версией 8.1…

    …нужно было поставить adsodbc на сервер с Linux, коннект есть, остались разрешения для файлов, получаю ошибку 7040 «File creation error» будем разбираться с разрешениями в Linux

    Reply
  45. hogik

    (44)

    В моей разработке ODBC не используется. Чтобы запустить разработку с сервером ADS под Linux надо обеспечить одновременный доступ к файлам базы данных для приложения, работающего в Linux (сервер ADS), и приложения, работающего в Windows (клиент 1С+DBEng32). Это в Linux возможно?

    Reply
  46. @lex

    (44)

    А без установки ODBC для Linux ругается на версию сервера. Пришлось ставить. После этого ошибка пропала. Разобрались и с 7040. Оказывается, что в корне файловой системы нужно создать зеркало расшареного каталога со всеми вложенными каталогами и файлами. Вот ответ от разработчиков http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=020312-1400

    После копирования папки в корень сразу не работает, 1С ругается насчет транзакций, пришлось тянуть базу в Windows и конвертить с помощью ConvDBF

    Reply
  47. @lex

    (46)

    Все, с одним пользователем работает :), но тормоза жуткие, надо настраивать ADS сервер

    Reply
  48. @lex

    Прошу прощения за флуд, но два Windows клиента с работают на ура :). Осталось победить долгую загрузку структуры данных и потестить на большем количестве пользователей

    Reply
  49. hogik

    (46-47) Молодец. Спасибо.

    Долгая загрузка структуры данных в монопольном режиме? При первом входе в 1Су? А как вообще производительность? И по сравнению, с каким использованием 1Са?

    Reply
  50. @lex

    (49)

    Долгая загрузка структуры данных программы при любом входе, я думаю, это чисто сетевая проблема. Производительность как на локальной базе практически. Но есть еще одна проблема, пока не знаю из-за чего… Еще трех клиентов не удается подключить, ошибка 6420, пока непонятно, боремся :)…

    Reply
  51. hogik

    (50)

    Ошибка 6420, думаю, из-за ограничения на пять пользователей для демо-версии. Долгая загрузка, именно, структуры данных или долго открываются файлы? Спрашиваю об этом потому, что у меня были сложности и при использовании Windows версии. Но в этом направлении мне можно работать дальше. Очень радует, что производительность близка к режиму работы локальной базы. Может мне пора заняться версией 7.1, а Вам (если есть желание) написать маленькую инструкцию по установке системы на Linux для публикации на данном сайте? Я посмотрел описание версии 7.1. На первый взгляд проблем не будет. Но отлаживать работу с самим сервером придётся на Вашей территории.

    Reply
  52. @lex

    (51)

    Инструкцию написать несложно, вот только разберемся с ошибкой, т.к. пока удалось запустить только двух пользователей. Как запустим 5, тогда можно будет говорить об успешной установке и настройке.

    Reply
  53. hogik

    Странно это. Такое впечатление, что ОНО считает один вход за два. А что показывает “Advantage Configuration Utility”?

    Reply
  54. @lex

    (51)

    Все, пофиксили, ADS.INI поправили и положили в каталог bin, все заработало

    Reply
  55. @lex

    (53)

    Нет, ОНО не считает один вход за два, просто по умолчанию ищет конфигурацию в каталоге …1cv77in. И кстати, снесли сервер 8.1, поставили версию 7.1, в …1cv77in кинули библиотеки ace32.dll версии 7.10.0.15 и axcws32.dll версии 7.10.0.1 из пакета aceapi для версии 7.1. РАБОТАЕТ!!! 🙂

    Reply
  56. @lex

    (51)

    http://infostart.ru/blogs/352/manual.php. Для 8.1 версии.

    Reply
  57. hogik

    Добавлена сборка для Advantage 7.1.

    Reply
  58. shoorlo

    Прочитал: документацию к разработке, все отзывы здесь, посмотрел на цену ADS.

    Да, действительно, видимо работает быстрее и надежнее DBF/SQL (надежнее DBF, быстрее SQL).

    НО сервер ADS не «бесплатный».

    Вопрос: Может быть всетаки есть смысл сделать аналогичную разработку на бесплатном сервере (Firebird, MySQL, Postgresql …).

    При этом я понимаю что это будет работать медленнее чем CodeBase и ADS по причинам описанным Вами в «DBEng32.doc».

    Но решит проблему «1Гб» дбф версии,

    плюс бесплатность и надежность SQL — серверов,

    плюс на linux ставить и обслуживать легче…

    Может быть есть возможность сделать такую «Вестчь» как транслятор из обращений к MSSQL в обращения к другому бесплатному SQL серверу? Типа как делает «WINE@Etersoft SQL» в linux?

    В любом случае спасибо за Ваш труд.

    Reply
  59. hogik

    (58)(shoorlo)

    “Может быть есть возможность сделать такую «Вестчь» как транслятор из обращений к MSSQL в обращения к другому бесплатному SQL серверу?”

    На уровне интерфейса DBEng32 – нет.

    См. ответ (110) в http://infostart.ru/projects/811/

    См. ответ (128) в http://infostart.ru/projects/2127/

    “это будет работать медленнее чем CodeBase и ADS”

    О скорости разговора не возникнет. На маленькой базе это будет работать, а на большой базе оценить скорость будет не возможно. Не дождётесь результата. Но для маленьких баз и DBFная версия работает не плохо.

    “Типа как делает «WINE@Etersoft SQL» в linux?”

    Но это уже сделано. И это, думаю, единственный способ посадить 1С на другой SQLной сервер. Однако меня в этой разработке смущает (теоретически) скорость работы такого решения исходя из моего понимания MS SQL и PostgreSQL. Т.к. (практически) такую реализацию я начинал делать. И отказался от такого решения.

    “Но решит проблему «1Гб» дбф версии,”

    Расширение с 1 на 2 гигабайта сделано в http://infostart.ru/profile/2905/projects/1725

    Расширение до 2147483647 записей сделано в http://infostart.ru/projects/811 и в этой разработке режим файл-сервер бесплатный. Т.е. использование в режиме терминал-сервер данной разработки снимает ограничение на размер (в рамках разумного) таблицы базы данных.

    “надежнее DBF/SQL (надежнее DBF, быстрее SQL).”

    Я и к DBF добавил бы слово “скорость”. Т.к. по моим оценка на нашей системе оно работает быстрее, чем штатные DBFы.

    “НО сервер ADS не «бесплатный».”

    Я данную разработку делал как конкурент MS SQLному решению. Как в части выигрыша скорости без переделки конфигурации, так и в части цены.

    Reply
  60. shoorlo

    Спасибо за полный ответ.

    Reply
  61. Dolly_EV

    Ну вот, свершилось! Сразу хочу выразить автору огромнейший РЕСПЕКТ!!

    Ситуация:

    База около 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 часов (хотя может и на сервере были какие проблемы..)

    Вобщем, сие творение — спасательный круг для варианта «между СКЛь и ДБФ»!

    Еще раз огромное спасибо!

    Reply
  62. albert

    Почему то долго документы делаются не проведенными (ок. 10000 строк проводок)- до 20-30 мин., а проводятся относительно быстро — 5-10 мин.

    Платформа 025, Бухгалтерия рел. 493, DBEng32 (Сборка версии 6.0.1.4)

    Reply
  63. hogik

    (62)(Albert)

    А с родными DBFами, в аналогичных условиях запуска сессии 1С, сколько минут выполняются эти действия?

    Reply
  64. albert

    (63) С родными DBF: сделать не проведенным 6 мин., провести 10 мин.

    У документа 17 тыс. проводок.

    Reply
  65. CheBurator

    (61) > т.к. на периферийках размер злосчатсной таблицы проводок

    а имеет ли смысл в центре иметь детальную до гвоздя проводку???

    Reply
  66. hogik

    (64)(Albert)

    Возможно влияет кэширование на стороне сервера. Меняется время, если выполнить депроведение после проведения? В каком режиме проводится замер — монопольно, локально и т.д.? Используется операция #61 из РУСа?

    Reply
  67. Dolly_EV

    (65) наверное имелось ввиду «в периферийке» а не «в центре»?

    смысла конечно не имеет, только так уж исторически сложилось (и это необходимо), что миграция по основным документам «все — везде»

    Reply
  68. albert

    (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 мб.

    Reply
  69. hogik

    (68)(Albert)

    Если у Вас есть возможность, поставьте в глобальном модуле вызов: EXT._(61,»»,1), загрузив внешнюю компоненту AddInExt. Интересно, изменится ли время депроведения документа?

    Reply
  70. hogik

    (68)(Albert)

    Я выяснил, что причина медленного депроведения документов и большого файла *.TPS в большом количестве удаляемых записей в рамках одной транзакции. Так криво это у них реализовано. Я проверил это и в версии 8.10.0.38 — никакой разницы. Думаю, ускорить этот процесс можно путем разнесения базы данных и *.TPS на разные жесткие диски. Как это обойти в DBEng32 — пока, не придумал. Вопрос к Вам. Зачем использовать Advantage в режиме терминал сервер? Если из-за размеров таблиц, то, на мой взгляд, логичнее использовать DBEng32 для CodeBase 6.5 в режиме ПДБД. Бесплатно, нет ограничения на количество пользователей, размер таблиц не ограничен 1(2) гигабайтами, скорость работы как в локальном режиме родных DBFов, имеются полезные настройки, устранены врожденные клинчи и т.д.

    Reply
  71. albert

    (69) Время депроведения не меняется 🙁

    Буду пробовать CodeBase…

    Reply
  72. albert

    (70) А из формата Advantage в CodeBase есть конвертер?

    Reply
  73. hogik

    (72) Нет.

    Reply
  74. AL2004

    (hogik) Очень интересная разработка.

    Существует ли возможность разнести файлы конфигурации (*md) и файлы базы (dbf) в разные каталоги для работы пользователей, т.е. закрыть для пользователя файлы БД? Если я правильно понял, это возможно для CodeBase.

    Reply
  75. hogik

    (74)(AL2004)

    Для Advantage — нельзя. Для CodeBase — не рекомендуется, т.к. не будет работать реорганизация БД, тестирование и исправление ИБД, реиндексация и т.д.

    Reply
  76. AL2004

    (hogik)

    Спасибо за ответ. Для проекта желательно разнести конфигурацию и базу данных, модификация и переиндексация базы будет осуществляться локально на сервере. Что посоветуете?

    Ранее была Ваша информация о соотношении производительности ADS/CodeBase как 5/1 на операциях чтения.

    Информация на текущих релизах актуальна?

    Reply
  77. hogik

    (76)(AL2004)

    «желательно разнести конфигурацию и базу данных… Что посоветуете?»

    В этом случае посоветую MS SQL ;-)))

    «ADS/CodeBase как 5/1 на операциях чтения»

    На «тупых» операциях чтения почти 1/1. См. http://infostart.ru/blogs/482/

    «Информация на текущих релизах актуальна?»

    По нашему опыту эксплуатации на Advantage (в сетевом режиме, на реальных задачах, без изменения конфигурации) работает в два (и более) раза быстрее чем родные DBF. А на CodeBase (в наших условиях) работает медленнее чем родные DBF. Но это зависит от задач, количества пользователей, железа и т.д.

    Reply
  78. kerya33

    Хочу попробовать Вашу разработку, 1С БД под SQL ~ 20 ГБ, сконвертировать в DBF нет возможности, т.к. размер некоторых таблиц первышает 2 ГБ. Выгрузил БД в csv формат. Могу ли я воссоздать структуру и данные в ADT/ADI, используя Advantage Data Architect (Tools — Import data — Delimited Text File)? Или можно как-то по другому ?

    Reply
  79. hogik

    (78)(kerya33)

    «Или можно как-то по другому ?»

    Можно использовать штатные средства конфигуратора выгрузить/загрузить данные. Для больших баз данных — http://infostart.ru/projects/1512/

    Reply
  80. maljaev

    База 1.5 Гб. Максимальный размер DBF — 500 Мб.

    1. Терминалка + DBEng32 6.0.1.5 + Advantage 9.0

    2. Терминалка + DBF + патченый dbeng32.dll (для включения кэширования записи на диск)

    Погонял и так и эдак. Быстродействие второго варианта выше минимум раза в 2 как на отчетах, так и на проведении/распроведении. Даже при двукратном использовании тех же документов и отчетов (так что кэш Advantage тут не причем). Единственное, что понравилось в первом варианте — то что индексы не рушатся при нештатном завершении сеанса 1С, но жертвовать ради этим быстродействием в разы я не готов, да и в терминалке эта проблема не так актуальна.

    Reply
  81. JohnyDeath

    (80) а что за патч такой для включения кэширования? Где почитать/попробывать?

    Reply
  82. Ёпрст

    (81) http://www.kb.mista.ru/article.php?id=136

    читай в конце страницы…

    искать в закромах саму библиотеку-лень..где-то валялась 🙂

    Reply
  83. Ёпрст

    (80) гонял аналогично, забил на адвантадж.. Он подойдет только, если исключить Терминал из цепочки, как альтернатива скулю…

    Имхо.

    Reply
  84. JohnyDeath

    (82) а включение кэширование записи в свойствах самого винта — это не то?

    Reply
  85. Ёпрст

    (82) неа.. 🙂

    Reply
  86. hogik

    (80)(maljaev)

    А почему возникает желание проверять клиент/серверную СУБД в режиме «Терминалка + DBEng32 6.0.1.5 + Advantage 9.0»? Чего мне надо написать в инструкции, чтобы люди не тратили своё время на такие проверки? Для терминального режима логичнее использовать разработку на «CodeBase 6.5» в режиме ПДБД используя RAM диск для файла транзакций. По скорости работы в локальном режиме посмотрите http://infostart.ru/forum/forum16/topic8048/messages/ И, думаю не придется использовать «патченый dbeng32.dll (для включения кэширования записи на диск)» в ущерб надежности системы.

    Reply
  87. hogik

    (81)(JohnyDeath)

    Не рекомендую использовать этот «патч…для включения кэширования».

    Reply
  88. maljaev

    (87) Да уж год как с этим патчем и сам, и клиенты в терминалке работают — полет нормальный, никаких нареканий. На одной из баз (где документ при проведении создает еще несколько подчененных) скорость проведения этого документа при использовании патча возрастает где-то в 10 раз по сравнению с типовым, почему так сильно и сам незнаю. Но патч можно юзать либо на локальной базе, либо в терминалке. В сетевом доступе — ни в коем разе!

    P.S. А с CodeBase поколдую на досуге…

    Reply
  89. hogik

    (88)(maljaev)

    «скорость…возрастает…в 10 раз…, почему так сильно и сам незнаю»

    ;-))) А я знаю, поэтому и не рекомендую его использовать.

    Вызов FlushFileBuffers() в многопользовательских системах используется для гарантированного предоставления непротиворечивой информации после обновления информации одной задачей для другой. Для этого, при записи, выполняется примерно такая последовательность операций:

    1) Блокировать «семафор».

    2) Обновить группу связанных записей.

    3) Сбросить буфера на диск.

    4) Разблокировать «семафор».

    Читающая задача опрашивает «семафор» и начинает чтение данных только после его разблокировки. Что произойдет если поменять местами операции #3 и #4? Читающая задача может получить противоречивую информацию, т.к. часть связанных записей не будет находиться на диске. А именно это и делается, если не выполнять операцию #3 и отдать сброс буферов на откуп операционной системе. А предложение автора данного «патча» о выборочном сбросе буферов (в части *.CDX) ошибочно, т.к. такая, в частности, последовательность операций выполняется при обновлении и чтении индексный файлов.

    Reply
  90. kerya33

    После моих неудачных экспериментов с 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 сервер под линукс. Может кто, поможет … советом.

    Reply
  91. hogik

    (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.»

    Reply
  92. kerya33

    (91)(hogik)

    В разделе «Тестирование и исправление информационной базы» — «Проверка физической целостности» конфигуратора при работе с ADS возникает ошибка DBEng32 #023 (Invalid path for 1CV7.DD). Так и должно быть ?

    Имеет ли смысл пункт «Упаковка таблиц информационной базы» при работе с ADS ?

    Reply
  93. hogik

    (93)(kerya33)

    «Проверка физической целостности» конфигуратора при работе с ADS возникает ошибка DBEng32 #023 (Invalid path for 1CV7.DD).»

    DBEng32.doc->РазделЭксплуатация->ПунктНомер3

    «Имеет ли смысл пункт «Упаковка таблиц информационной базы» при работе с ADS ?»

    Не имеет смысла, и не выполняется если включено.

    «остановлюсь на чем то — буду тестировать конкретно.»

    А какое время загрузки базы? А в сравнении с SQLной версией 1Са?

    Reply
  94. kerya33

    (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.

    Reply
  95. hogik

    (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, где приходится, при переходе с версию на версию, компилировать всё заново.

    Reply
  96. kerya33

    (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

    Reply
  97. hogik

    (96)(kerya33)

    «Если можно поподробнее про DBF>2Гб,…»

    Ставим разработку под CodeBase 6.5 — только клиентскую часть (каталог BIN). Ставим «патч» от Романа. Запускаем сессию 1С в режиме ПДБД (в окне запуска сессии ставим маршрут к базе на локальном диске). Загружаем штатными средствами базу данных. Загрузка в CodeBase 6.5 пройдет (и относительно быстро), т.к. в нем ограничение на количество записей, а не размер файла (2 147 483 647 штук). Сохраняем результат. Далее запускаем ConvDBF с флагом «/-«. Сравниваем суммарный размер всех DBFов с сохраненным результатом. Если совпадает идем дальше, если нет — сообщаем мне и я буду разбираться. Далее ставим разработку на Advantage. Запускаем ConvDBF (из Advantage) без параметров. Сравниваем полученные размеры с сохраненными. Они должны отличаться не значительно, т.к. размер записей Advantage на 4 байта больше размера записи стандартного DBFа. И еще немного отличается размер заголовка файла. Всё…

    Reply
  98. kerya33

    (100)(hogik)

    Спасибо, обязательно буду пробовать, о результатах отпишу.

    Reply
  99. kerya33

    (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-ную версию ?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *