Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 November 14

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Dmitriy Ivanov
Нет, проблема, что не сможете построить нужное количество индексов, если только это не статические запросы которые никогда не меняются.
Они точно будут изменяться.... Вариантов много. Я понял, в общем только по индексам.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
Дмитрий Владимирович
Они точно будут изменяться.... Вариантов много. Я понял, в общем только по индексам.
Я пока не вижу в чем проблема хранить много атрибутов в одной таблице. Кроме того что написал выше.
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Кажется что "моветон"..  можно использовать более гибкий подходи. Ладно пойду думать, по индексам я на самом деле уже задала наводящий вопрос, ответа пока не было.
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Задала*
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Задал
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Дмитрий Владимирович
Кажется что "моветон"..  можно использовать более гибкий подходи. Ладно пойду думать, по индексам я на самом деле уже задала наводящий вопрос, ответа пока не было.
Прототипирование - один из этапов проектирования, особенно важный когда есть сомнения по архитектуре. Собрать лабораторию, накидать тестовых данных да посмотреть, погонять основные сценарии.
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
Прототипирование - один из этапов проектирования, особенно важный когда есть сомнения по архитектуре. Собрать лабораторию, накидать тестовых данных да посмотреть, погонять основные сценарии.
У исполнителя уже проблемы с большим кол-вом хардкода на бекенде (app server).
источник

ФГ

Федор Гулин... in SqlCom.ru - Стиль жизни SQL
Дмитрий Владимирович
Всем привет.
Редко вопросы задают, но вот появился. Используется СУБД MS Sql Server 2019 Ent.

Предлагается некоторая архитектурная реализация в которой наблюдается "не понятное" мне явление, но как переубедить  исполнителя - не знаю, не "пробиваемого" аргумента не могу подобрать.

Суть:

Имеется таблица
В которой содержатся данные о химических элементах по атрибутам, Id статьи, наименование статьи, Id отчёта, 116 атрибутов по содержанию и массе элементов(Decimal(38,18) - проблему расчётов с максимальным decimal удалось донести - должны изменить). Из этой таблицы происходит выборка в отчёт (SSRS), ед. измерения некоторых элементов могут различаться, поэтому для каждого из 116 атрибутов добавят ещё атрибут UOM, так же элементы могут иметь разные правила округления - для каждого из 116 атрибутов будет добавлен столбец roundRule... Так-же присутствуют атрибуты dateCreate, dateDelete, dateUpdate хотя  заявляют использование CDC, поэтому думаю что их уберут. Но на данный момент в одной таблице будет 362 атрибута. Конечно атрибуты будут разряженными.

Было предложено 2 альтернативы:

1. Структура на  базе справочников, сократить объем до 20 атрибутов в основной таблице  и пары справочников (наименованием столбца, наменование ед.изм, правила округления) .  Выбирать данные для отчёта из view и использовать PIVOT. Или выбирать из процедуры используя динам.sql.

2. Хранить все в одной сущности структуры :
"ключ", "наименование атрибута", "тип", "значение"... Т. е перевернутвя структура.

Эти альтернативы - называют сложными и игнорируют. Организационно не имею права за них реализовывать, только выдавать замечания, таблица из 362 атрибутов попахивает каким то **здец*м в дальнейшей работе.  

Есть мысли как аргументировать почему создание таблицы с таким набором атрибутов не очень хорошая идея ?
2 по моему EAV я б делал так
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Федор Гулин
2 по моему EAV я б делал так
Да, именно модель EAV. Эта альтернатива была предложена первой как наиболее очевидная в случаях когда много однотипных атрибутов и может существовать потребность в изменении атрибутного состава.
Когда получили ответ что с динамикой будет сложно работать и вообще это сложная структура,  предложили более локаничный вариант на справочниках - ответ был тот же.
источник

AK

Andy Korg in SqlCom.ru - Стиль жизни SQL
Дмитрий Владимирович
Всем привет.
Редко вопросы задают, но вот появился. Используется СУБД MS Sql Server 2019 Ent.

Предлагается некоторая архитектурная реализация в которой наблюдается "не понятное" мне явление, но как переубедить  исполнителя - не знаю, не "пробиваемого" аргумента не могу подобрать.

Суть:

Имеется таблица
В которой содержатся данные о химических элементах по атрибутам, Id статьи, наименование статьи, Id отчёта, 116 атрибутов по содержанию и массе элементов(Decimal(38,18) - проблему расчётов с максимальным decimal удалось донести - должны изменить). Из этой таблицы происходит выборка в отчёт (SSRS), ед. измерения некоторых элементов могут различаться, поэтому для каждого из 116 атрибутов добавят ещё атрибут UOM, так же элементы могут иметь разные правила округления - для каждого из 116 атрибутов будет добавлен столбец roundRule... Так-же присутствуют атрибуты dateCreate, dateDelete, dateUpdate хотя  заявляют использование CDC, поэтому думаю что их уберут. Но на данный момент в одной таблице будет 362 атрибута. Конечно атрибуты будут разряженными.

Было предложено 2 альтернативы:

1. Структура на  базе справочников, сократить объем до 20 атрибутов в основной таблице  и пары справочников (наименованием столбца, наменование ед.изм, правила округления) .  Выбирать данные для отчёта из view и использовать PIVOT. Или выбирать из процедуры используя динам.sql.

2. Хранить все в одной сущности структуры :
"ключ", "наименование атрибута", "тип", "значение"... Т. е перевернутвя структура.

Эти альтернативы - называют сложными и игнорируют. Организационно не имею права за них реализовывать, только выдавать замечания, таблица из 362 атрибутов попахивает каким то **здец*м в дальнейшей работе.  

Есть мысли как аргументировать почему создание таблицы с таким набором атрибутов не очень хорошая идея ?
не так давно пришлось переделывать БД в которой было несколько  таблиц с большим количеством колонок  с именами attrib_entity1, attrib_entity2, и т.п.
А подключили меня потому, что разработчики запутались в этих именах и завалили все сроки.
На вопрос почему не привели к нормальным формам ответили: "Что это такое?"
Может у вас то же такой же случай.
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Andy Korg
не так давно пришлось переделывать БД в которой было несколько  таблиц с большим количеством колонок  с именами attrib_entity1, attrib_entity2, и т.п.
А подключили меня потому, что разработчики запутались в этих именах и завалили все сроки.
На вопрос почему не привели к нормальным формам ответили: "Что это такое?"
Может у вас то же такой же случай.
Ну у EAV и вправду есть минусы, даже с ограниченным набором данных приходится разворачивать таблицу, а это  не может не сказываеться на производительности.
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
А так, да, может быть у нас и аналогичный случай.
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Раз даже структура на базе справочников сложна
источник

AK

Andy Korg in SqlCom.ru - Стиль жизни SQL
Дмитрий Владимирович
Ну у EAV и вправду есть минусы, даже с ограниченным набором данных приходится разворачивать таблицу, а это  не может не сказываеться на производительности.
Насколько я помню EAV особенно эффективна на разреженных матрицах.  Если у вас этот случай то можно привести это как аргумент.
источник

AK

Andy Korg in SqlCom.ru - Стиль жизни SQL
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Да, я описывал что скорей всего они будут использованы. А так да, точно есть 4 разных варианта наборов данных. (отчёта разных, по reportid)
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Это свойство столбца в смысле.
источник

DK

Dmitriy Kostarev in SqlCom.ru - Стиль жизни SQL
Здравствуйте подскажите как решить. Есть столбец с 0 и 1, необходимо посчитать  длинну каждой серии из 0 после которой следует 1
источник
2020 November 15

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Dmitriy Kostarev
Здравствуйте подскажите как решить. Есть столбец с 0 и 1, необходимо посчитать  длинну каждой серии из 0 после которой следует 1
Добрый день. Столбец BIT? Сортировка по умолчанию? Длинна - кол-во строк?
Ещё что то общее есть у каждого набора строк с пометкой 0? Id может какой-то, или значение столбцов? Если есть можно решить одним запросом через оконные функции
источник

ДВ

Дмитрий Владимирович... in SqlCom.ru - Стиль жизни SQL
Или группировкой
источник