Где хранится таблица значений? #755519


#0 by Darchick
Добрый день! Подскажите пожалуйста где физически во время обработки хранится Таблица значений в клиент-серверном варианте. На сервере базы данных или на сервере 1С:Предприятия?  В оперативной памяти, кэше или еще где-то? Не могу найти информацию по этому поводу.
#1 by jurassic
в памяти
#2 by Darchick
В памяти сервера 1С?
#3 by VladZ
Правильный ответ: там! :)
#4 by GROOVY
На серевере, в озу. если квота вышла то на харде в темпах.
#5 by ЧеловекДуши
Если про реквизит Формы. То на клиенте. Если про то, что обрабатывается по директиве "&НаСервере", то все перемещается на Сервер и обрабатывается на сервере :) Вообще все это как-то не оптимально, реализовано. Почему нельзя объявить реквизиты формы, которые не надо перемещать на сервер. Или делать это выборочно, по списку :)
#6 by jurassic
а что, уже нельзя?
#7 by GROOVY
На клиенте не хранится ТЗ. Там есть сериализованных данных.
#8 by GROOVY
И на клиенте вообще ничего не хранится, это, по сути, браузер.
#9 by Darchick
Теоретически я так и думала, а вот практически при выполнении кода две конфигурации, расположенные на разных серверах БД, но исполняемые на одном сервере 1С дают разное время код (упрощенно) Данные абсолютно одинаковые
#10 by GROOVY
, для чистоты эксперимента замеряйте без контекста и с перезапуском сервера. Ну и "сообщить" на сервере - это атавизм.
#11 by jsmith82
И щито?
#12 by GROOVY
Кстати, нафига запрос в ТЗ выгружать? 1С всячески  рекомендует выборку юзать.
#13 by Darchick
ОК попробую Это дает лучшую производительность?
#14 by GROOVY
Естественно. Выборка порционна. Обычно за такой код увольняют.
#15 by jsmith82
А почему бы и нет? Удобно вполне. Можно курсор юзать по индексу. Щас-то уже не 640 кб ОЗУ на дворе.
#16 by jsmith82
Фигня это. За это не увольняют, а снижают балл на экзамене по платформе.
#17 by GROOVY
А почему?! Коллеги, когда у вас в выборке 20 строк - то пофиг. Когда 20млн - тогда глаза открываются.
#18 by GROOVY
ТЗ из запроса = созданию второго (дубля) объекта, не сериализуемого в памяти на сервере. При том, что он уже есть и вполне себе сериализуем.
#19 by Darchick
Полностью согласна, но мне нужно было четко разделить время обращения к БД и исполнения на сервере. Насчет выборки была не уверена, а ТЗ всегда думала что хранится на сервере 1С.
#20 by Darchick
Поэтому результат и удивил
#21 by jsmith82
Причём тут код в и ТЗ на сервере 1с?
#22 by GROOVY
ТЗ на клиенте нет. В принципе.
#23 by Darchick
ТЗ=Запрос.Выполнить.Выгрузить; Выгружает результат запроса в таблицу значений
#24 by jsmith82
Ну и чо? Две базы на разных серверах СУБД. Код на сервере 1с.
#25 by jsmith82
Груви сказал - ТЗ хранится на сервере 1с в ОЗУ, всё.
#26 by jsmith82
Откуда такие вопросы вообще в ? Прям озадачилась. Биты в памяти менять через ассемблер собралась что ли
#27 by GROOVY
Не все. Может упасть на хард.
#28 by jsmith82
Ну, файл подкачки тоже ОЗУ
#29 by Darchick
Нужно сравнить производительность 2 серверов БД. Код слегка переукоротила было примерно вот так: Изначально предполагалось что времяЗапроса будет отличаться, а времяОбработки останется примерно одинаковым, а вот вышло наоборот. Не могу понять почему
#30 by GROOVY
И где тут обработка?
#31 by GROOVY
В коде все делается на сервере, копируется массив данных, непонятно зачем, и перебирается по индексированному полю. В принципе тормозить должно.
#32 by GROOVY
*31 по индекированному
#33 by jsmith82
Производительность двух серверов БД - окей... Делаешь одну обработку и гоняешь её на две базы, что и делаешь
#34 by jsmith82
То бишь запрос у неё одинаково работает, а итерация по ТЗ не одинаково. И она подозревает, что ТЗ хранится в памяти сервера БД
#35 by jsmith82
А количество строк в ТЗ одинаковое?
#36 by GROOVY
Какие все подозрительные. Не проще ли посмотреть, что сервер получает и как хранит?
#37 by organizm
эххх, поколение пепси.
#38 by organizm
их бы запустить поработать с ASP.NET глаза бы открылись на мир...
#39 by jsmith82
Без разницы тут. Просто УИД
#40 by jsmith82
А чо там? Я работал в 2008 г. Чото крутое?
#41 by organizm
позволяет понять возможности клиента и сервера, что можно и что нельзя. а то все 1С плохое...
#42 by gigi789
Для такого кода запрос не нужен, достаточно Справочники.ВнутренниеДокументы.Выбрать;
#43 by gigi789
ой-ли. А зачем же позвольте вас спросить гуру мы кеши всякие чистим??
#45 by H A D G E H O G s
Вполне кошерно выгружать запрос в тз. Ведь вы же максимально фильтруете его и на выходе у нас пара сотня строк, не больше. Не так ли Грувви?
#46 by gigi789
Человек смотрит 1) скорость выполнение кастериндексскана 2) перебор тз Как варик пишет обоснование увеличения опреративы. Типо бла бла добавите 10 гигов и вот этот код начнет выполнятся быстрее.
#47 by NcSteel
Пара сотня не критична, миллионы критично
#48 by jsmith82
10 млн доков / 365 дней = 27 доков в день
#49 by H A D G E H O G s
еще раз. Миллионов у вас не должно быть. Никогда.
#50 by gigi789
Еще очень кошерно делать выборку для заполнения тч документа, и не в коем случаи не пользоваться ЗаполнитьЗначенияСвойств. Ибо тру 1сники зп получают от времени и количества строчек кода.
#51 by jsmith82
*27 тыщ в день
#52 by NcSteel
Почему? А если обмен?
#53 by User_Agronom
У меня тут СП завалялось какое-то. Оттуда: ... Доступность: Сервер, толстый клиент, внешнее соединение. ..." Так что не совсем верно. При работе в обычных формах ТЗ нормально живёт на клиенте.
#54 by jsmith82
Причём тут обмен?
#55 by Провинциальный 1сник
Когда у вас в выборке 20 млн строк - то само её существование говорит о том, что запрос написан неверно)
#56 by NcSteel
При том, что для обмена могут потребоваться запросы с выборкой данных
#57 by NcSteel
Ложь
#58 by Лефмихалыч
ни когда не говори ни когда
#59 by NcSteel
+100500 Поражают крайне критические выводы
#60 by Лефмихалыч
вообще. автор занимается хернёй.
#61 by H A D G E H O G s
Автор, ответ на твой вопрос: На сервере mssql между тестами
#62 by jsmith82
Компиляция прям для клиента?
#63 by H A D G E H O G s
порционные запросы в цикле
#64 by jsmith82
А, ну да
#65 by Провинциальный 1сник
Нет. Язык запросов разрабатывался не для того, чтобы выдавать сырые данные огромного размера. Делать "ВЫБРАТЬ * ИЗ РегистрБухгалтерии.Хозрасчетный" и переборка выборки - еще более неверно, чем выгрузка в ТЗ.
#66 by gigi789
по ком тянем в соседнюю базу данные например. Достаточно удобно запрос выгрузить в тз, тз в строку из строки и вот у вас тз на той стороне.
#67 by NcSteel
Кто тебе сказал, что 20 млн это сырые данные? Самая настоящая выжимка того что надо
#68 by Лефмихалыч
язык-то может и разрабатывался так, но вот только изобретатели всяких форм отчетности типа алкогольной об этом не в курсе, по этому выборки в миллионы строк таки иногда бывают
#69 by H A D G E H O G s
из на клиенте в принципе есть, Грувви.
#70 by H A D G E H O G s
а вот этого делать нельзя.
#71 by gigi789
Согласен с тем что это нужно делать порционо и желательно много поточно.
#72 by NcSteel
Не факт, что будет быстрее, а код усложняет....
#73 by gigi789
почему??
#74 by Провинциальный 1сник
Отличнейшее решение, что оно вам не нравится? Сериализация-десериализация позволяет избавиться от кучи проблем типа плавающей точки при передаче рублей.
#75 by User_Agronom
Не понял, что хотел ты сказать. А так да: в обычных формах ТЗ можно сформировать на клиенте и там с ним работать. О сколько нам открытий чудных, готовит просвещения дух! Но это явно не тот случай.
#76 by H A D G E H O G s
сериализация идет в неепияеской длины строку, которую надо Каждый раз при сериализации гдето разместить в памяти.
#77 by Лефмихалыч
+ при чем - два раза разместить, ведь ее же потом передают из процесса в процесс
#78 by jsmith82
Прерву вашу баталию, миллионы строк вполне живут в ТЗ на сервере и робят Если у фирмы миллионы строк, пусть ставят хороший сервер
#79 by H A D G E H O G s
ты немного не понял. Реаллокация в памяти происходит каждый раз, когда к строке добавляется другая строка. Как раз, когда готовая строка отправляется в другой процесс ничего страшного.
#80 by NcSteel
Ну и че? ))) пусть хоть переварачивает сервер, от этого он не помрет и отработает.... Я открою секрет, то даже гото можно использовать.
#81 by DmitrO
На сколько я помню, 1С говорила, что на хард может упасть результат запроса, а не ТЗ.
#82 by Живой Ископаемый
А с МайкроСофтом они об этом договорились?
#83 by Garykom
и ни у кого не возникло подозрения что подобный код вполне зависим от сервера бд? или хотите сказать что в платформе 1С нет никакой оптимизации, кеширования и прочих многопоточных хр..й? переброска данных полученных запросом с сервера бд, на сервер 1С в ТЗ занимает какое то время возможно сделана оптимизация в платформе что сначала в ТЗ создаются пустые элементы в нужном кол-ве (из запроса), и только потом они в фоне начинают заполнятся данными с сервера бд причем если пытаются прочитать строку из ТЗ которая еще не заполнена, то задержка будет, пока ее с сервера вне очереди не прочитают ЗЫ это просто размышления...
#84 by Фокусник
а что, у браузеров нет кешей? ;)
#85 by hhhh
думаете там по одной строке передается? По идее по 5-10 тыс строк должно сразу в одной порции.
#86 by Necessitudo
А разве не в буферном пуле СУБД хранится таблица значений?)
#87 by gigi789
а что разве в них не чего не хранится??
#88 by Живой Ископаемый
2 если мы ее помещаем в параметр запроса для ВТ? наверное да, в нем
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям