Почему не рекомендуется создавать измерения регистра примитивного типа? #604263


#0 by Habist
Кто может объяснить, почему не рекомендуется создавать измерения регистра примитивного типа? Про измерения составного типа понятно - из-за особенностей хранения, индексирования и сравнения полей составного типа в СУБД, а вот с примитивным не понятно почему не рекомендуется.
#1 by Deon
А зачем?
#2 by GROOVY
Кем не рекомендуется?
#3 by Maxus43
кто не рекомендует? в типовых что с примитивным, что составным дофига. с составным - каждый 2-й регистр активно использующийся вобще
#4 by Aleksey
Библия (не путать с религией)
#5 by GROOVY
Салон по продаже сотовых. Регистр остатков. Измерение IMEI - число.
#6 by dk
имхо строковые не рекомендуются, а целочисленные и даты сойдут
#7 by Широкий
строковые некошеры только с переменной длиной
#8 by dk
ну и с регистром строк мона напортачить
#9 by Habist
да вот в мозгу сидит, а где это читал или слышал - не помню
#10 by Aleksey
В проф.разработки это написано. Правда сходу врятли найду
#11 by Habist
вот тоже сегодня ее просматривал - не нашел
#12 by Maxus43
делай если надо и примитивные и составные. С примитивными - точно не надо делать, остальное хз
#13 by acsent
некошерно делать составные типы включающие примитивные
#14 by Habist
вопрос не в том, сделать-то можно измерение примитивного типа и сам много раз так и делал, но в чем проблема с такими измерениями? Чтение запись увеличится по времени или получение итогов или еще что?
#15 by GROOVY
+100500
#16 by Habist
особенно если несколько таких измерений
#17 by Kashemir
Строки неприятно индексировать :) Почему не рекомендованы составные поля, включающие примитивные - значения каждого из 3 возможных примитивных типов хранятся в отдельных колонках, в то время как все ссылочные составные описываются 2 полями  ссылочная таблица + ИД
#18 by Habist
Кому неприятно? СУБД? Вообще то примитивных 4: строка, дата, число, булево
#19 by Kashemir
Совершенно верно - 4. Очепятко. Изменение базовой кодировки СУБД приведет к необходимости пересчета индекса и само собой разным результатам для разных кодировок
#20 by andrewks
ещё есть Null и Неопределено
#21 by Habist
null и неопределено это же не типы данных, это служебные типы
#22 by s03
Это касается регистров остатков. И рекомендация основана только на том, что появляются случаи, когда становится сложнее отслеживать правильность, ну т.е. если, например, сделать измерение строкой, то от простой опечатки (или неправильного написания) регистр просто не будет закрываться. Может слишком грубый пример, но он очень хорошо отражает причину такой рекомендации.
#23 by Господин ПЖ
> И рекомендация основана только на том, что появляются случаи, когда становится сложнее отслеживать правильность, ну т.е. если, например, сделать измерение строкой, то от простой опечатки (или неправильного написания) регистр просто не будет закрываться жестокий бред...
#24 by Habist
очень похоже на правду, т.е. не рекомендуется из-за человеческого фактора
#25 by Господин ПЖ
длина индекса не резиновая... можно и итоге получить scantable каждый раз при обращении к таблицам... бухи хлопают в ладоши от скорости и блокировок
#26 by Habist
может быть вы осветите этот вопрос?
#27 by Habist
на измерение примитивного типа и в индексе и в таблице хранения выделяется только одно поле. При чем здесь длина индекса?
#28 by Господин ПЖ
>на измерение примитивного типа и в индексе и в таблице хранения выделяется только одно поле бугага... ЗЫ притом... читайте буквари... не пейте кефир
#29 by Habist
вы наверное перепутали с составным типом
#30 by Feanor
порекомендуйте букварь :)
#31 by Господин ПЖ
"Проф. разработка 8.0"
#32 by Habist
пока только одно разумное объяснение
#33 by Господин ПЖ
#34 by Serg_1960
Отрывки из статей ИТС: "Нагрузка на систему существенно возрастает, если используются поля, в которых совмещаются ссылочные типы и примитивные типы или несколько примитивных типов. Такие поля рекомендуется использовать только в специальных случаях.   Наиболее "опасной" является ситуация, когда поле с составным типом, включающее ссылочные поля и примитивные типы или несколько примитивных типов, участвуют в индексах. Соответственно не рекомендуется использовать такие поля в измерениях регистров и в типах субконто." "При определении структур регистров накопления и регистров бухгалтерии следует внимательно относиться к определению состава измерений и количества субконто. Так как система поддерживает хранение рассчитанных итогов по этим регистрам, то количество измерений, типы данных измерений, а также количество и типы данных субконто определяют состав ключевых полей в таблицах хранения итогов. Большая длина или большое количество ключевых полей может существенно снизить производительность работы системы."
#35 by Habist
спасибо, полезная инфа, но в ней превышено ограничение не по количеству полей индекса - 16 полей, а по размеру индекса - 900 байт. Получается что проблема только в длинне строк, т.е. если бы он сделал 12 измерений типа Строка с длиной 10, тогда бы индекс создался.
#36 by Господин ПЖ
создастся конечно, куда денется... в примерно это и описано текстовое поле огранниченной не плавающей длины... проблемы не закрытия - это в первую очередь проблемы размера базы
#37 by Habist
получается с булево и с дата вообще не может быть проблем, при использовании в измерениях. Ну теперь вроде все понятно стало. Всем спасибо
#38 by Habist
странно, сейчас создал регистр сведений с 12 измерениями типа Строка переменная 1000.(Кстати нельзя создать измерение с неограниченной длиной строки в 540 платформе) Все нормально создалось, индекс тоже в SQL создался, состоит из 12 полей, размер каждого - 2000(не знаю в чем). Может в 2008 R2 уже другие ограничения на индекс?
#39 by Habist
вот по полям ограничение прошло - создал 17 измерений, строка 1000, в индексе всего 16 полей
#40 by vde69
если-бы 1с нормально работала с примитивными типами - проблемм не было... реально примитивный тип в 1с это ИдентификаторТипа+ХарактеристикаТипа(длина,точность)+Значение. по этому булево занимает не 1 бит, и даже не 1 байт а куда больше :)
#41 by vde69
индксы создаются, ограничение есть на кластерный индекс, если разницу понимаешь - то велком, иначе - читать в поиск
#42 by fisher
В правда (особенная жесть в бух-регистрах получается). Все остальное - бред и ОБС.
#43 by H A D G E H O G s
Че то ты загнал.
#44 by H A D G E H O G s
Данными заполнил?
#45 by H A D G E H O G s
Примитивный тип - это именно Numeric NVarchar DataTime Binary - для булево, непонятно, есть же bit в SQL.
#46 by H A D G E H O G s
Вот - лучшее, что читал по индесам
#47 by vde69
во первых я имел в виду именно принцип построения индекса а не хранение данных, а во вторых глянь в табличку как там реально хранится :)
#48 by H A D G E H O G s
Вот как то так
#49 by Habist
да, тож это читал, хорошая статья
#50 by Habist
про какое ограничение говоришь, по количеству полей или по длине 900 байт? Хочещь сказать что для некластерного индекса нет ограничений по длине или по полям?
#51 by fisher
Мне вот всегда было интересно, по каким правилам "растут" эти деревья индексов. Фиг с ней с поддержкой сбалансированности. Что в таких деревьях динамическое - количество уровней или количество веток у узла?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С