Имя: Пароль:
1C
1С v8
Поведение MS SQL server при длительных запросах.
,
0 Lama12
 
18.09.13
10:21
Есть большой запрос. В нем несколько вложенных полностью повторяющих друг друга (да, можно вытащить во временные таблицы, но это пока отложим).
Допустим во время выполнения первого вложенного запроса в базе одни данные, во время другого - другие.
Вопрос - что будет в результатах запроса (насколько помню 1С использует грязное чтение)?  Будет ли сервер пытаться актуализировать результаты первого вложенного запроса после изменения данных в базе или это мой бред?
233 Odavid
 
23.09.13
13:22
(229) причем тут АБАП? Вы и из АБАП не смогли понять, что там никаких "клиентов-серверов" специально в коде указывать не надо.
234 Лефмихалыч
 
23.09.13
13:22
(231) продолжай, мне кажется ты хочешь сейчас какой-то смысл в виду поиметь. Нужно больше подлежащих и меньше намеков
235 Odavid
 
23.09.13
13:25
(234) вот и спрашиваю - как SQL этот индекс пользует? Все уже разжевал ))
236 Odavid
 
23.09.13
13:27
Всем, кто тут еще "попкорном запасся" - для начала бы определились, что такое:
- 3хзвенная архитектура
- 3хзвенная архитектура 1С
- объекты в ООП
- "объекты" в 1С
- тонкий клиент
- тонкий клиент в 1С
- запросы в SQL
- запросы в 1С
- обработка данных на сервере 1С
- обработка данных в СУБД
и т.д.
Это также к вопросу "один знает одно, другой - второе, и оба не знают третьего".
237 MKZM
 
23.09.13
13:37
(228) Работает как во всех стандартных 3 зв. Ничего нового они выдумать не могут. Все выдумано уже до них. А у вас какие-то другие сведения? Если да, то конкретно.
238 MKZM
 
23.09.13
13:40
(236) А что такое объект в ООП? Давайте начнем с вас.
239 viktor_vv
 
23.09.13
13:44
(231) Че ж это SQL о нем не знает ? Все он прекрасно знает, так этот индекс присутствует в самом скуле, так как при создании справочника и соотвественно создании таблиц в скуле там и индекс создатся, оптимизатор прекрасно о нем знает, и при составлении плана запроса будет его использовать, если он подходит.
240 viktor_vv
 
23.09.13
13:46
(235) Ты ж если запрос пишешь на T-SQL не указываешь в явном виде какой индекс использовать, оптимизатор сам подберет подходящий из имеющихся.
Только про хинты не надо рассказывать.
241 Odavid
 
23.09.13
13:46
+ 236:
Также подумайте, почему НЕ СУЩЕСТВУЕТ полной конвертации запросов 1С в T-SQL без выполнения 1С-запросов.
242 viktor_vv
 
23.09.13
13:48
(241) Давай сначала свой вариант.
243 Odavid
 
23.09.13
13:49
(328) да вы с себя начните.
Не знаю, как все остальное - но 1С подавляющее большинство знает слабо.
А, обычно, и во всех областях также. 1С - это лакмус для "дорогих россиян", начиная с версии 8.0.
Я бы ввел изучение 1С его как подготовительный курс при поступлении в институты, чтобы оценить не знание 1С, а вообще - способности, усидчивость, грамотность, восприимчивость знаний, желания и прочие навыки абитуриентов, необходимые для обучения.
244 Odavid
 
23.09.13
13:50
(239) как SQL использует "объекты" в индексах, если у него никаких объектов нет?
Ваш вариант.
245 viktor_vv
 
23.09.13
13:53
(244) Какие объекты он должен использовать в индексах.
Если ты про обращение в запросах через две точки, то происходит неявное разыменование полей с соответвующими левыми соединенями.
246 MM
 
23.09.13
13:53
Odavid ответьте на (242) и без вопросительных знаков
247 Odavid
 
23.09.13
13:55
(242) вы, и все остальные, пытаетесь не найти ответ, а показать некие свои "знания", мешая в кучу все, что есть - вики, лекции, отрывочные знания, агитки 1С и прочее.
Не понимая, что 1С так написали свою "надслойку" над СУБД, что логика 1С запросов и запросов СУБД - совершенно непохожа. Тем более, как его еще воспримет план запросов.
И без прямой конвертации 1С запроса/открытия исходников никто до сих пор так и не знает, как же на самом деле эта "прослойка" работает.
248 Odavid
 
23.09.13
13:55
(246) я уже ответил, все остальное - попытки меня запутать путем накидывания неких терминов, которые вы и сами не понимаете.
249 Odavid
 
23.09.13
13:56
+ 248 а такие попытки не могут быть достойны обсуждения или реагирования, уж извините ))
250 viktor_vv
 
23.09.13
14:03
(248) Может по другому сказать.
Может "все остально" это попытка показать тебе , где ты заблуждаешься.
Но ты ведь почему-то решил, что единственный обладаешь тайным знанием, недоступным всем остальным.
И решил поиграть в мессию, пришедшим на этот свет, дабы освободить заблудшие умы и души бедных одинэсников от той ереси, которую им внушила это исчадие ада 1С :).

К врачу не пробовал обратится.
251 Sammo
 
23.09.13
14:04
(211) 1. В профессиональной разработке описаны - какие индексы создаются автоматически. И какие из них кластерные.
2. Если я реквизиту в справочнике поставлю - индексировать, то в скуле будет сформирован индекс по данному полю.
252 Odavid
 
23.09.13
14:05
(245) вот именно, что никаких. Потому что никаких объектов там нет.
А в 1С - уже есть. Вы называете "индексами" обычные ключи в таблице (которые есть у любой таблицы), и SQL только находит эти ключи, а объекты и все связанное с этими "ключами-объектами" уже запрашивает 1С-сервер. И он же и обрабатывает эту "дополнительно" запрошенную информацию.
А вы хотите подменить индексы СУБД, с которыми она работает, получая записи таблиц, на "индексы 1С", которые собираются по всей базе, и сами "помогают" собирать информацию по "объектам", на которые ссылаются.
1С делает "индекс". Для SQL - это некий набор-ключ определенного вида, который он и возвращает как "набор символов".
А для 1С и всех "за ним" (и вас тоже) - это уже объект. Который и обрабатывается как "объект" в рамках 1С, а не как набор символов.
А вам уже выдается результат ПОСЛЕ обработки этих "объектов".
253 Maxus43
 
23.09.13
14:05
>>И без прямой конвертации 1С запроса/открытия исходников никто до сих пор так и не знает, как же на самом деле эта "прослойка" работает.
Утомил уже, в профайлере смотри что приходит на скуль из 1с. Приходит всегда одно и тоже а не рандомные запросы с потолка, для этого не надо знать начинку внутренностей 1с. Посмотрел в профайлере - понял как транслирует, всё остальное с этим запросом от 1с уже не зависит, его выполняет скуль
255 Enders
 
23.09.13
14:11
- 1С работает не так!!!
- А как надо?
- А как работает?)
Вот и весь диалог с  Odavid.
256 Maxus43
 
23.09.13
14:12
(255) +100 :)
257 viktor_vv
 
23.09.13
14:12
(252) Ну правильно. Так в чем проблема.

Объектная модель представления данных в 1С при трансляции запроса в запрос к СУБД преоразуется в реляционную модель представления данных (теже обращения в запросе через две точки транслкак в дополнителные неявные левые соединения) , при получении данных с СУБД 1С полученный результат преобразует к объектной моделе представления данных.

В чем проблема ?
Что у тебя в этой цепочке вызывает такой батхерт ?
258 Лефмихалыч
 
23.09.13
14:15
(255) ну от чего же весь? Одавид многогранен, как стакан. Он еще может аргументировать абапом и рукомашеством
259 Enders
 
23.09.13
14:17
(258) Просто после явных доказательств с противоположной стороны, и доказательств из вакуума от Odavid'a -  всё возвращается обратно к этому диалогу)
260 Odavid
 
23.09.13
14:19
(251)>>И какие из них кластерные.
правильно.
Но это только одно поле. И SQL не знает, что на самом деле означает данный "индекс" (а он обычно является ключом-ссылкой в 1С).
>> Если я реквизиту в справочнике поставлю - индексировать
так какое отношение некластерные индексы имеют к уникальному кластерному индексу?
261 Odavid
 
23.09.13
14:23
(257)>>В чем проблема
проблема в том, что этой - основной! - обработкой и  занимается 1С-сервер. Что как раз вызывает "батхерт" у всех вас, не понимающих "3хзвенную архитектуру 1С" ))
А SQL только дает кучу таблиц по запрошенным объектам - над которой потом "корпит" 1С-сервер.
Вот откуда "не использует индексы SQL" - они 1С вообще не нужны, т.к. он получает кучу "сырых" таблиц, которые потом еще и "перетирает" в меру возможности.
Часто эта "возможность" не покрывает "искомое". И тогда - часы обработки либо ошибка с вылетом.
262 MM
 
23.09.13
14:24
(253) от версии к версии это дело может меняться, как и структура базы, что обосновывает запрет на стороннее вмешательство.
(248) ты ни разу не ответил на вопросы
263 Odavid
 
23.09.13
14:26
(257)>>при получении данных
>> с СУБД 1С полученный результат преобразует к объектной моделе представления данных.
- вот и разберитесь, где основная обработка в этих двух этапах.
А то натягиваением "логики SQL на 1С" народ занимается уже с выхода 8-ки, а воз и ныне там - снова и снова грабли с SQL и 1С, и все новые и новые лица.
264 viktor_vv
 
23.09.13
14:26
(261) У меня есть некоторые сомнения насчет того, что кучу сырых таблиц и насчет того, что 1С сервер сильно корпит над ними. Ну очень сильные сомнения.
265 Odavid
 
23.09.13
14:27
(253)>>Посмотрел в профайлере - понял как транслирует,
вы сколько запросов посмотрели? 1? 10? сто? в студию - логику преобразования.
А лекции свои студенческие мне постоянно совать из года в год по сто раз одни и те же - увольте ))
266 МихаилМ
 
23.09.13
14:27
(261)
пожалуйта, хоть както аргуметируйте свои мысли.
Например "я изучил трассы взаимодействия 1с и скл и пришёл у выводу"

или

я "выяснил работу 1с под отладчиком"

или еще как-то.

НО аргументированнно.
267 Odavid
 
23.09.13
14:28
(264) а у меня нет.
В этом и разница.
Вам наплевать, на самом деле, как там все работает - у вас есть "лекции", которые "все объясняют".
А я работаю каждый день с этим "объясненным".
268 MKZM
 
23.09.13
14:29
(261) он получает кучу "сырых" таблиц

Охринеть. Вы не могли бы показать исходники (кусочек работы с сервером) вашей любой программы не 1с. Складывается впечатление, что ни одной у вас нет и вы даже не представляете как это все работает.
269 Odavid
 
23.09.13
14:29
(266) >>НО аргументированнно.
тут уже аргументировали - как запросы преобразуются из 1С в SQL?
А то я пропустил.
270 viktor_vv
 
23.09.13
14:30
(263) Ставлю на то, что основная обработка происходит на стороне SQL сервера.
За исключением специфических конструкций языка запросо 1С, типа Итоги ПО, пострение иерархии по справочнику, которые обрабатываются на стороне сервера 1С. И то распределние времени между ними неочевидное.
271 MKZM
 
23.09.13
14:30
(270) Все что не стандартный скл, то 1с :)
272 Odavid
 
23.09.13
14:31
(268)>>Вы не могли бы показать исходники (кусочек работы с сервером) вашей любой программы не 1с.
степень проработанности других "программ" не идет в сравнение с 1С.
Я про любые коммерческие API или языки по работе с БД.
273 Odavid
 
23.09.13
14:32
(270)>>Ставлю на то, что основная обработка происходит на стороне SQL сервера.
увы, это не так.
Иначе бы давно забыли про "1С опять тормозит!!!!" - просто бы подкрутили SQL или запросик поменяли на более "мелкий с частями".
275 MKZM
 
23.09.13
14:33
(272) языки по работе с БД.
Не могли бы подсказать языки работы с БД. А то я забыл.
276 Sammo
 
23.09.13
14:33
(261) Вот когда тебе скуль вместо отбора по индексу в табличке с ярдом записей полезет в тэйблскан, вот тогда поговорим про "кучу сырых таблиц" и про "не использует индексы SQL"
277 Maxus43
 
23.09.13
14:35
(265) я смотрю когда есть сомнения что работает криво/долго
278 viktor_vv
 
23.09.13
14:46
(271) Ну да, но он-то напирает на то, что и простая типизация результатов запросов занимает много времени.
279 viktor_vv
 
23.09.13
14:48
(276) Кстати в ветке из (219) он и такую мысль высказвал, что сервер 1С тянет на себя всю таблицу из СУБД и потом из нее уже что-то там требумое для себя берет по этим самым мифическим индексам 1С.
281 MKZM
 
23.09.13
14:49
(279) Это вообще пипец.
282 Enders
 
23.09.13
14:51
(279) Это он типа сказал что 1с использует СКЛ только как хранилище?)
283 Ёпрст
 
23.09.13
14:57
Не топите ветку, мы следим за событиями.
Может, еще какое открытие будет, окромя
индексы в 1с
и вы ничего не понимаете в трехзвенке!
284 viktor_vv
 
23.09.13
15:02
(281) Дабы меня не обвинили в том, что я че-то придумываю
из (219)

   Odavid
233 - 21.08.13 - 10:32    (230) "не нужную часть данных", а кучу всего нужного и ненужного оптом - SQL дает запрошенные таблицы с данными целиком. И потом разбирает "у себя", отсеивая ненужное, используя "свои" индексы, которые 1С понаделала.
285 viktor_vv
 
23.09.13
15:04
(283) Где-то еще ветка была с откровениями про ООП :).
286 Лефмихалыч
 
23.09.13
15:05
У поциента параноидальный бред, так же известный, как "власти скрывают" с той только разницей, что скрывают не власти, а какие-то "агитки"
287 Spieluhr
 
23.09.13
15:06
(286) + поциент походу еще и безработный
288 Maxus43
 
23.09.13
15:10
Это провокатор из фирмы 1с, наверняка. хочет вызнать как работает платформа :)
289 MKZM
 
23.09.13
15:12
(288) Точно. Поздно, ему все рассказали. Скоро выйдет новая версия.
290 Odavid
 
23.09.13
16:21
а кто понимает?
ну, кто понимает в трехзвенке? ))
291 Maxus43
 
23.09.13
16:26
(290) Что значит кто понимает в трёхзвенке? Вы понимаете вобще что спрашиваете? Трёхзвенка - это архитектура, Концепция построения системы, это Идея без конкретных алгоритмов, это Теория
292 Odavid
 
23.09.13
16:28
Вот еще вопрос на засыпку - почему 1С не "догадалась" использовать изначально Firebird??
Казалось, бери и пользуй бесплатное. Тоже PL-SQL
Ан нет.
А там разве что полнотекстовых индексов нет. Видимо, это для 1С самое важное.
293 Odavid
 
23.09.13
16:31
(291)>>это Идея без конкретных алгоритмов, это Теория
вот и давайте, соберитесь, сопоставьте теорию и реализацию в 1С.
Т.е. ТЕОРИЮ 3хзвенки ПО 1С.
А не теорию по институту.
И объясните, почему "вдруг" происходит несинхронная обработка (что обсуждали на первой странице), почему никогда не было или куда пропал контроль записей в 1С и т.д.
Архитектура же.
3хзвенная.
Книжки все почитали?
294 Maxus43
 
23.09.13
16:33
да толку то, см. (255)
295 Odavid
 
23.09.13
16:36
+ и почему нельзя писать прямые запросы - АРХИТЕКТУРА же, а не "1С погулять вышла", так где эта "архитектура", чтобы ей воспользоваться??
296 Odavid
 
23.09.13
16:39
(294)так да, "- А как работает?)" - только эти вопросы и слышу.
- что такое 3хзвенка
- что такое ООП
- что таоке объект
...
хотя изначально ни одно из этих определений к 1С никаким боком не прислоняется.
297 Odavid
 
23.09.13
16:41
(294) толку в том, что никто из вас не понимает, что происходит на самом деле.
Агитки прочитали - и все.
А когда проблемы возникают - "но вот тут же написано.." и пошли цитаты из Вики, учебников, агиток....
А подумать, что 1С думала одно, реализовала другое, а описала - третье в доках и агитках, - никто из вас такого и предположить не может.
Как же, коммерческий продукт - и такого качества.....
298 Maxus43
 
23.09.13
16:45
(297) А ты знаешь как работет внутри 1с? Нет же, и зачем нас спрашиваешь как работает? И мы не знаем. Но мы не кричим что 1с гавно и неправильно работает, а делаем свою работу, и получается, в отличии от вас видимо.
Проблемы возникают - надо решать, а не требовать непонятно у кого - переписать платформу и тупые вопросы типа "почему 1С не "догадалась" использовать изначально Firebird"
299 Spieluhr
 
23.09.13
16:47
(297) вам нужно на РЕН-ТВ какую-нить передачу вести про то, что 1С что-то скрывает от людей ...
300 Odavid
 
23.09.13
16:48
(298)>>А ты знаешь как работет внутри 1с?
я, по-крайней мере, догадываюсь.
А вы даже догадыватьтся не хотите )))
301 Odavid
 
23.09.13
16:49
(299)>> что 1С что-то скрывает от людей
1С всегда скрывала и скрывает правду о самой себе (сиречь своих продуктах).
Это давно известно, и сенсацией не станет ))
Это как гром только для вас )))
302 Odavid
 
23.09.13
16:50
(298)>>а делаем свою работу
бабло рубите?
303 Odavid
 
23.09.13
16:51
>>Проблемы возникают - надо решать
я уже умаялся перечислять проблемы-вопросы.
А воз и ныне там - но для себя я выводы уже сделал давно.
А одноэсники как хотят.
Работать - не бабло рубить ))
304 Maxus43
 
23.09.13
16:52
>>я, по-крайней мере, догадываюсь.

Дай угадаю, "Не правильно"?))))
305 viktor_vv
 
23.09.13
16:56
(297) Давай так, для прояснения вопроса с использованием индексов.
Простой пример с запросом 1С и последовательность обработки данных в соотвествии с вашей теорией.
Итак. Есть сервер приложений 1С, есть сервер СУБД. Для натуральности представления обмена даными между ними, они  находятся на физически разных серверах, соединены между собой по сети.
Для исключения спекуляций на тему долгой типизации результата запроса, у нас результатом запроса будет таблица с одной колонкой примитивного типа Строка.

Вот запрос.

Выбрать
  СпрНоменклатура.Наименование КАК Наименование
ИЗ
   Справочник.Номенклатура КАК СпрНоменклатура
ГДЕ
   СпрНоменклатура.Ссылка = &ПараметрСсылка

В соотвествии с вашей теорией использования индексов в 1С будет следующая последовательность действий.
Вначале сервер приложений 1С получит с сервера СУБД по сети всю таблицу справочника номенклатура, со всеми 50 000 записей и всеми 40-ка полями. Далее свои индексы 1С сервер приложений 1С из этой полученной таблицы получит записи удовлетворяющие условию

ГДЕ
   СпрНоменклатура.Ссылка = &ПараметрСсылка

и вернет клиенту уже конечный результат.

Просьба ответить односложно Да или Нет.

Без всяких философских рассуждений.
306 Ёпрст
 
23.09.13
16:57
Тааак.. продолжайте наблюдение.
307 viktor_vv
 
23.09.13
16:58
(305)* Исправление

Далее *Используя свои индексы 1С сервер приложений 1С из этой полученной таблицы получит записи удовлетворяющие условию
308 Ёпрст
 
23.09.13
16:59
(305) Не, ты не в теме, ты не знаешь, что происходит на самом деле, прочитал агитку и лезешь тут со сложными вопросами да и нет, ответ на (305) будет таким:

- Неужели ?
309 Ёпрст
 
23.09.13
17:01
Модеры, подымите ветку из небытия!
Пусть плавает в топе.
310 Maxus43
 
23.09.13
17:02
Odavid, кто тебя обидел? Нуралиев лично? Компания 1с? Другой 1сник, который умееит работать, но не читал про индексы СУБД SQL, трёхзвенки и прочее - забрал твою работу?
311 Odavid
 
23.09.13
17:06
(310)>>который умееит работать, но не читал про индексы СУБД SQL, трёхзвенки и прочее - забрал твою работу?

это фантастика!
Тем более, в мск.
Тем более, среди нынешнего поколения "студентов".
Тем более, что работу забираю я.
312 Maxus43
 
23.09.13
17:09
(311) Как обычно, совершенно ничего не понятно в ответе. Кто тебя обидел?
313 Spieluhr
 
23.09.13
17:09
(311) так что насчет (305) ?
314 Ёпрст
 
23.09.13
17:12
(313) Вы таки спГашиваете или отвечаете ?
:)
315 viktor_vv
 
23.09.13
17:15
(308) Я думаю ответа вообще не будет :).
316 Spieluhr
 
23.09.13
17:17
(315) ага, наверное он ушел забирать очередную порцию работы у таких как мы )))
317 Sammo
 
модератор
23.09.13
17:24
(311) Прошу в течении часа ответить на 305, 307.
318 Лефмихалыч
 
модератор
23.09.13
17:28
+(317) от себя добавлю: "без вопросительных знаков"
319 vvf1973
 
23.09.13
17:30
суровые модеры взяли одавида в плотное кольцо...как в голубой лагуне... :-)
320 Maxus43
 
модератор
23.09.13
17:32
Да ответит, скажет что не это имел ввиду и всё...
321 Ёпрст
 
23.09.13
17:32
Не ответит, делаем ставки.
322 Лефмихалыч
 
23.09.13
17:34
(320) конечно ответит. Ссылку на какую-нить муру даст и будет корчить из себя мем ЕВПОЧЯ:
http://images.wikia.com/elderscrolls/images/1/11/If_you_know_what_I_mean_.png
323 viktor_vv
 
23.09.13
17:47
Похоже свалил он из ветки. Теперь будет слезная история, типа не видел вопроса, надо было срочно уходить и т. д.
324 Ёпрст
 
23.09.13
17:48
(323) ты просто убил его своим вопросом, взорвал ему мозг. Его двухзвенная архитектура мозг-пальцы по клаве отказались работать.
325 viktor_vv
 
23.09.13
17:51
(324)Ну я не ожидал, что этот вопрос в такой тупик его поставит, простите :).
Вроде он оперирует такими высокими материями.
326 Spieluhr
 
23.09.13
17:56
(325) еще чуток подождем, ответ у него наверняка готов, но как его выразить в утвердительной форме, без вопросительных знаков...
327 viktor_vv
 
23.09.13
18:00
(326) Да уж, это наверное самое тяжелое.
Причем он героически продолжает наблюдать за веткой :), и не менее героически молчит :).
328 Sammo
 
модератор
23.09.13
18:53
+317 Ответ готов получить на почту. Если не терпится - копию можно отправить любому из отметившемуся в теме.
330 Ёпрст
 
24.09.13
13:52
Ага, а он может быть ужо и ответ подготовил.
331 MM
 
09.10.13
10:57
Odavid, разбанили. Жду ответов. )
332 fisher
 
09.10.13
11:15
Числится в бане. И слава богу.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой