Автор Тема: Раздел 13, 14.  (Прочитано 8567 раз)

0 Пользователей и 1 Гость просматривают эту тему.

tivanitsky

  • Пользователь
  • **
  • Сообщений: 28
Раздел 13, 14.
« : Май 07, 2015, 05:25:22 pm »
Ну и раз уж написал. К обсуждению то же:
13.1 - 1
13.2 - 4
13.3 - 3
13.4 - 5
13.5 - 2
13.6 - 1
13.7 - 4
13.8 - 4
13.9 - 5

13.10 - 4
13.11 - 1
13.12 - 2
13.13 - 1
13.14 - 1
13.15 - 4
13.16 - 1
13.17 - 1
13.18 - 2
13.19 - 5

13.20 - 6
13.21 - 1
13.22 - 4
13.23 - 2
13. 24 - 1 (но собирался проверить так как в книге нет уточнений по поводу текущих итогов)
13.25 - помогите люди добрые (опять же нет уточнения по текущим итогам а смоделировать руки не доходят, хотя это 10 минут)
13.26 - 3
13.27 - 1
13.28 - 1 (надо моделировать)
13.29 - 1 (надо моделировать)

13.30 - 3
13.31 - 1
13.32 - 1
13.33 - 3
13.34 - 1
13.35 - 4
13.36 - 3
13.37 - 1
13.38 - 2
13.39 - ? (1 - не правильно, по результатам сдачи)

13.40 - 1
13.41 - хоть убейте не могу найти ни в итс ни в книге ни в конспекте с тренинга

14.1 - 1
14.2 - 3 (udp 21.05.2015, 4 - правильно http://forum.chistov.pro/index.php?topic=3538.msg39533#msg39533)
14.3 - 3
14.4 - 2
14.5 - 4
14.6 - 3
14.7 - 1
14.8 - 6
14.9 -  (udp 21.05.2015, 2 - не правильно http://forum.chistov.pro/index.php?topic=3538.msg39452#msg39452) (проверял профайлером и так и так)

14.10 - 4
14.11 - 1
14.12 - 6
14.13 - 4
14.14 - 4
14.15 - 2
14.16 - Помогите люди добрые (поидее 2 и 3 но почему бы и не 4. Хоть и неизящно.)
14.17 - 4
14.18 - 1
14.19 - 1

14.20 - Помогите люди добрые (1 точно, 2 не удалось воспроизвести хотя вроде как то же подходит)
14.21 - 2
14.22 - 3
14.23 - 4
14.24 - 6
14.25 - 1
14.26 - 4 (ответил бы 2 но вопрос противоречит другому вопросу из чего можно сделать вывод что ответ 4. Хотя поидее бросаться что то исправлять при обнаружении не стоит конечно.)
14.27 - 4
14.28 - 4
14.29 - 3

14.30 - 3
14.31 - 1
14.32 - 1
14.33 - 2
14.34 - 3
14.35 - 2
14.36 - 1
14.37 - 1
14.38 - 2
14.39 - 1

14.40 - 1
14.41 - 1
14.42 - 1
14.43 - 2
14.44 - 2
14.45 - 2
14.46 - 5
14.47 - 4
14.48 - 1
14.49 - 3 (? в профайлере вообще +u блокировкой обновления. s не удалось увидеть)

14.50 - 4
14.51 - 1
14.52 - 2
14.53 - 2

Использовались итс, настольная книга, свои конспекты тренинга эксперт по технологическим вопросам.
Буду очень благодарен, если кто то поможет ответить на неотвеченое и понять непонятное. А так же возразить по отвеченным пунктам.



« Последнее редактирование: Июль 02, 2015, 11:13:11 am от Droni »

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
Re: Раздел 13, 14.
« Ответ #1 : Май 07, 2015, 09:57:04 pm »
13.2 - 4
13.28 - 3. Думаю так: раз дата актуальности раньше любого периода записи, то по записям набор не нужно вносить данные в таблицу итогов (т.е. обновление таблицы итогов не будет).
13.29 - 2. При использовании текущих итогов блокировка по периоду будет [НачалоМесяца(НаборЗаписей.Период)+] (от даты до конца)
13.37 - 4.
13.38 - 6. Там как длительные запросы могут обуславливаться ожиданиями на блокировках.
13.41 - 1. Думаю так: ключевая операция  - единое интерактивное не делимое действие, а в 2 нам предлагают выбрать действие (из нескольких) выполненное по КО.
« Последнее редактирование: Май 07, 2015, 11:08:00 pm от Droni »

tivanitsky

  • Пользователь
  • **
  • Сообщений: 28
Re: Раздел 13, 14.
« Ответ #2 : Май 08, 2015, 10:40:13 am »
13.2 - 4
13.28 - 3. Думаю так: раз дата актуальности раньше любого периода записи, то по записям набор не нужно вносить данные в таблицу итогов (т.е. обновление таблицы итогов не будет).
13.29 - 2. При использовании текущих итогов блокировка по периоду будет [НачалоМесяца(НаборЗаписей.Период)+] (от даты до конца)
13.37 - 4.
13.38 - 6. Там как длительные запросы могут обуславливаться ожиданиями на блокировках.
13.41 - 1. Думаю так: ключевая операция  - единое интерактивное не делимое действие, а в 2 нам предлагают выбрать действие (из нескольких) выполненное по КО.

13.2 . То есть параллельность чтения это никак не снижает? По факту это существенно всегда. Просто в случае с чтением после записи есть нюансы кода (который надо написать, что бы не было дедлока).

13.28, 13.29 - проверял на практике ? :-)

13.37 - согласен

13.38 - согласен

13.41 - но в первом варианте же тоже " ...представителя действий, выполненных по ключевой операции". Не догоняю :-(

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
Re: Раздел 13, 14.
« Ответ #3 : Май 08, 2015, 11:40:10 am »
13.2 . То есть параллельность чтения это никак не снижает? По факту это существенно всегда. Просто в случае с чтением после записи есть нюансы кода (который надо написать, что бы не было дедлока).
Включение разделения итогов на прямую параллельность чтения не снижает. Включение разделения итогов увеличивает параллельность записи, но на практике, там где есть чтение записываемых данных, что бы не было дэдлоков увеличение параллельности не работает.
В ответе 2 написано, но снижает параллельность операциЙ чтения - это не так.
Считаю что 4 более полный ответ.

13.28, 13.29 - проверял на практике ? :-)
Проверял.
13.29 точно 2, а вот 13,28 не точно.. нужно перепроверить. Наверно будет 1, т.к. если граница актуальности итогов далеко сзади, то 1С все равно ставит управляемую блокировку на начала текущего периода [01.05.2015].

13.41 - но в первом варианте же тоже " ...представителя действий, выполненных по ключевой операции". Не догоняю :-(
Представитель действий - на мой взгляд это документ или справочник, который в нерабочее время нужно перепровести/сохранить для воспроизведения ситуации.
« Последнее редактирование: Май 08, 2015, 11:45:23 am от Droni »

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
Re: Раздел 13, 14.
« Ответ #4 : Май 08, 2015, 12:31:20 pm »
13.28 - проверял на практике ? :-)
13.28 - 1.
Итоги по регистру рассчитаны на 31.01.2015, разделение итогов выключено.
Во всех документах пишется набор с одинаковыми измерениями.
Первый документ, дата 05.05.2015 (на конце проведения остановил отладку),
Второй документ, дата 28.04.2015 - провелся
Третий документ, дата 08.05.2015 ошибка блокировки (можно увидеть по времени наложения блокировки).
Лог ТЖ:

46.695008-3,TLOCK,5,process=rphost,p:processName=test,t:clientID=697,t:applicationName=1CV8C,t:computerName=SQL12,t:connectID=29005,SessionID=260,Usr=Тест,AppID=1CV8C,Regions=AccumRg34.DIMS,Locks='AccumRg34.DIMS Exclusive Period=T"20150501000000" Splitter=0 Fld35="1" Fld39="1"',WaitConnections=,Context='Форма.Записать : Документ.Документ1.Форма.ФормаДокумента
Документ.Документ1.МодульОбъекта : 25 : Движения.Записать();'
21:59.038061-3,TLOCK,4,process=rphost,p:processName=test,t:clientID=716,t:applicationName=1CV8C,t:computerName=SQL12,t:connectID=29021,SessionID=263,Usr=Тест,AppID=1CV8C,Regions=AccumRg34.DIMS,Locks='AccumRg34.DIMS Exclusive Period=T"20150401000000" Splitter=0 Fld35="1" Fld39="1"',WaitConnections=,Context='Форма.Записать : Документ.Документ1.Форма.ФормаДокумента
Документ.Документ1.МодульОбъекта : 25 : Движения.Записать();'
22:22.820002-19999979,TLOCK,4,process=rphost,p:processName=test,t:clientID=716,t:applicationName=1CV8C,t:computerName=SQL12,t:connectID=29021,SessionID=263,Usr=Тест,AppID=1CV8C,Regions=AccumRg34.DIMS,Locks='AccumRg34.DIMS Exclusive Period=T"20150501000000" Splitter=0 Fld35="1" Fld39="1"',WaitConnections=29005,Context='Форма.Записать : Документ.Документ1.Форма.ФормаДокумента
Документ.Документ1.МодульОбъекта : 25 : Движения.Записать();'
« Последнее редактирование: Май 08, 2015, 12:35:35 pm от Droni »

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
Re: Раздел 13, 14.
« Ответ #5 : Май 08, 2015, 02:11:54 pm »
14.8 Можно пояснить,почему будет сканирование таблиц?
14.10 - 5.
14.12 - 3.
14.16 В 2 сильно смущает, что при исправлении запроса 1С используется термин ВТ СУБД, да еще и соединение, почему не ГДЕ.
14.17 - Если выборка - это финальная выборка, то 2 и 3 вернут одинаковый результат (логика запроса не поменяется), а вот 1 может ограничить размер возвращаемых данных.
14.20 - 4
14.22 - подумал что были эскалации блокировок и помог ответ 1. Есть объяснения ответа 3 кроме того что уровень изоляции стал RCSI?
« Последнее редактирование: Май 08, 2015, 02:45:42 pm от Droni »

tivanitsky

  • Пользователь
  • **
  • Сообщений: 28
Re: Раздел 13, 14.
« Ответ #6 : Май 08, 2015, 04:24:08 pm »
14.8 Можно пояснить,почему будет сканирование таблиц?
14.10 - 5.
14.12 - 3.
14.16 В 2 сильно смущает, что при исправлении запроса 1С используется термин ВТ СУБД, да еще и соединение, почему не ГДЕ.
14.17 - Если выборка - это финальная выборка, то 2 и 3 вернут одинаковый результат (логика запроса не поменяется), а вот 1 может ограничить размер возвращаемых данных.
14.20 - 4
14.22 - подумал что были эскалации блокировок и помог ответ 1. Есть объяснения ответа 3 кроме того что уровень изоляции стал RCSI?

14.8 Достаточно просто написать запрос и посмотреть в профайлере. Сканирование таблиц будет так или иначе. Но вот сканирование таблиц само по себе не является плохим событием всегда. Особенно на малых объемах данных.. Склоняюсь к тому что я ошибся тут. Ну то есть оно то будет. Но оно вроде как не факт что плохое.

14.10 Почти уверен что 4. 3 вариант это помоему стеб. В книге и на тренинге наоброт говорят, что каскады из записывающихся внутри друг друга объектов это очень плохо.

14.12 2 вариант на мой взгляд имеет право на  существование. Потому что транзакция таки откатится при невосстановимом исключении дойдя до первого обращения данных. 3 само собо. А 4 на собственном опыте (часто приходится гадать что за ошибка а на деле в каскаде записи не записался какой то документ). А ты видишь только "В данной транзакции уже происходили ошибки"

14.16 такая же фигня. Но я так понял, что они имеют ввиду все таки временные таблицы в пакетах. Потому что этот термин встречался еще в каких то вопросах и там методом исключения был ответ про временные таблицы СУБД кокраз. Да и потом запрос пакетный в профайлере выглядит никак иначе как помещение во временные таблицы СУБД (#t1 ...). А соединение почему бы и нет. Внутренним соединением просто соединяешь. Вообщем сложный вопрос.

14.17 думаю что имеется ввиду именно первоначальная выборка. И возможность ее ограничить есть только у параметров виртуальных таблиц.

14.20 наверное вы правы. Но 2 не удалось повторить. Вот 1 "наура".

14.22 в главе про эскалации в настольной книге есть упоминание о том что в 8.3 эскалации возникают на 100 000 + строках в отличии от 8.2 на 20 000 +. Вот и подумал. что правильный вариант все же 3. Что бы подчернуть так сказать, что 8.3 хороша.




tivanitsky

  • Пользователь
  • **
  • Сообщений: 28
Re: Раздел 13, 14.
« Ответ #7 : Май 08, 2015, 04:26:36 pm »
13.2 . То есть параллельность чтения это никак не снижает? По факту это существенно всегда. Просто в случае с чтением после записи есть нюансы кода (который надо написать, что бы не было дедлока).
Включение разделения итогов на прямую параллельность чтения не снижает. Включение разделения итогов увеличивает параллельность записи, но на практике, там где есть чтение записываемых данных, что бы не было дэдлоков увеличение параллельности не работает.
В ответе 2 написано, но снижает параллельность операциЙ чтения - это не так.
Считаю что 4 более полный ответ.

13.28, 13.29 - проверял на практике ? :-)
Проверял.
13.29 точно 2, а вот 13,28 не точно.. нужно перепроверить. Наверно будет 1, т.к. если граница актуальности итогов далеко сзади, то 1С все равно ставит управляемую блокировку на начала текущего периода [01.05.2015].

13.41 - но в первом варианте же тоже " ...представителя действий, выполненных по ключевой операции". Не догоняю :-(
Представитель действий - на мой взгляд это документ или справочник, который в нерабочее время нужно перепровести/сохранить для воспроизведения ситуации.

Спасибо. За комментарии. Во всем согласен. :-)

st1llman

  • Пользователь
  • **
  • Сообщений: 26
  • ФИО: Дмитрий
Re: Раздел 13, 14.
« Ответ #8 : Май 09, 2015, 08:16:29 pm »
13.24 - 1
13.25 - 2
13.28 - 1
13.29 - 2
13.32 - 2

Провел эксперимент на регистре накопления (остатки). Для Бух регистра думаю тоже справедливо.
Суть такая, если используются текущие итоги то в таблице итогов добавляется строчка с периодом "5999-11-01 00:00:00.000". При записи набора эта строчка блокируется (только если движения документа изменились относительно старых!!!), и другие документы даже в другом месяце, если у них те же измерения не могут захватить эту строку для изменения (опять же если ресурсы изменились относительно старых)

13.38 - ИМХО - 6
13.41 - 2, тут это косвенно описано: https://its.1c.ru/db/metod8dev#content:5808:hdoc:медленное выполнение операции
« Последнее редактирование: Май 09, 2015, 08:31:46 pm от st1llman »

st1llman

  • Пользователь
  • **
  • Сообщений: 26
  • ФИО: Дмитрий
Re: Раздел 13, 14.
« Ответ #9 : Май 09, 2015, 10:32:09 pm »
14.20 - 5 - проверил.

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
Re: Раздел 13, 14.
« Ответ #10 : Май 09, 2015, 11:11:18 pm »
14.20 - 5 - проверил.

Кроме того, в случае если функция Представление() применяется к полю, которое является ссылкой более чем на три таблицы, язык запросов получает из базы данных только ссылочные значения, а значения представлений получает одним или несколькими дополнительными запросами. Такое поведение позволяет более эффективно получать представления для полей, которые ссылаются на большое количество таблиц (например, на любой справочник), за счет того, что в исполняемый запрос не будет помещаться большое количество соединений, которые необходимы для получения полей из которых состоит представление.
http://its.1c.ru/db/metod8dev#content:2655:hdoc:_top:%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5

Вроде через функцию Представление() не должно быть соединений.
Проверили - в профайлере видели запрос или как?

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
Re: Раздел 13, 14.
« Ответ #11 : Май 09, 2015, 11:16:29 pm »
13.32 - 2
В таблице итогов регистра типа "обороты" нет понятия текущих итогов, нет записи на 59990101, поэтому ответ 1.
Согласны?

st1llman

  • Пользователь
  • **
  • Сообщений: 26
  • ФИО: Дмитрий
Re: Раздел 13, 14.
« Ответ #12 : Май 10, 2015, 03:45:51 pm »
14.20 - 5 - проверил.

Кроме того, в случае если функция Представление() применяется к полю, которое является ссылкой более чем на три таблицы, язык запросов получает из базы данных только ссылочные значения, а значения представлений получает одним или несколькими дополнительными запросами. Такое поведение позволяет более эффективно получать представления для полей, которые ссылаются на большое количество таблиц (например, на любой справочник), за счет того, что в исполняемый запрос не будет помещаться большое количество соединений, которые необходимы для получения полей из которых состоит представление.
http://its.1c.ru/db/metod8dev#content:2655:hdoc:_top:%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5

Вроде через функцию Представление() не должно быть соединений.
Проверили - в профайлере видели запрос или как?

Да, тестировал на поле из 2 типов. На пяти типах действительно запрос был разбит на 2 отдельных:

SELECT
T1._Fld3261_TYPE,
T1._Fld3261_RTRef,
T1._Fld3261_RRRef
FROM dbo._AccumRg3260 T1


exec sp_executesql N'SELECT
T1._IDRRef,
T1._Code
FROM dbo._Reference3207 T1
WHERE (T1._IDRRef IN (@P1))
ORDER BY T1._IDRRef',N'@P1 varbinary(16)',0xAC7854F8A4E3661511E4F41443A4DC9E

Согласен с ответом 4  :)

st1llman

  • Пользователь
  • **
  • Сообщений: 26
  • ФИО: Дмитрий
Re: Раздел 13, 14.
« Ответ #13 : Май 10, 2015, 03:53:03 pm »
13.32 - 2
В таблице итогов регистра типа "обороты" нет понятия текущих итогов, нет записи на 59990101, поэтому ответ 1.
Согласны?

Да точно, но вопрос тогда неверный, т.к. для регистра оборотов нельзя включить текущие итоги, а в вопросе написано: "Используются текущие итоги"

tivanitsky

  • Пользователь
  • **
  • Сообщений: 28
Re: Раздел 13, 14.
« Ответ #14 : Май 11, 2015, 07:41:06 am »
14.16 кто что думает? :-) я думаю 2 и 3

Ваша реклама могла бы быть тут...