Имя: Пароль:
1C
1С v8
1С 8 и "спецверсия" PostgreSQL
0 andrewks
 
17.07.11
17:11
возник вопрос: почему 1С заморочилась с патчами и адаптированной версией СУБД PostgreSQL, вместо того, чтобы реализовать поддержку официальной сборки СУБД, как, собственно, было сделано в случае остальных поддерживаемых СУБД? тому были объективные причины, или это тупо результат чей-то нездоровой эрекции на открытые исходники?
если есть в системе какие-то недоработки, узкие места и т.п. - сделай коммит в официальную сборку, это же так естественно и очевидно?
при этом другие разработчики используют данную СУБД в промышленных масштабах и безо всяких спец.адаптированных версий и патчей.
однако кто-то из 1С убедил своё руководство, что в пришедшей партии велосипедов колёса совсем негодны, и лучше самим переоснастить всю партию другими колёсами, чем поговорить с производителем

что вы думаете по этому поводу?
1 bizon2008
 
17.07.11
17:16
Потому что PostgreSQL версионик. А с версиониками 1С работать не умеет. Вот и сделали из него блокировочник.
2 ДенисЧ
 
17.07.11
17:17
потому что лохи.
3 ДенисЧ
 
17.07.11
17:18
(1) а оракля почему не стали патчить?
4 andrewks
 
17.07.11
17:19
(3) это ж очевидно :) исходников нема
5 andrewks
 
17.07.11
17:21
сопутствующий вопрос: у Этерсофта тоже есть своя версия "адаптированного" для 1С постгресса.

однако не могу найти на их сайте исходники, хотя это обязательное условие лицензии. хорошо спрятали?
6 andrewks
 
17.07.11
17:42
да, и ещё, совсем забыл:
почему 1С до сих пор игнорирует Firebird? я возмущён
7 Мимохожий Однако
 
17.07.11
18:09
Напиши в 1С. Нам расскажешь, что тебе ответили.
8 ДенисЧ
 
17.07.11
18:10
(6) ага. и mysql...
9 Злопчинский
 
17.07.11
18:11
да! особенно поведение Firebird при размерах базы в полсотни гиг и выше и количестве юзеров соответсвенном...
10 andrewks
 
17.07.11
18:12
(8) mysql мне не интересен по причине туманного будущего
11 ДенисЧ
 
17.07.11
18:12
(10) А мне не интересен постгре...
12 Kraft
 
17.07.11
18:13
(6) Firebird - амно редкостное
13 bizon2008
 
17.07.11
18:14
(9)(12)Вы там и рядом не стояли порошу Firebird не обижать. И это хорошо что до него 1С не дотянулась. Хоть один нормальный версионик остался.
14 andrewks
 
17.07.11
18:16
(11) причина?
15 ДенисЧ
 
17.07.11
18:19
(14) не интересен, и всё.
16 Kraft
 
17.07.11
18:22
(13) ты стоял?
17 andrewks
 
17.07.11
18:23
(12) обосновать сможешь? и желательно в сравнении с чем
18 Икогнито
 
17.07.11
18:24
(0) > PostgreSQL

Если не ошибаюсь, в PostgreSQL все равно блокируется вся таблица. Каким боком он подходит для промышленных масштабов?
19 andrewks
 
17.07.11
18:55
(18) откуда вброс? если от 1С - то учти, им верить нельзя ;-)
20 ДенисЧ
 
17.07.11
18:56
(18) это 1с с постгре блокирует таблицу, а не сам сервер
21 Живой Ископаемый
 
17.07.11
18:57
2(18) "все равно" - да конечно... это при живых то управляемых  блокировках, которые даже в типовых есть
22 Икогнито
 
17.07.11
18:59
(19) да, вброс инфы с диска ИТС.
23 andrewks
 
17.07.11
18:59
кстати, а с какими СУБД 1С8 использует механизм MVCC?
24 andrewks
 
17.07.11
19:00
(22) врут, собаки. лень им, видимо, было по-нормальному сделать
25 Икогнито
 
17.07.11
19:03
(24) ну да, там была статья про особенности работы 1С 8 с серверами баз данных. Про PostgreSQL было написано, что блокируются таблицы целиком.
26 bazvan
 
17.07.11
19:15
Покури
http://v8.1c.ru/overview/postgres_patches_notes.htm

иожа там че найдеш
27 andrewks
 
17.07.11
19:20
(26) курил. они ж ничем там не обосновывают. а в исходниках копаться времени нет
28 bazvan
 
17.07.11
19:24
Ну например вот это:

"патч содержит дополнительные модули расширения и необходимые изменения к СУБД, добавляющие функциональность, необходимую для работы с сервером 1С:Предприятия 8.1 и 1С:Предприятия 8.2 "


это разве не объясняет то что Слоник что то не умеет?
29 andrewks
 
17.07.11
19:27
(28) нет
видимо, это объясняет, что 1С чего-то не умеет, или где-то тупит, а переделывать так, "шоб намано" было, вломы
30 bazvan
 
17.07.11
19:28
(29) О как. Что то я сомливаюся.
31 andrewks
 
17.07.11
19:35
(30) а ты не сумливайся.
попробуй ответить на вопрос: что такое принципиальное есть в mssql из того, что 1С _реально использует_, и чего нет в PostgreSQL?
32 Aleksey
 
17.07.11
19:36
(30) Ну приделать костыли - это любимый прием 1С

(29) Там вроде бы, насколько помню, из-за регистра независимого поиска они делали патчи
33 bizon2008
 
17.07.11
19:38
(16)Угу. Это мой основной сервер БД.
34 bazvan
 
17.07.11
19:40
(32) Это как минимум
35 Aleksey
 
17.07.11
19:42
Нашел

Алексей: Основная причина, по которой появилась необходимость модифицировать PostgreSQL 8.1 -- это то, что оригинальная версия не поддерживает сравнение строк, нечувствительное к регистру букв. Внесённые в PostgreSQL изменения позволили эффективно (быстро) работать с русскими символами в кодировке Unicode. Кроме того, конфигурационные файлы, которые получаются после установки PostgreSQL 8.1, модифицированного для работы с «1С:Предприятием», несколько отличаются от оригинальных. Это также сделано для лучшего согласования PostgreSQL 8.1 с «1С:Предприятием» 8.1.


Комментарий: Так как 1C разрабатывалась под MS SQL, в которой сравнение строк нечувствительно к регистру, то многие запросы использовали этот факт. Для разработчиков 1C было принципиально не переписывать запросы специально под PostgreSQL, который имеет разные операции для сравнения строк. Но переделки/усовершенствования не ограничивались нечувствительностью к регистру. В процессе разработки мы старались не сильно менять поведение PostgreSQL, поэтому часть изменений была оформлена как подключаемые модули. Реализация в виде модуля позволяет использовать библиотеки с лицензией отличной от BSD, под которой распространяется PostgreSQL.

Полный список (вкратце, так как подробности могут занять много места):

   Новый текстовый тип:
       нечувствительное к регистру букв сравнения,
       иное поведение модификаторов длины текстового поля. Это потребовало внесения возможности использования этих модификаторов для не встроенных типов (уже закоммичено и будет в 8.3),
       индексная поддержка операции LIKE и SIMILAR TO (в PostgreSQL это невозможно для не-ASCII символов),
       использование библиотеки ICU для сравнения (сам PostgreSQL использует системные функции, что приводит к неприятным отличиям в Linux и Windows).
   Быстрая имплементация команды TRUNCATE для временных таблиц. Из-за особенностей реализации транзакций в оригинальном производительность PostgreSQL может падать в случае очень частого использования этой команды. Цена в этом случае -- отказ от транзакционности (оригинальная команда TRUNCATE не изменилась), т.е. удаление записей из таблицы необратимо, даже в случае отката транзакции.
   Модуль оптимизации соединений (join) таблиц по условиям вида:

   table1.f1=table2.f2 OR (table1.f1 IS NULL AND table2.f2 IS NULL)

   Оптимизация запросов с большим количеством условий OR и ограничением количества выбираемых записей (c помощью LIMIT). Некоторые запросы ускорились на 3 порядка (1000 раз).
   Возможность указать положение NULL значений при сортировке, синтаксис SQL2003: ORDER BY col [ ASC | DESC ] [ NULLS ( FIRST | LAST ) ]. В настоящее время эта возможность уже воплощена в девелоперской версии, хотя и отличным от нами предложенного способа. Это связано с большими изменениями во внутренних интерфейсах в грядущей версии 8.3.
   Индексная поддержка поиcка по условию IS [NOT] NULL.


