Имя: Пароль:
1C
1С v8
MS SQL не использует виртуальные таблицы. Почему?
0 simol
 
26.06.12
15:16
Решил исследовать для себя что лучше, отбор через точку в параметрах виртуальной таблицы или уже отбор на весь запрос.

Сделал запрос:

ВЫБРАТЬ
   ТоварыНаСкладахОбороты.Склад,
   ТоварыНаСкладахОбороты.КоличествоРасход
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Обороты КАК ТоварыНаСкладахОбороты


В профайлере

exec sp_executesql N'SELECT
T1.Fld20701RRef,
T1.Fld20706Expense_
FROM (SELECT
T2._Fld20701RRef AS Fld20701RRef,
CAST(SUM(CASE WHEN T2._RecordKind = 0.0 THEN 0.0 ELSE T2._Fld20706 END) AS NUMERIC(26, 8)) AS Fld20706Expense_
FROM _AccumRg20700 T2 WITH(NOLOCK)
WHERE T2._Active = P1 AND T2._RecordKind = @P2
GROUP BY T2._Fld20701RRef
HAVING (CAST(SUM(CASE WHEN T2._RecordKind = 0.0 THEN 0.0 ELSE T2._Fld20706 END) AS NUMERIC(26, 8))) <> @P3) T1',N'P1 varbinary(1),@P2 numeric(1),@P3 numeric(1)',0x01,1,0


Где AccumRg20700 - основаня таблица регистра

Почему не используется виртуальная таблица?
1 simol
 
26.06.12
15:18
(0)Что-то Миста рекламу вставляет в запрос
2 Господин ПЖ
 
26.06.12
15:18
а что собой должна представлять вирт. таблица?
3 Maxus43
 
26.06.12
15:19
нет в скуле вирт таблиц вобще, это запрос.
есть тока таблицы Итогова
4 simol
 
26.06.12
15:19
(2)Я подразумевал, что кроме таблиц итогов есть таблицы оборотов
5 simol
 
26.06.12
15:20
У регистров
6 Maxus43
 
26.06.12
15:20
нет
7 simol
 
26.06.12
15:20
Получается обороты по основной таблице строятся?
8 Господин ПЖ
 
26.06.12
15:20
(4) нет такой...
9 Maxus43
 
26.06.12
15:21
(7) да
10 Господин ПЖ
 
26.06.12
15:21
(7) сюрприз!

что же вы книжки то не читаете... и в структуру таблиц не смотрите
11 simol
 
26.06.12
15:22
Да уж, а я думал почему свои хитрые обороты по основной таблице не медленней запросов на виртуальной таблице
12 Ненавижу 1С
 
гуру
26.06.12
15:22
(4) это же остаточный регистр, там нет таблицы оборотов
13 simol
 
26.06.12
15:23
(10)Да как-то логика меня убеждала раз есть виртуальная таблица, то и есть в базе под нее таблица оборотов и я не интересовался
14 Ненавижу 1С
 
гуру
26.06.12
15:24
(13) особенно интересна таблица для среза последних
15 simol
 
26.06.12
15:24
(14)да, тоже сегодня в планах по разбираться с ней
16 Господин ПЖ
 
26.06.12
15:24
>Да как-то логика меня убеждала раз есть виртуальная таблица, то и есть в базе под нее таблица оборотов

здрасте... а view в скуле? ж.па есть, а слова нет...
17 Maxus43
 
26.06.12
15:24
*таблица = запрос в (14) :)
18 Infsams654
 
26.06.12
15:25
(0) вопрос от скуля: v8: Как вы живете без вьюшек?
19 Бледно Золотистый
 
26.06.12
15:25
(13)Слово "Виртуальная" вас не смущало?
20 simol
 
26.06.12
15:27
(19)Совершенно нет. Виртуальная таблица остатков имеет под себя таблицу в базе. Виртуальная подразумевается, что напрямую туда не тдоступа
21 H A D G E H O G s
 
26.06.12
15:29
То есть никого не смущает табличка
_AccumRgTnXX
22 Defender aka LINN
 
26.06.12
15:31
(0) А теперь задай период месяц, например, и сравни.
23 Defender aka LINN
 
