Каждый 1снег «знает», что «в восьмерке надо использовать запросы». В первую очередь это – результат работы отдела маркетинга «флагмана». Сами же 1снеги (старого поколения) так ненавидели запросы в 7-ке, что повелись на подачу «флагмана» весьма охотно и некритически. А потом это стало так же привычно, как «всемирность» ньютонова тяготения.
Повод для сомнения дал ламерский вопрос на ИС. Нет, поначалу дружные вопли «Запрос! Запрос!» ничего не вызвали, кроме желания, чтобы орали по-тише. Зацепила совершенно фантастическая конструкция автора вопроса:
ДокументОбъект = Документы.ЖурналПроизводственныхЗаданий.ПолучитьСсылку(Ссылка).ПолучитьОбъект(); КопируемоеЗначение = ДокументОбъект.СпецификацияУзлов.ВыгрузитьКолонку(Колонка).Получить(Строка-1); |
А потом в подсознании всплыло, что скульные базы еще в семёрошные времена рекомендовались для объемов и надёжности, а в скорости локальные файловые скуль превосходили. И как-то сам собой набросался простенький тестик, см. пост (12) в той ветке.
Объектная модель не просто оказалась быстрее, а прямо таки уделала запрос.
Замечания коллеги sonuchin3 несколько снизили накал страстей, и было решено доработать условия теста, чтобы получить цифры достаточно сопоставимые с учетом кэширования.
В серии тестовых 100 000-ных циклов проводились обращения к разным количествам оригинальных ссылок, результат – см. табличное поле на рисунке.
Тестовая конфигурация – с массивом документов и обработкой – прилагается.
**
Однако, этот тест всего лишь выявил для моей конфигурации (железо, ось), что для выборки до двух сотен ссылок емкость кеша позволяет объектной модели за свой счет обогнать запросную в 500-ном цикле.
Т.е. мы всего лишь получили исходные цифры для эксперимента: 500 раз возьмем из массива документов порции по 200 ссылок, это и даст нам хорошее сравнение способов доступа к данным — для этого конкретного, простейшего на самом деле, случая.
ЧАСТЬ 2. Результаты эксперимента, приближенного к реальности.
Для сравнения скорости доступа к данным был поставлен следующий эксперимент.
На форме создана таблица типа ДокументСписок.РеализацияТоваровУслуг
В таблицу добавлена колонка с полем ввода типа СправочникСсылка.Номенклатура
На форме размещен радио с двумя позициями – способами получения данных:
0 – запросом, 1 – объектом
Для таблицы определен обработчик ПриПолученииДанных
В зависимости от положения радио колонка Номенклатура заполнялась тем или иным способом.
Для обоих положений радио:
- текущая строка помещалась вверх списка
- включался замер производительности
- текушая строка стрелкой вниз перемещалась по списку до конца
- снимался скрин замера
Результаты представлены на картинках:
Складывая значимые цифры, получаем
Для способа запросом: 0,07 сек
Для объектом: 0,0023 сек
Обработку можно скачать и попробовать.
см. часть вторую — результат ПриПолученииДанных двумя способами — запрос медленнее объекта в 30 раз
Просто в 8-ке через запрос стало как-то привычнее выбирать 🙂
Несомненно, в 7-ой версии с запросами было просто мучение. А вот в 8-ке такие выборки можно писать в реал-тайме в консоли запросов и вживую видеть результат.
(2) Altair777, ну да, привычка. ощущение избранности: я вертел СКД!
а оказывается, что надо выбирать — где объект лучше, где — запрос
(2) Altair777,
можно привыкнуть в реалтайме пользоваться таблом 🙂
таки что-то не то
не обходит эта схема теста проблемы кеша
надо сделать накопление результата на оригинальных ссылках во всей серии
ох, наброс так наброс…
нет смысла сравнивать подход, вполне достаточный в работе с базами на простеньком файл/сервере, с dt на 100мб, кол-вом активных юзеров от 0 до 2 шт (терминалом) и т.п.
с подходом, критически необходимым к базам на мощных зубодробительных sql-серверах, с гигабайтными dt и с кол-вом активых юзеров в >100500 человек и т.д.
это совершенно разные вселенные, между ними только что язык написания кода одинаков..
Если отвлечься от конкретных деталей реализации, по тексту запроса строится (отфильтрованный) массив индексов для файла(ов) .dbf, а выполнение запроса — это цикл по этому массиву. Объектная модель использует предопределенные (готовые) индексные массивы, которые требуется только отфильтровать. Естественно, эта модель хорошо работает только в «простых» случаях.
Спасибо за поддержку и каменты, коллеги.
Думаю, попробовать сравнить ПриПолученииДанных в форме списка
(7) Арчибальд, а можно поподробнее об этом…»по тексту запроса строится (отфильтрованный) массив индексов для файла(ов) .dbf, а выполнение запроса — это цикл по этому массиву»…или ссылочку по этой теме.
ничо не понял
(10) Это так похвастался? Или просто мимо проходил? 🙂
(7)
Присоединяюсь к просьбе из (9) сообщения. 😉
И еще хочется узнать — почему слово «простых» заключено в апострофы?
Думаю, почти (без привнесенных извращений «запросным» ЯМД) во всех случаях эта модель работает хорошо.
А «если отвлечься от конкретных деталей реализации»(с), то в «объектной модели»
индексымассивы индексов не строятся по «тексту запроса»(с), а существуют (определены) изначально в схеме базы данных…P.S. Хотя, про «массив индексов» — это действительно «тонкости и детали». 😉
ну да, ну да
документацию почитать полезно бывает
актуально остается попробовать запрос<>объект при получении данных
еще читаем доку
При получении объектов из выборки их повторное считывание не производится. Поэтому для массовой модификации объектов выборка может быть эффективней, чем считывание ссылок запросом и получение объектов по каждой ссылке.
С точки зрения поиска объектов (ссылок на объекты) по простым условиям (по коду, по наименованию и т.д.) использование запроса и методов менеджеров объектов (НайтиПоКоду() и др.) не имеют существенных отличий по реализации с точки зрения платформы. Методы менеджеров имеет смысл использовать, если выполняются именно одиночные операции поиска. Основным преимуществом методов менеджеров является краткость записи в модуле. Если необходимы сложные условия или поиск нескольких объектов, то необходимо использовать запрос.
(12) Я ж и говорю
(9) Ссылку не дам. Я написал это «с точки зрения банальной эрудиции». Структура данных (реляционная модель) именно на такие обращения и заточена.
(15)
«Я ж и говорю»(с)
Я уже потом понял Вашу формулировку. 😉
Возможно, что перед словом «Объектная» должно стоять «А».
Но, мой вопрос про апострофы остался без Вашего ответа…
Считаю автор вводит в заблуждение молодые неопытные головы, в самом начале статьи надо крупно писать «ФАЙЛОВАЯ ВЕРСИЯ», этого не увидел, засомневался: «Может от жизни отстал». Для файловой базы согласен, и даже больше скажу, что на практике такие заскоки платформы были (с переходом на 8.2 начальные релизы), что запросы на порядок медленнее отрабатывали. НО, не забываем про молодые горячие головы, которые сейчас возьмут и в клиент-серверных вариациях начнут такое «колбасить», и с пеной у рта доказывать что вот люди писали, что так быстрее, за что будут незамедлительно отправлены восвояси учить мат. часть! И не забываем что все маленькое когда-то вырастает, и что тогда? переписывать :0
(17) kiros, ценность вашей оценки… нет, не так.
ваша оценка имела бы некоторую ценность, сопроводись она каким-нито тестом
(18) я написал, что справедливость этой статьи относится к ФАЙЛОВОЙ ВЕРСИИ БД или этого ПРОСТЕЙШЕГО случая, если это указать в тексте статьи ВНАЧАЛЕ И ЯВНО сразу поставлю «+», а так, считаю что статья вводит в заблуждение, особенно если прочитать не сильно вчитываясь.
(19) kiros, я, наверное, плохо выразил мысль.
статья сопровождена конфигурацией, которую любой желающий может развернуть у себя хоть в файло, хоть в сервер, и погонять своими ручками.
в вашем же «замечании» ничего кроме вашего же «имхо» нет
вот я и говорю — бла-бла-бла стоит недорого
(20) весь смысл публикации свелся к последнему предложению, т.е. для каждого конкретного случая, базы и задачи. (пришлось перечитывать навеявшую публикацию) Тогда да, в таком случае красота, только эта красота далека от жизни, на практике такая задача одна на … я даже не припомню были, ли у меня такие задачи.
Не забываем, что запросом гораздо проще контролировать права (предложение «Разрешенные»), а также то, что запросы быстрее работают даже на меньших выборках в условиях многопользовательской работы (для этого и рекомендуется SQL). Ну и субъективно: запросы более наглядны.
(22) mxm2,
часто ли вам приходилось «парсить» запросы в ЗуПе, коллега?
(22) mxm2,
утверждаете ли вы, что объектный доступ игнорирует ограничения РЛС? если нет, по поясните. пожалуйста, это свое «проще»
ну, собственно, см. (20)
(21) kiros,
было предложено для эксперимента ПриПолученииДанных — задача весьма востребована (трудно даже придумать более востребованную), и как раз попадает в область преимущества объекта
в ЗиУПе запросы конечно — громоздкие, но, как привило, там почти все понятно, если предварительно распечатать их на надцати листах и потом «карандашиком» произвести «анализ». Иногда даже, то, что запрятано в этих запросах, на мой взгляд, должно быть сделано в пределах объектной модели, но не думаю, что реализация будет более понятной и менее громоздкой.
(24) а разве не игнорирует? (и не выдает ошибку?)
(28) mxm2, хорошая тема для публикации, дарю 🙂
(28) mxm2,
РЛС ограничивает доступ на уровне записи в базе, а не на уровне «всевдообъектов» 1С.
Чтобы получить «объект» 1С — нужно сначала прочитать его из базы. А этого как раз и не даст сделать ограничение РЛС.
(25) про тестирование — ничего сказать не могу. Да. Но есть такой опыт:
1. работа пользователей в количестве 10-20 человек субъектовно ощущается более конфортной при использовании SQL базы вместо файловой.
2. при активной работе пользоваталей на SQL базе производительность запросов напрямую зависит от производительности SQL сервера, в то время как объектная модель менее подвержена этому влиянию, поскольку исполняется в пределах «Сервера 1С».
ЗЫ. будет время оттестю Вашу систему.
(30) AlexO, (29) … прикольно, усомнился даже, но вот код:
Выборка = Справочники.Партнеры.Выбрать();
Пока Выборка.Следующий() Цикл
Стр = Стр + Выборка.Наименование;
КонецЦикла;
в условиях ограничения прав дает ошибку «У пользователя недостаточно прав на исполнение операций с базой данных»
(32) mxm2, да, вы правы, РАЗРЕШЕННЫЕ перекладывает проблемы на платформу.
но!
1. общим местом являются тормоза при рлс
2. в языке есть методы, позволяющие разрулить ситуацию, ПараметрыДоступа и банальная попытка
так что опять — фифти-фифти, решаем по месту
(33) «Попытка» — сама тормозная, причем исполнятся будет пообъектно (последнее касается и «ПараметровДоступа»), что не есть гуд, в сравнении с запросом. решение 50/50 — приводит к тому, что придется вообще 2 кода писать (и запросом и объектом), и использовать в зависимости от предполагаемого количества элементов (как-то мне не нравится эта мысль )) ), и потом как перед заказчиком обуславливать, что мол на это нужно в 2 раза больше времени, чтобы работало «быстро».
(34) mxm2,
эк вас торкнуло-то, батенька
кроме номенклатуры есть много «простых» справочников, где больше пары десятков записей не бывает
кстати, «объяснять» клиенту, что тормоза из-за рлс — да, реально приходилось
(35) не то слово… + позволю высказать теоретическое соображение: т.к. в условиях работы более мощного SQL сервера запросы выполняются быстрее по сравнению с менее мощным, аналогично как и в случае использования более мощной системы на которой расположен «Сервер 1с» — пообъектной перебор будет быстрее чем в условиях использования менее мощной, то задача еще более усложняется, т.к. появляется зависимость от конкретного оборудования, на котором все это дело «исполняется»
(36) про микро справочники речь и не идет, но ведь слишком часто их приходится «вязать» с большими.
(38) mxm2, ну, хромая лошадка по имени «кластер 1С» все равно вынуждена транслировать обращения клиента, хоть «объектные», хоть «запросные» в мелкомягкий (или другой) диалект
(39) mxm2, и вот здесь мы (плавно не) переходим от бла-бла-бла к более-менее моделирующим реал тестам
вообще, по поводу трехзвенки, столько долго выжидаемой 1снегами, получилась очередная опа
чё б ни ограничиться клиентами, работающими с SQL?
**
ну, не так, чтобы как 77, а как у людей
(37)
ага и даже «справлятся» с ними приходилось, иногда даже «оптимизацией» запросов )), но что греха таить — наращивание серверной мощности — универсальный ответ, хоть и не дешевый.
(42) согласен со всем, но выбора нет… или это предложение спрыгнуть с 1С?
про бла-бла-бла тоже… но это человчья сущность, «пивом не корми а дай пообщаться» (с)
(32) mxm2,
все правильно, а в чем противоречие?
Вы не знаете, как формируются выборки, а как — запросы в 1С?
(33)
они ничего не перекладывают, это только инструкция «не ругаться на «нечитаемые» записи» в результатах запросов 🙂
Ибо обратное «как в выборках» невозможно — отругаться «нет прав», когда выполняется запрос. Вот и выход либо ошибка выполнения запроса, либо — РАЗРЕШЕННЫЕ.
(40)
да и не кластер это в общем, а авторассовывание клиентских подключений по разным машинам.
(44) mxm2, что значит «спрыгнуть»?
лишать себя гарантированного куска, сменив свою специализацию? нафиг-нафиг
перевести бухию?.. просто не на что, не зачем, не реально, не наше дело, да и просто глупо
короче, жрать кактус — есть такая профессия
а потрындеть — это да. с другой стороны, огоньку не хватает 🙂
**
вот, коллега Алекс нам щас огоньку поднесет 🙂
(45) AlexO, «разрешенные» — делает объединие с неким запросом по «правам» в результате выбираются только «нужные, доступные пользователю» элементы (все это делает SQL в случае SQL базы). в объектоной же модели — в любом случае приходится перебирать все и из них использовать доступные.
(48) mxm2, в объекте кто генерит отлуп, «кластер» или скл?
**
вы уверены, что объединение «правного» запроса и запроса к данным выполняется не в «кластере»?
(38) mxm2,
ничего подобного.
Никакой прямой связи «запросы — это только SQL, объекты — это только 1С» нет и не было.
На самом деле вся производительность зависит на 90% от производительнотси 1С-сервера, а SQL уже вторичен.
Все — и запросы, и выборки, и объекты, и все-все-все в 1С обрабатывает 1С-сервер (платформа).
А SQL дает только «сырые» данные, причем в объеме, зачастую много-сотен-раз-кратно превышающими нужные данные.
Ибо 1С-севрер не может путью оптимизировать запрос к SQL, и совсем практически не использует SQL как СУБД, а только — как хранилище таблиц с данными (исключая простейшие запросы, которые, можно сказать, один-в-один ложатся из 1С через её транслятор в обработчик запросов SQL).
Вся обработка происходит на сервере 1С.
И, естесственно, сам SQL ничего не знает о «закидонах» 1С и что там надо обработать и вытащить.
Еще про индексы скажите…
А то и так мало обсудили пресловутую работу 1С-сервера на ИС…
(47)
а то! вижу очередного студента 🙂
mxm2, у вас еще нет в активе обработки «прямые доступы к SQL или как убыстрить работу 1С»? :))
(48) mxm2,
SQL ничего не делает из вами перечисленного, а «тупо» (так как поставлен 1с-ом в роль тупой «животины-хранилища») выдает все запрошенное и незапрошенное, но связанное с запрошенным.
И знать ничего не знает ни о каких RLS.
RLS — это сугубо 1совая недоподелка, которая до сих пор в бета-тесте, без документации, и, видимо, так же тихо будет задвинута в угол скоро, т.к. у же лет 5 никаких подвижек и исправления проблем не наблюдается в нем.
Огранчиение записей в MS SQL не было и нет, еще только планируется, и то — в простейшем виде (но время покажет, эти люди серьезные, не 1с).
В других SQL (Оракл) уже есть более продвинутые реализации «RLS».
Но 1С НИКОГДА не будет использовать встроенные в СУБД RLS, ибо:
— это надо менять всю платформу напрочь
— это надо переписывать все конфы подчистую (запросы конкретно в них)
— в разных SQL — разная реализация RLS, причем кардинально отличающаяся от «конкурента», со своими уникальными фишками/функционалом (Postgre И Oracle, а скоро и MS SQL).
и при выборке, и при запросах — все окончательно отбирает 1С сервер, он же принимает решение об ограничении RLS, и он же в одном случае отрабатывает с ошибкой «нет доступа» (выборки), а в другом — «ошибка запроса» (понятно где).
Вот такая … неумелая 1С 🙂
А «объединение запроса RLS с основным запросом» — все это делает 1С сервер.
На стадии пост (вернее, основной, главной для 1С) обработки результата запроса/выборки.
Так чем отличается 1с-ные выборка от запроса со стороны SQL? 🙂
(47) в том-то и дело (про профессию), а вот про РЛС, Вы меня право испугали, уж подумал, что пропустил чего в изменениях платформы, ан нет (все самое худшее 1с оставляет как есть )))) ).
(48) mxm2,
да, конечно, вы бы прикинули — а кто делает запросы и выборки в случае файловой базы 1С? 🙂
Платформа мутирует под каждый случай?
Так вот, вернемся к запрос VS объект, потратил время на полезно/бесполезную оптимизацию (и так работало никто не жаловался) списка документов (ПриПолученииДанных), к которому так жестко отфутболил коллега tango, якобы объекты именно то, что нужно для этого дела. И… как многие догадались, на практике запросы дали тройной прирос производительности VS объектов (и это без возможной еще оптимизации). Так что, как и писал раньше, все зависит от конкретных условий и желаний, где то (как и было до этого у нас) прекрасно себя чувствуют себя объекты, а при оптимизации (особенно когда надо более одного поля выскрести, а то еще и расчетик и т.п.) тут однозначно ЗАПРОСЫ.
p.s. это касается серверной вариации, в файловой вероятнее будет не так, т.к. принцип получения данных там другой, как раз подходящий для объектов, но здесь не готов разглагольствовать, т.к. уже давно не занимался файлами.
з.ы. И потрындеть, это мы всегда пожалуйста 🙂
(53) AlexO, в некоторой части позволю с Вами не согласится, а именно был такой опыт: на трехзвенке база УТ 10.3, 50 пользователей — замена сервера SQL (как железки) дала заметный прирост, «на глазок» — раза в 4. )
по поводу того как что работает — это все домыслы (что с Вашей, что с моей сторны), ибо никто из нас не имеет исходников нашей горячо любимой платформы.
(55) kiros,
что ж вы примеров кода пожалели?
(54) AlexO, так уж случилось что с файловой практически не работаю… объемы не те ))).
(56) mxm2,
сделайте наоборот — поставьте маломощный 1С и сильный SQL 🙂
И все сразу поймете.
А то, что наверняка ваш SQL не успевал «кормить» данными 1С сервер — так то ж понятно, что сделай даже сеть не гигабит, а 10 МбИт — жди тормозов 🙂
Но из этого не следует, что сеть вообще как-либо участвует в обработке данных, не так ли?
(56) mxm2,
за работой обоих серверов понаблюдайте хотя бы в течении дня — загрузка, последовательность, передача данных по сети 😉
и никогда их не будет в лицензии GPL — ибо этот день будет началом краха 1С как баблозарабатываля на невежестве.
(51) AlexO, одну идею (подарок) от tango уже пришлось «забраковать», возможно это и к Вашему предложению относится ))… так то я с SQL — на «Вы». Просто не отрицаю очевидный факты своего, пусть и небольшого, опыта. )
(63) mxm2,
какую — использовать РАЗРЕШЕННЫЕ? не будете использовать?
ну не используйте 🙂
Получите «полбу» от сервера 1С 🙂
PS: Михаил, это не тебя пришлось «забраковать», не подумай чего :))
(60) AlexO, не та была ситуация, а именно до внедрения трехзвенки все (SQL и 1С) вертелось в пределах одного сервера «железки», и было реально тормознуто, даже по сравнению с трехзвенкой (со старым SQL).
откуда такая инфа?
и еще все справочники предполагаются «маленькими»?
(64) AlexO, не передергивайте…) учитесь уважать других )…
зы это уже бла-бла-бла )
(65) mxm2,
три раза «ха-ха» :))
Начиная с 8.2 бессмысленно ставить SQL и 1С на одну машину — будут пинаться и отбирать друг у друга ресурсы, ибо SQL пытается занять столько памяти, сколько у него запросили данных (а аппетиты у 1С все время растут — растут и объемы затребованных ресурсов у SQL), а 1С-сервер вообще плевать хотел, кто там рядом крутится, и считает, что кроме него во всей вселенной больше нет никого, и берет столько, сколько позволит унести ОС: хоть памяти, хоть процессорного времени, хоть чего.
(66) mxm2,
я не передергиваю, а про подарок спрашиваю 🙂
(67) AlexO, трехзвенки были еще на 8.1 (даааавно это было). а по поводу пиннают друг-друга по памяти, так это настраивается ). причем это несколько раз в разных вариантах описано на инфостарте.
и где ответ на уточняющие вопросы: повторю их по памяти:
откуда такая инфа?
и еще все справочники предполагаются «маленькими»?
(65) mxm2,
задайте на партнерке вопрос «медленно выборка идет…» — и сразу узнаете источник инфы 🙂
не «все», а есть много справочников, из которых делаются выборки, но они отнюдь не такие монстры, каким обычно становится справочник Номенклатуры, и — реже, — Контрагентов.
И вы бы не на запросы к справочникам (которые хоть и «родственники» по структуре документам, а по смыслу — регистрам, но менее гибче первых и тормознее последних) смотрели в первую очередь, если хотите чему-то научиться на поле 1С, а на запросы к регистрам всевозможных форм и размеров.
(69) mxm2,
видимо, память динамически подсовывается в плату? 😀
На что вы настраиваетесь, когда «настраиваете» сервер?
(68) AlexO,
tango
31.10.12 12:35
(28) mxm2, хорошая тема для публикации, дарю 🙂
предмет чуть раньше ) и сразу «за».
(71) mxm2,
т.е. вы не поняли, что Михаил предлагает в рамках своей будущей публикации разобраться с RLS, и, в частности, с РАЗРЕШЕННЫЕ? 🙂
(70) AlexO,
что за такой «пранерк»? не яндекс случаем?
(73) AlexO, а Вы с Михаилом общяетесь вне эфира инфостарта? ведь это ниоткуда не следует.
(74) mxm2,
http://partners.v8.1c.ru/
это парнерский сайт 1С
умейте правильно переставить буквы 🙂
(75) mxm2,
общаемся и в личке, но в данном случае это видно из контекста обсуждаемого вопроса и предлагаемой темы для статьи.
(72) AlexO, если памяти достаточно, то все работает быстро и не конфликутет, любой объем памяти требует настройки со стороны сервера 1с и SQL (MS) в пределах одного сервера (железки), как раз чтобы не было конфликтов и 1с сервер не выпадал в своп.
(76) AlexO,
— моя дислексия отличается от Вашей )
и нет у меня «NFR-версии комплекта» — «любитель» я по Вашей классификации )
(80) mxm2,
у меня тоже нет, я просто «партнер» :))
ну, или без кавычек партнер 🙂
(79) mxm2,
на 8.2.15.317-318 еще не работали?
крайне советую, причем с одновременной установкой на сервер 64 гигов памяти и более 🙂
в космос он выпадает, причем в район черной дыры, не меньше.
(57)
Показать
это через запрос, а вот через объект
Показать
и через замер производительности (2-запрос, 3-объект)
]
(85) kiros,
а через УФ формы? Возможно, будете неприятно удивлены новыми знаниями… 🙁
(86) AlexO, спалил 🙂
(83) AlexO, возможно на указанном не пробывали… но работает на 8.2.16.352.) памяти всего 24, server 64 бит настроено 2 рабочих процесса.
(88)
прости, могу см-ами отдать :))
(89) mxm2,
ну так скорей ставьте 8.2.15.317! :)))
(86) AlexO, новым знаниям я всегда приятно удивляюсь. УФ это управляемые? до них еще даже шаловливые ручки не допускал, но наслышан, что это другая песня 🙂
(54) AlexO, Спасибо, ещё одна пелена спала с глаз 🙂
Я наивный тоже думал что этот «РЛС» пристраивается в условие запроса к БД или джойн дополнительный там крячит, ан нет простейший тест на профайлере показал как обстоят дела на самом деле 🙂
(93) kiros,
это не просто другая песня, это песня задом наперед с одновременным сальто 🙂
Причем часто тормознутее обычных, хотя якобы призваны как раз быть «тоньше» их.
(94) logos,
киньте свежий пример запроса «с РЛС» сюда, а то народ заволнуется — «что за профайлер, там можно править РЛС-запросы, да?!» :))
(94) logos,
просто никто даже не может прикинуть стоп-вопрос себе чисто с другой стороны — «а откуда знаменитые тормоза в 1С при использвоании RLS, если все гладко идет в обработку на SQL-сервере?!
(95) AlexO, Да ничего интересного не будет. Простейший запрос в консоли запросов, получить все ссылки из справочника «Организации».
Первый запуск был с полными правами, второй — с ограничениями. Конфа — БП 2.0.41, рлс штатные. SQL запрос 1 в 1.
В обоих случаях транслировался в:
Результаты показывать, не буду, стесняюсь. Но смысл, что минимум УИДы он извлекает, чего бы не было при RLS на уровне БД
(98) logos, Прошу прощения, ошибочка вышла. В случае ограниченной учетки был другой запрос:
(90) AlexO, торговля какая-то вялая. не сезон. но предложение принято 🙂
(90) AlexO, ну, вот и случай представился. приму в подарок пару сотен
(67) AlexO,
со всеми Вашими высказываниями касательно «Сервера 1С» +»SQL» — и то что он тупо юзает SQL как хранилище Абсолютно согласен))
Но не совсем согласен с ниже описанной Вашей цитатой))
Начиная с 8.2 бессмысленно ставить SQL и 1С на одну машину — будут пинаться и отбирать друг у друга ресурсы
По моим данным можно настроить для примера — 2-ух процессорную схему:
(на основе процессоров и операционных систем поддерживающих NUMA-узлы)
1)Настраиваем для SQL -использование ядер только «NUMA-узла №2» + фиксируем ему(SQL) МАКС=МИН Объем RAM = примерно 1/2 всей оперативки.
2)Настраиваем запуск сервера 1с для запуска только на ядрах «NUMA-узла №1» — это уже настраивается несколько нестандартно))
PS:
Если вы укажите РЕАЛЬНЫЕ конфигурации железа на сравнимых Процессорах — в РАЗДЕЛЕННОМ по СЕТИ варианте и чтобы производительность не падала в сравнении со ВСЕ В ОДНОМ))) тогда изменю свое мнение.
+к (136)
т.к. Вы же сами утверждаете что 1С использует SQL тупо как хранилище — я немного перефразирую))
— это т.е. грубо -«тупо как файловую систему» (далее сокращенно ФС) —
и следовательно локальный доступ к ФС будет таки быст
(136) sanfoto, у меня без разузлования настроено, и никто никого не пиннает, настроено ограничение по используемой памяти MS SQL и соответственно для рабочих процессов сервера 1С. Ситуации выпадения сервера 1С в своп — не наблюдается при 24 Гб ОЗУ.
(136) sanfoto,
это пусть студенты разбираются с персоналками а-ля «сервера» и меряются, какой процессор круче.
На основе знакомства с десятками НАСТОЯЩИХ серверов, работающих под 1С — скажу, что уживаться они не могут под одной «крышей» с SQL, т.к. 1С совершенно неоптимизирована, и сколько ей не дай — все мало.
А когда они на одном железе крутятся — то разделение — это первое, что делается для хоть какого-то расшевеления 1С.
Т.е. вопрос поставить «более мощный, с 128 гигов памяти, с новейшим процепссором» НИКОГДА НЕ СТОИТ — ибо бессмысленен, если сейчас уже все тормозит на одном.
(155) sanfoto,
ну так и начните с азов, профайлер ничего вам по РЛС не покажет.
(141) mxm2,
а когда никто в 1с-ке и не работает — то и 1с-ка вполне себе такая вся причесанная и красивая.