• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

7.7 Порядок Измерений В Регистре Остатков

  • Автор темы olga13
  • Дата начала
O

olga13

Добрый день. Хотелось бы узнать, имеет ли значение порядок измерений в регистре остатков? Какой вариант лучше:

Товар, Партия, СтрокаПартии, Склад
или
Склад, Товар, Партия, СтрокаПартии?
 
O

olga13

Я где-то читала, что первый вариант более правильный. При такой структуре регистра быстрее работают запросы. Вопрос, насколько быстрее. Стоит ли вносить такие глобальные изменения, или увеличение производительности будет настолько несущественным, что не стоит таких трудозатрат?
 
V

vitfil

Ольга13
Порядок измерений имеет очень большое значение. Первыми должны идти те, по которым чаще всего делается отбор. Например, если у вас мало товаров, но много складов, с которых вы можете отгружать эти товары, и задача стоит в выборе склада, то правильным будет ваш первый вариант. Если же у вас задача подбора товара по определенному складу, то предпочтительней будет ваш второй вариант.
 
O

olga13

Ольга13
Порядок измерений имеет очень большое значение. Первыми должны идти те, по которым чаще всего делается отбор. Например, если у вас мало товаров, но много складов, с которых вы можете отгружать эти товары, и задача стоит в выборе склада, то правильным будет ваш первый вариант. Если же у вас задача подбора товара по определенному складу, то предпочтительней будет ваш второй вариант.

Что-то вы меня еще больше запутали. Почему первый вариант, если чаще отбор идет по складам? Вы же сами пишете, что "Первыми должны идти те, по которым чаще всего делается отбор."?
 
H

Hryv

Выбор<>отбор, даже наоборот
Выбор склада = отбор по товару
Выбор товара = отбор по складу
 
A

Allexei

//Описание для 8-и, думаю для 7- то же будет актуально

Вообще то порядок следования измерений регистра влияет на создание индексов. Как пример, есть у нас регистр у которого измерения идут в следующем порядке
*Склад
*Номенклатура
*Характеристика
Будет создан примерно следующий индекс - Склад+Номенклатура+Характеристика+Период+Регистратор. Так же возможны и другие индексы, все зависит от настроек регистра - но этот будет основным.
Теперь приведем пример запроса:
Если у нас будет запрос типа
Выбрать Склад, Номенклатура, Характеристика Из Регистр.Наш.Остатки(, Номенклатура, Характеристика) - в данном случае будет оптимальное выполнение запроса так ка нет отбора по первому полю(смотрим наш индекс). СУБД вынуждено будет просканировать всю таблицу регистра.
Второй вариант:
Выбрать Склад, Номенклатура, Характеристика Из Регистр.Наш.Остатки(, Склад, Характеристика) - аналогично первому, такого индекса у нас нет.Субд выполнит поиск по первому индексу (склад), а потом будет сканировать оставшиеся записи
Третий вариант
Выбрать Склад, Номенклатура, Характеристика Из Регистр.Наш.Остатки(, Номенклатура, Склад) - а вот этот запрос будет выполнен оптимально.Субд просканирует индекс по первому полю(склад), потом по второму и выплюнет нужные нам записис. следует обратить внимание что порядок следования условий значения не имеет.

Надеюсь ответил на Ваш вопрос B)
 
O

olga13

В продолжение темы о регистрах. Нужен совет, как лучше поступить.
Имеется регистр остатков "Остатки товаров на комиссии" со следующими измерениями:
Фирма, Комитент, Договор, Товар, Партия, СтрокаПартии.
Есть необходимость для документа "Отчет комиссионера" получать сведения о стране происхождения товара. Получить их можно из приходных документов.
Вопрос: что лучше - добавить в регистр измерение "Страна" либо крутить в цикле запрос, который из приходов будет вытаскивать нужные сведения?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!