Size: a a a

2020 February 29

AZ

Andrey Zubov in Delphi & Lazarus
вот поэтому я и говорю что там где нет простых связей таблиц по ФК, в орме начинается кровавый геморрой :))
источник

SB

Sergey Bodrov in Delphi & Lazarus
ORM отлично стыкуется с хранимыми процедурами и 1С яркий пример. Главное, чтобы процедуры генерировал ORM, а не DBA.
источник

SB

Sergey Bodrov in Delphi & Lazarus
В любом случае нужно учитывать, что первично (где образец для остальных) - схема БД или объектная модель.
источник

SB

Sergey Bodrov in Delphi & Lazarus
В 1С первична объектная модель, а схема БД строится автоматически
источник

SB

Sergey Bodrov in Delphi & Lazarus
В 1С можно совсем не знать ничего про SQL, индексы, джойны и прочее. Там все манипуляции происходят над объектами, которые сохраняются где-то в общем хранилище.
источник

AZ

Andrey Zubov in Delphi & Lazarus
ну насчет 1с и хранимок, я бы не стал применять слово отлично :) да и вообще за то как 1с хранит данные в СУБД надо вырывать руки :)
источник

SB

Sergey Bodrov in Delphi & Lazarus
И связь между объектами идёт естественным образом. Например, у объекта Документ есть свойство Покупатель, которое тоже является объектом со своими свойствами.
источник

AZ

Andrey Zubov in Delphi & Lazarus
ой, я вспомнил, видел я как работает орм на одной системе, долго отходил от просмотра sql запросов нападавших в профайлер. Есть таблица счетов и есть дочерняя для нее таблица реестров. В программе выводится список счетов где одной из колонок количество записей в таблице реестров. По итогу орм делает первый запрос на список счетов, а затем бежит курсором по полученному списку счетов и на каждом делает (select count(*) from reestr where idschet=schet.id). Таким образом на выборке в 1000 счетов мы имеет 1001 запрос в sql сервер :)))
источник

AZ

Andrey Zubov in Delphi & Lazarus
и после этого умножаем это на 30 операторов и то что этот запрос один из базовых, сервер просто стоял раком :)
источник

N

Nik in Delphi & Lazarus
я тут поддерживаю Андрея )))
источник

N

Nik in Delphi & Lazarus
надеяться на генератор хранимок или запросов чуть сложнее select * from table - это ппц
источник

N

Nik in Delphi & Lazarus
1-2 джойна систему может и не положат, но чуть посложнее и будет труба
источник

N

Nik in Delphi & Lazarus
кстати, сервера 1С зачастую лежат в крупных конторах ))
источник

N

Nik in Delphi & Lazarus
и решается это только покупкой более мощного железа )
источник

AZ

Andrey Zubov in Delphi & Lazarus
ну а ты как хотел, ведь 1с-ники слава богу ничего не знают про индексы, джойны и sql, слава богу, а то не дай бог 1с быстрее работать начнет :)
источник

N

Nik in Delphi & Lazarus
🤣
источник

GB

George Bakhtadze in Delphi & Lazarus
Andrey Zubov
ой, я вспомнил, видел я как работает орм на одной системе, долго отходил от просмотра sql запросов нападавших в профайлер. Есть таблица счетов и есть дочерняя для нее таблица реестров. В программе выводится список счетов где одной из колонок количество записей в таблице реестров. По итогу орм делает первый запрос на список счетов, а затем бежит курсором по полученному списку счетов и на каждом делает (select count(*) from reestr where idschet=schet.id). Таким образом на выборке в 1000 счетов мы имеет 1001 запрос в sql сервер :)))
проблема N+1 в ормах актуальна, да. хотя и не в них тоже. но можно и без N+1 запросов :)
источник

ДП

Дмитрий Плясунов in Delphi & Lazarus
Nik
кстати, сервера 1С зачастую лежат в крупных конторах ))
Есть такое
источник

SB

Sergey Bodrov in Delphi & Lazarus
А теперь расскажите, как работает с базой данных SAP =)
источник

SB

Sergey Bodrov in Delphi & Lazarus
Как-то в начале 2000-х мы проводили сравнение разных систем ведения учёта. В основном там полный п-ц, и 1С самая быстрая, удобная и адекватная.
источник