Имя: Пароль:
1C
1С v8
Регистр Сведений. Зблудился в трех соснах
, ,
0 ironkrab
 
26.12.12
17:31
Доброе время суток, господа! Запутался в следующем: Пусть есть периодический регистр сведений, периодичность По позиции регистратора

измерения: подразделение, сотрудник, дата начала. Ресурс - Занятое время.
назначение регистра - планировать загрузку сотрудника.

Правильно ли я понимаю, что по мере заполнения регистра срез последних по нему будет занимать все дольше и дольше времении в конце концов вообще не выполнится???
1 Axel2009
 
26.12.12
17:33
лет стотыщ питсот поработаешь, может и не выполнится
2 pessok
 
26.12.12
17:34
а вот цены номенклатуры как-то работают...
3 Shurjk
 
26.12.12
17:34
Как перестанет выполняться сделаешь свертку базы
4 ДенисЧ
 
26.12.12
17:35
(0) может не выполниться. Особено, если ты серверу память ужмёшь до 100КБ (ладно, по заветам БГ до 640)... тогда может и не выполниться...
5 ironkrab
 
26.12.12
17:36
(1) за пол-года 40000 записей, запрос за последние три месяца выполняется 6 секунд. Вот и настораживает
6 ДенисЧ
 
26.12.12
17:36
40000 записей - это ничто. (Мы же о клиент-сервере говорим?)
7 ironkrab
 
26.12.12
17:37
После (5) возник вопрос: что будет через год таким темпом...
8 ironkrab
 
26.12.12
17:37
(6)-да, только файловом
9 ДенисЧ
 
26.12.12
17:37
(7) что-что... Ты наконец поймёшь, как правильно индексировать таблицы и строить запросы :-)
10 ДенисЧ
 
26.12.12
17:38
файловый - это вообще ни о чём... Это так.. Игрушка...
11 artems
 
26.12.12
17:38
(8) а индексацию базы то делаешь?
12 exwill
 
26.12.12
17:39
(0) С такими измерениями - зачем периодический?
13 ironkrab
 
26.12.12
17:41
(11)- Пробовал поставить индексы по измерению ДатаНачала, поставил его первым измерением в регистре - ощутимой разницы не почувствовал
14 wertyu
 
26.12.12
17:41
Тут вообще надо регистр накопления оборотный
15 ironkrab
 
26.12.12
17:41
(12) Чтобы можно было увидеть историю. Кто чем занимался в прошлом месяце
16 ironkrab
 
26.12.12
17:43
(14) Я думал об этом, но смутило что он вроде как не для этого, срез последних по нему трудно делать, надо мудрить.


А теперь: "Запоздалое бродит прозрение"
17 wertyu
 
26.12.12
17:46
Как раз для этого, отработанное время накапливается
18 ironkrab
 
26.12.12
17:47
Если я правильно понимаю: в виртуальных таблицах регистра накопления хранятся только данные о существующих измерениях (ну в смысле по тем по которым есть ресурсы) В виртуальных таблицах регистра оборотов хранятся данные за определенный интервал.

Правильно ли я понимаю что в виртуальной таблице моего регистра сведений будет хранится и пухнуть ВСЯ информация с начала времен, только по состоянию на определенную дату???
19 ДенисЧ
 
26.12.12
17:48
(18) в виртуальных таблицах вообще ничего не хранится. На то они и виртуальные.
20 ironkrab
 
26.12.12
17:48
(17) Так мне надо еще видеть и загрузку работника, типа с 3 до 4 он свободен, потом опять занят
21 Infsams654
 
26.12.12
17:48
(17) + в чем отличие даты регистратора от измерения дата начала ?
22 ДенисЧ
 
26.12.12
17:48
и даже если предположить невозможное, и посчитать, что ты имел в виду таблицы итогов, то нет, это неправда. Там будут храниться данные только за период периодичности :-) регистра.
23 exwill
 
26.12.12
17:49
(15) Для этого у тебя и так дата в измерениях стоит.
Ты будешь видеть историю планирования:
1 числа я запланировал на 10 вот это
2 числа я поменял свои планы на 10 вот так
2 числа, секундой позже я еще раз поменял планы на 10...
и т.д.
оно нужно?
24 ironkrab
 
26.12.12
17:49
(19)Ну, я имел в виду что они будут содержать данные с начала времен по состоянию на текущую дату. И запрос по ним из за этого будет выполнятся дольше???
25 ДенисЧ
 
26.12.12
17:50
(24) они НЕ будут содержать информацию от начала времён. Мы же про оборотный регистр?
26 Infsams654
 
26.12.12
17:50
(20) так зачем тогда периодисность по регистратору ?
27 exwill
 
26.12.12
17:53
Итог. Убираешь периодичность и получаешь нормальный регистр.
Если, конечно, периоды не пересекаются.
28 ironkrab
 
26.12.12
17:54
(24) про регистр остатков
29 ironkrab
 
26.12.12
17:55
(26) Сорри еще не указал, там есть ресурс "Состояние работы", выполнил, не выполнил, заказчик не пришел. Периодичность, чтобы видеть историю изменений
30 ДенисЧ
 
26.12.12
17:56
(28) А давай не будем про остатки, как ты их закрывать будешь? Бери оборотный...
31 ironkrab
 
26.12.12
17:58
(30) Извини, опечатался в (28) следует читать РЕГИСТР СВЕДЕНИЙ
32 ДенисЧ
 
26.12.12
17:58
(31) А я тебе про оборотный толкую. На него переводи.
33 ironkrab
 
26.12.12
18:01
(32) То есть я правильно понимаю в (18) Что
"В виртуальной таблице моего регистра сведений будет хранится и пухнуть ВСЯ информация с начала времен, только по состоянию на определенную дату???"
И потому запрос будет выполнятся все дольше и дольше?
34 wertyu
 
26.12.12
18:01
Возможно есть даже смысл в регистре расчета
35 ironkrab
 
26.12.12
18:02
(34)Ой, а я с ним вообще не знаком...
А чем он в этом случае будет лучше регистра оборотов?
36 wertyu
 
26.12.12
18:04
37 ironkrab
 
26.12.12
18:04
(27) Не поможет. Каждый день новое измерение. И виртуальная таблица с каждым днем толще и толще...
38 Axel2009
 
26.12.12
18:07
тут милиардами ворочают а ты про 40тыс в 3 месяца
39 Axel2009
 
26.12.12
18:07
ЗЫ если у тебя 40 тыс рассчитываются 6 секунд, я хз что там за запрос такой
40 ironkrab
 
26.12.12
18:07
(36) Спасибо, почитаю, подумаю.
У меня еще надежда теплится, мож кто подскажет секретный хинт ушами , чтобы выбирались данные в срезе последних только за определенный интервал. Ну на манер регистра оборотов...
41 ironkrab
 
26.12.12
18:10
(39) Ну сейчас еще раз запрос проинспектирую, спасибо!
42 Axel2009
 
26.12.12
18:16
(40) сам выбирай срез последних
43 ironkrab
 
26.12.12
18:20
(39) Вот запрос:
ВЫБРАТЬ
   ПланированиеРаботСрезПоследних.Период,
   ПланированиеРаботСрезПоследних.Регистратор,
   ПланированиеРаботСрезПоследних.Подразделение,
   ПланированиеРаботСрезПоследних.Сотрудник,
   ПланированиеРаботСрезПоследних.ДатаНачала КАК ДатаНачала,
   ПланированиеРаботСрезПоследних.Работы,
   ПланированиеРаботСрезПоследних.Состояние КАК СостояниеПлРабот,
   ПланированиеРаботСрезПоследних.Клиент,
   ПланированиеРаботСрезПоследних.ДатаОкончания КАК ДатаОкончания,
   НАЧАЛОПЕРИОДА(ПланированиеРаботСрезПоследних.ДатаНачала, ДЕНЬ) КАК НачалоДняЗаплРаботы,
   ПланированиеРаботСрезПоследних.Скидка