26.06.12
15:31
(21) Не, нисколько.
24 simol
 
26.06.12
15:31
(21)это скорее для (19)
Попробовал на оборотном регистре.
Интересно зачем там вложенный запрос:

ВЫБРАТЬ
   ПродажиОбороты.Склад,
   ПродажиОбороты.КоличествоОборот
ИЗ
   РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты



exec sp_executesql N'SELECT
T1.Fld23623RRef,
T1.Fld20415Turnover_
FROM (SELECT
T2._Fld23623RRef AS Fld23623RRef,
CAST(SUM(T2._Fld20415) AS NUMERIC(32, 8)) AS Fld20415Turnover_
FROM _AccumRgTn20428 T2 WITH(NOLOCK)
GROUP BY T2._Fld23623RRef
HAVING (CAST(SUM(T2._Fld20415) AS NUMERIC(32, 8))) <> P1) T1',N'P1 numeric(1)',0
25 H A D G E H O G s
 
26.06.12
15:36
Все вкурил.
26 H A D G E H O G s
 
26.06.12
15:36
В остаточном регистре нет таблички для оборотов, в оборотном - есть.
27 ХочуСказать
 
26.06.12
15:38
(26) о сколько нам открытий чудных (с)
28 simol
 
26.06.12
15:39
(26)Оказалось, да, я удивлен, подразумевал само собой
29 H A D G E H O G s
 
26.06.12
15:40
(27) Всего и не упомнишь.
30 Maxus43
 
26.06.12
15:40
даже в оборотном же таблица итогов, а никак не оборотов
31 ХочуСказать
 
26.06.12
15:40
(28) а проф. разработку не читали?
32 ХочуСказать
 
26.06.12
15:40
(29) зачем помнить, если есть проф. разработка?
это в 77 приходилось самому таблицы ковырять, тут то все доступно
33 H A D G E H O G s
 
26.06.12
15:40
(31) Че ее читать. Пусть вот на тумбочке лежит.
34 ХочуСказать
 
26.06.12
15:41
(33) для тараканов и комаров хранишь?
35 H A D G E H O G s
 
26.06.12
15:41
От дикообразов чтобы отбиваться. Она хорошая, тяжелая.
36 ХочуСказать
 
26.06.12
15:44
(35) буду запасаться ножницами, что бы если что ежиков подстричь :)
которые кирпичами кидаются
37 simol
 
26.06.12
15:47
(30)В оборотном оборотная таблица
"AccumRgTn20428"    ""    "РегистрНакопления.Продажи"    "Обороты"
38 ХочуСказать
 
26.06.12
15:48
(37) со срезом последним лучше разберись
39 simol
 
26.06.12
15:50
(22)Задал две даты , не из оборотной, а из основной
40 Maxus43
 
26.06.12
15:50
(37) это таблица итогов
41 simol
 
26.06.12
15:52
(40)Речь про назначение итоговых таблиц, а не про классификацию итоги/агрегаты
42 Maxus43
 
26.06.12
15:56
(41) дак скулю пофиг какое назначение у таблицы по мнению 1с, он к ней запрос делает, если 1с решит что надо. данные там хранятся - Итоги
43 Aprobator
 
26.06.12
17:48
(0) хм - могу ошибаться, но все время считал что виртуальная таблица чем то смахивает на StoredProcedure в SQL.
44 acsent
 
26.06.12
17:59
Виртуальная таблица в большинстве случаев это на 1сном языке СтрЗаменить
45 acsent
 
26.06.12
17:59
имя вирт таблица на подзапрос
46 France
 
26.06.12
18:07
мс скл использует виртуальные таблицы.. это 1С их не использует..
47 Aprobator
 
28.06.12
14:37
виртуальные таблицы в скл и в 1С - разные понятия.
48 Shurjk
 
28.06.12
14:39
(26) В регистре остатков две талицы с остатками и оборотами, в регистре оборотов только  с оборотами.
А виртуальная табличка это по сути хранимая процедура.
49 ХочуСказать
 
28.06.12
15:41
(48) в остаточном регистре, нет таблицы итогов с оборотами
50 ХочуСказать
 
28.06.12
15:42
и никогда и не было