Полный текст (с) http://www.inp.nsk.su/~baldin/PostgreSQL/1C/1C.html
36 andrewks
 
17.07.11
19:59
(35) спасибо, хорошая ссылка

после прочтения интервью (2007 г) начинает складываться впечатление, что уж года через три от патчей точно должны уйти, однако ж уже 2011-й на дворе, и 8.2.14 вышла, и 9.0, а воз и ныне там. видимо, запросы переписать так и поленились
37 andrewks
 
17.07.11
20:06
+(36) хоть явно это и не указано, я так понял, что проблема с регистром возникала именно для кириллицы, а не для латиницы.

ведь в описании pgsql сказано, что чувствительность к регистру появляется только при заключении идентификаторов в кавычки
38 bazvan
 
17.07.11
20:08
(36) а может это постгрес должен был переписать? вон и ДБ2 кое что под 1С дописывали, и в Оракле начале, а слоник гордый
39 andrewks
 
17.07.11
20:09
(38) про DB2 слышал, а оракл-то что переписывал?
40 bazvan
 
17.07.11
20:10
(39) што то там вроде как ковыряют. Это быстро не получается, сам понимаеш.
41 andrewks
 
17.07.11
20:12
и всё же, остаётся совершенно непонятным, почему при наличествующей до сих пор "патченной" версии постгреса 1С не может спуститься до блокировок уровня записей.
42 ice777
 
17.07.11
20:34
(6) кстати, действительно, почему еще не опустились до interbase-firebird ? )
43 bazvan
 
17.07.11
20:36
(41) А на хрена, в Слоне нет ответственных, слону этого нах не нужно. Ну и нафига такие партнеры нужны.
В печь слона, переходим на ДБ2
44 Икогнито
 
17.07.11
20:36
(41) потому, что MS SQL продавать надо
45 Икогнито
 
17.07.11
20:37
+(44) и это гораздо выгоднее
46 andrewks
 
17.07.11
20:38
(43) да в слоне это уже давно есть, я спрашиваю, почему 1С тупит?
47 bazvan
 
17.07.11
20:41
(46) где они там есть? Они тока задекларированы в 9 версии, причем сами слоны и писали что хх знает как оно там пока работает.
Вообщем очередное обсосное авно.
48 ice777
 
17.07.11
20:43
(46) 1c много где тупит.
Где конвертор из 81 в 82(УФ)? почему надо ручками проходиться по коду? маркетинг говорите? да не.
49 andrewks
 
17.07.11
20:47
(47) звиздёжь и провокация
50 bizon2008
 
17.07.11
21:09
(42)С ним финт работа как с блокировочником невозможен. а сообщество сказало, идите нафуй. Надо, сами рихтуйте. Желающих не нашлось.
И все таки я восхищен 1С, это надо нагнуть столько серверов БД.
51 trdm
 
17.07.11
21:20
(35) Aleksey >> Институт   Ядерной Физики имени Г.И.Будкера ?????
тока не говорите, что там 1С внедрили...
52 andrewks
 
17.07.11
21:34
(51) при чём здесь 1с?
53 gae
 
17.07.11
23:04
(51) В институтах СО РАН, как и в других бюджетных учреждениях, есть бухгалтерия
54 smaharbA
 
18.07.11
07:24
неизменный постгри в промышленных масштабах не используется
55 bizon2008
 
18.07.11
10:50
А что по Вашему, промышленные масштабы?
56 DjSpike
 
18.07.11
10:56
(54) Примеры можно услышать...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.