ИЗ
   РегистрСведений.ПланированиеРабот.СрезПоследних(&КонечнаяДата, ДатаНачала МЕЖДУ &НачальнаяДата И &КонечнаяДата) КАК ПланированиеРаботСрезПоследних

УПОРЯДОЧИТЬ ПО
   ДатаНачала,
   ДатаОкончания
44 ironkrab
 
26.12.12
18:21
(42)то есть? Я выбираю в запросе, запрос в СКД...
45 ironkrab
 
26.12.12
18:35
(38) Действительно, миллиардами??? Ну не знаю. Структуру регистра я изложил. Запрос выложил.
Где собака порылась в толк не возьму, но мне кажется не должен отчет за три месяца шесть секунд выполнятся...
46 Axel2009
 
26.12.12
18:41
(43) измерения какие? ресурсы какие?
47 ironkrab
 
26.12.12
18:44
Измерения: Дата начала, Подразделение, Сотрудник

Ресурсы: Состояние,ДатаОкончания,Клиент,Скидка
48 Aprobator
 
26.12.12
18:45
имхается мне, что ДатаНачала ресурс.
49 Aprobator
 
26.12.12
18:45
а не - мимо )
50 ironkrab
 
26.12.12
18:48
(46)Да, тестирую это на обычной рабочей лошадке- проц 2,3ГГц, оператива 2 Гига
51 Aprobator
 
26.12.12
18:48
а вообще если файловая база. То что там со свободным местом на диске и когда последний раз дефрагментация делалась, ну и какие диски то стоят вообще?
52 ironkrab
 
26.12.12
18:53
(51) Свободного места около гига. Дефрагметация -наверное, никогда.
53 Axel2009
 
26.12.12
19:06
(47) а порядок измерений какой?
54 ironkrab
 
27.12.12
10:09
(54) Такой как указан в (47)
55 ptiz
 
27.12.12
10:40
(0), (43) Не нужна тебе периодичность в этой задаче и не нужен срез последних.  Просто выбирай записи с ДатаНачала МЕЖДУ ...
56 Axel2009
 
27.12.12
10:48
(54) вообще странно. надо смотреть план запроса, чтобы понять что там долго выполняется
57 ironkrab
 
27.12.12
11:28
(55)
1 Ну если не будеит периодичности, то как например отобразить отмену работ выполняемых сотрудником, или перенос их на другую дату. По одним и тем же измерениям нельзя сделать вторую запись, чтобы в ресурс состояние написать "Отменена" или "Выполнена"

2 -То есть обращатся не к виртуальной таблице "срез последних", а к физической таблице регистра сведений?
А что мне это даст, все равно придется выбирать из всех записей (Насколько я понимаю аналогов таблицы Итогов в регистре сведений нет и поэтому будет эффект незакрытых периодов регистра накопления)
58 ptiz
 
27.12.12
13:31
(57) Ну оставь периодический регистр, но к "срезу последних" лезть незачем.
59 ironkrab
 
27.12.12
15:29
Так, кажись понял в чем дело: у меня первое измерение "ДатаНачала" тип Дата. Всего по этому измерению у меня тысяч 15 различных значений накопилось за весь период.
А записей с разными значениями ресурса по одному и тому-же измерению регистра 2-3 записи.

Когда я в конфигурации УНФ смоделировал подобное с регистром сведений "Цены номенклатуры" (создал записей на 20 тыс РАЗЛИЧНОЙ номенклатуры), время выполнения простого запроса по срезу последних было сопоставимым с тем что у меня.
Что теперь делать - хз.
Закон Брукера: Даже маленькая практика стоит большой теории.