![]() |
|
быстрый поиск по доп сведениям | ☑ | ||
---|---|---|---|---|
0
vasbur
09.10.14
✎
09:52
|
Есть у меня БП 2.0
В ней есть много-много РТУ, у них есть допсвойство "ОченьВажноеДопсвойство", значение которого пишется в "значенияСвойствОбъектов". Мне нужно быстро-быстро выбирать документы за заданный период, имеющие фиксированное значение допсвойства. Как это можно сделать? Если выбирать по документам - то придется лопатить много-много документов с другими значениями допсвойств. Если выбирать по регистру "значениеСвойствОбъектов" - то придется лопатить много-много документов, относящихся к другим периодам. |
|||
1
Cube
09.10.14
✎
09:53
|
(0) Запросом.
|
|||
2
vasbur
09.10.14
✎
09:54
|
(1) не любой запрос быстро работает
|
|||
3
vasbur
09.10.14
✎
10:44
|
Up
|
|||
4
mehfk
09.10.14
✎
10:48
|
Покажи запрос, который есть.
|
|||
5
vasbur
09.10.14
✎
10:50
|
(4) пока нет запроса.
вопрос в том, как написать максимально быстрый запрос для решения этой задачи |
|||
6
Banned
09.10.14
✎
10:54
|
(5) Напиши сначала, вдруг получится быстро
|
|||
7
mehfk
09.10.14
✎
10:55
|
написать руками или с помощью конструктора.
|
|||
8
Cube
09.10.14
✎
10:56
|
(7) На стуле или в кресле.
|
|||
9
Cube
09.10.14
✎
10:56
|
(6) :)
|
|||
10
Banned
09.10.14
✎
10:57
|
(7) Можешь при помощи программиста написать, я не возражаю...
|
|||
11
ssh2QQ6
09.10.14
✎
10:58
|
(5) > пока нет запроса
значит пока нет и проблемы со скоростью его работы |
|||
12
mehfk
09.10.14
✎
10:58
|
(10) Ты не мне советуй, ты топикстартеру советуй
|
|||
13
Cube
09.10.14
✎
11:14
|
(12) Я тебя в (8) тоже с ТС перепутал))
|
|||
14
vasbur
09.10.14
✎
12:09
|
Собственно, есть два очевидных варианта:
Вариант 1: ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Объект.Дата МЕЖДУ &Дата1 И &Дата2 Вариант 2: ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО РеализацияТоваровУслуг.Ссылка = ЗначенияСвойствОбъектов.Объект И (ЗначенияСвойствОбъектов.Свойство = &Свойство) ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2 |
|||
15
Defender aka LINN
09.10.14
✎
12:14
|
ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Документ.РеализацияТоваровУслуг).Дата МЕЖДУ &Дата1 И &Дата2
|
|||
16
Cube
09.10.14
✎
12:15
|
Вариант 2.01:
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО РеализацияТоваровУслуг.Ссылка = ЗначенияСвойствОбъектов.Объект И (ЗначенияСвойствОбъектов.Свойство = &Свойство) И (еализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2) |
|||
17
vasbur
09.10.14
✎
12:19
|
(16) Все равно долго будет: нужно сначала выбрать все записи из регистра по свойству, а потом уже будет фильтрация по типу документа и дате
|
|||
18
Krolik Bezobraznik
09.10.14
✎
12:21
|
(17) Вы время замерили, долго это сколько? Так из спортивного интереса.
|
|||
19
vasbur
09.10.14
✎
12:23
|
(18) не не замерял.
можно же силой мысли задачи решать. |
|||
20
Cube
09.10.14
✎
12:52
|
(18) +100
|
|||
21
Cube
09.10.14
✎
12:52
|
(19) Устриц не ел, но осуждаю.
|
|||
22
Cube
09.10.14
✎
12:53
|
(21) Или как там было?))
|
|||
23
vasbur
09.10.14
✎
13:06
|
(22) Электричество можно изучать по учебникам, а можно методом сования пальцев в розетку
|
|||
24
Cube
09.10.14
✎
13:09
|
(23) Ну так и читай учебники, что ж ты пальцы в розетку суешь по совету писателей с мисты?)))))
|
|||
25
hhhh
09.10.14
✎
13:09
|
(23) ну это, реквизит "Свойство" точно-точно проиндексирован у вас?
|
|||
26
vasbur
09.10.14
✎
13:14
|
(25) в типовой бухии он не проиндексирован :(
|
|||
27
RomanYS
09.10.14
✎
13:25
|
Есть еще третий вариант (про скорость ничего сказать не могу):
ВЫБРАТЬ РТУ.Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК РТУ ГДЕ РТУ.Ссылка В (ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство) И РТУ.Дата МЕЖДУ &Дата1 И &Дата2 |
|||
28
hhhh
09.10.14
✎
13:25
|
(26) ну проиндексируй.
и не задавай вопросов: "нужно сначала выбрать все записи из регистра по свойству" SQL он на то и SQL, там нет сначала и потом, там параллельно всё. |
|||
29
vasbur
09.10.14
✎
13:29
|
(28) нужно чтобы на типовой БП 2.0 работало.
|
|||
30
RomanYS
09.10.14
✎
13:32
|
когда мы увидим результаты замеров?
|
|||
31
ssh2QQ6
09.10.14
✎
13:42
|
(26) Специально индексировать не нужно. При отборе по объекту и свойству и так будет использован кластерный индекс, который создает сама платформа
Измерение1 + [Измерение2 +...] (Кластерный) |
|||
32
vasbur
09.10.14
✎
13:43
|
(30) когда реализация будет
пока я интерфейсный прототип пишу, попутно пытаясь понять, что технически реализуемо, а что - нет. |
|||
33
vasbur
09.10.14
✎
13:44
|
(31) вот что такое индекс Измерение1 + [Измерение2 +...] (Кластерный) ?
В частности, по какому ключу упорядочек "индекс1" в случае если его тип - составной? |
|||
34
ssh2QQ6
09.10.14
✎
13:45
|
(33) "Индекс, включающий все измерения в том порядке, в котором они заданы при конфигурировании. Индекс кластерный, если регистр независимый."
http://its.1c.ru/db/metod8dev#content:1590:1 |
|||
35
RomanYS
09.10.14
✎
13:47
|
(32) а засунуть запросы в консоль и посмотреть не проще? может тему и создавать не стоило...
|
|||
36
vasbur
09.10.14
✎
13:50
|
(34) я правильно понимаю, что отдельного индекса по Измерение2 нет? Т.е. если отбирать записи только по "ЗначенияСвойствОбъектов.Свойство = &Свойство" - то индекс использоваться не будет и скуль будет все записи регистра лопатить?
|
|||
37
vasbur
09.10.14
✎
13:51
|
(35) вы правда считаете, что однократный запуск на тестовой площадке даст понимание производительности запроса в различных боевых ситуациях?
|
|||
38
ssh2QQ6
09.10.14
✎
13:52
|
(36) не будет использоваться
|
|||
39
vasbur
09.10.14
✎
13:53
|
(38) Засада.
Т.е. по-любому нужно сначала выбирать документы, а потом линковать к ним записи регистра. Пичалка, чо, |
|||
40
mehfk
09.10.14
✎
13:54
|
ВЫБРАТЬ
ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Документ.РеализацияТоваровУслуг) КАК Документ ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК МойТип) = &Значение И ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Документ.РеализацияТоваровУслуг).Дата МЕЖДУ &НачДата И &КонДата |
|||
41
RomanYS
09.10.14
✎
13:55
|
(37) ты же не тиражное решение пишешь,
если тестовая площадка имеет характеристики сравнимые с боевой, то какую-то информацию замер конечно же даст, даже однократный |
|||
42
vasbur
09.10.14
✎
13:56
|
(40) в этом случае не будет использоваться индекс, т.е, запрос сначала выберет все записи регистра сведений а потом уже будет лопатить
|
|||
43
vasbur
09.10.14
✎
13:56
|
(41) тиражное, в том-то и дело
|
|||
44
vasbur
09.10.14
✎
14:01
|
ан нет: Измерение "Свойство" - ведущее, поэтому индексируется (хоть в конфигураторе и стоит значение "не индексировать")
Тогда вопрос остается таким: вот у нас есть индекс Измерение2+Измерение1, в каком порядке идут ключи в измерении1? |
|||
45
mehfk
09.10.14
✎
14:03
|
(44) Ты заставил меня посмотреть план запроса. Показать?
|
|||
46
vasbur
09.10.14
✎
14:04
|
(45) покажи
|
|||
47
vasbur
09.10.14
✎
14:05
|
(40) чорт, я про значение-то забыл. Спасибо.
вобщем, никак только по индексам не построить |
|||
48
mehfk
09.10.14
✎
14:06
|
||||
49
vasbur
09.10.14
✎
14:08
|
(48) тк вижу в первый раз - мало что понял
|
|||
50
mehfk
09.10.14
✎
14:11
|
О_о, какой тогда был смысл об индексах рассуждать если все равно ничего не понятно
|
|||
51
vasbur
09.10.14
✎
14:13
|
(50) просто я с инструментом этим не сталкивался
Индексы - достаточно общая вещь так-то |
|||
52
DexterMorgan
09.10.14
✎
14:35
|
(51) причем здесь инструмент если ты не понимаешь чем index seek отличается от index scan и table scan
|
|||
53
vasbur
09.10.14
✎
14:37
|
(52) Помоему, это специфичные скульные понятия
|
|||
54
DexterMorgan
09.10.14
✎
14:38
|
(53) т.е. с таким "специфичным" инструментом как SQL ты не сталкивался?
|
|||
55
vasbur
09.10.14
✎
14:42
|
(54) сталкивался, но но в таком объеме :)
но я, конечно догадываюсь, что означают index seek, index scan, table scan |
|||
56
vasbur
09.10.14
✎
14:42
|
(54)* но не в таком объеме
|
|||
57
cons74
09.10.14
✎
14:51
|
(0) а чего бы просто реквизит на РТУ не повесить?
|
|||
58
vasbur
09.10.14
✎
18:54
|
(57) должно на типовой работать
|
|||
59
hhhh
09.10.14
✎
18:58
|
(58) тогда забудь про скорость
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |