Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Количество записей в Табличном Поле (число прочтений - 7360 )
Электроник
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 57
Зарегистрирован: 24. Июля 2009
Re: Количество записей в Табличном Поле
Ответ #30 - 27. Июля 2009 :: 07:12
Печать  
Текст запроса ТП:
Код
Выбрать все
select top 26
Спр.Descr as Наименование,
Спр.ROW_ID as ROW_ID,
Спр.Id as ИД,
Спр.Code as Код,
Р1.ОстатокПоФирме as ОстатокПоФирме,
Р1.ОстатокНаСкладе as ОстатокНаСкладе
from sc84 as Спр (NOLOCK)
LEFT JOIN
	(SELECT
		Р.Номенклатура,
		SUM(Р.ОстатокПоФирме) as ОстатокПоФирме,
		SUM(Р.ОстатокНаСкладе) as ОстатокНаСкладе
	FROM
		(SELECT
			Рег.sp408 as Номенклатура,
			CASE WHEN Рег.sp4062='     7   ' THEN Рег.sp411 ELSE 0 END as ОстатокПоФирме,
			CASE WHEN Рег.sp4062='     7   ' AND Рег.sp418='     1   ' THEN Рег.sp411 ELSE 0 END as ОстатокНаСкладе
		FROM rg405 as Рег (NOLOCK)
		WHERE
			Рег.Period = '20090701'
			AND Рег.sp4062='     7   '
		) as Р
	GROUP BY Р.Номенклатура
) as Р1 ON Р1.Номенклатура = Спр.ID
--where Спр.Descr > @OKParam_0 or Спр.ROW_ID > @OKParam_1 and Спр.Descr = @OKParam_0
order by Спр.Descr, Спр.ROW_ID
 


План:
  
Наверх
 
IP записан
 
Электроник
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 57
Зарегистрирован: 24. Июля 2009
Re: Количество записей в Табличном Поле
Ответ #31 - 28. Июля 2009 :: 06:24
Печать  
Всем спасибо за помощь! Улыбка
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Количество записей в Табличном Поле
Ответ #32 - 28. Июля 2009 :: 06:27
Печать  
отсюда конечно плохо видно детали твоего плана, но получив у себя план по аналогичному запросу, заверяю - план отличный.
  

1&&2&&3
Наверх
 
IP записан
 
Электроник
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 57
Зарегистрирован: 24. Июля 2009
Re: Количество записей в Табличном Поле
Ответ #33 - 28. Июля 2009 :: 07:14
Печать  
trad писал(а) 28. Июля 2009 :: 06:27:
... заверяю - план отличный.

Это хорошо. А вот еще вопросик по Таб.Полю. Например, есть запрос:
Код
Выбрать все
        |SELECT
	|	Спр.ROW_ID as ROW_ID,
	|	Спр.Id as ИД,
	|	Спр.Code as Код,
	|	Спр.Descr as Наименование,
	|	.........
	|	СпрВал.ROW_ID as Вал_ROW_ID,
	|	СпрВал.Descr as Валюта,
	|	.........
	|FROM
	|	$Справочник.Номенклатура as Спр (NOLOCK)
	|.......
	|LEFT JOIN
	|  $Справочник.Цены as СпрЦ (NOLOCK) ON СпрЦ.ParentExt = Спр.ID AND
	|                           $СпрЦ.ТипЦен = :ВыбТипЦены
	|							and Спр.IsFolder = 2
	|LEFT JOIN $Справочник.Валюты as СпрВал (NOLOCK) ON СпрВал.id = $СпрЦ.Валюта
	|.......... 


Дальше в коде:
Код
Выбрать все
...
ПостДанных.УстКлючПорядка("Наименование ASC, ROW_ID ASC");
ПостДанных.УстИДПоле("ИД");
...
Колонка = ТП.Колонки.Добавить("Валюта");
Колонка.Данные = "Валюта";
... 


Т.е. поле "Валюта" отображается в ТП, а поле "Вал_ROW_ID", понятное дело, нет. При этом поставщик данных это самое "Вал_ROW_ID" даже не включает в запрос на сервер.
Вопрос номер раз: если в запросе нет этого поля, то в индекс справочника я не попадаю?
Вопрос номер два: если воспользоваться свойством ПоляДанныхODBC "АвтоУдаление" и заставить получать его с сервера, то попадет ли в индекс и соотв-но будет ли ускорение?
Спасибо, что дочитали до конца.  Подмигивание

  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Количество записей в Табличном Поле
Ответ #34 - 28. Июля 2009 :: 07:22
Печать  
Цитата:
Вопрос номер раз: если в запросе нет этого поля, то в индекс справочника я не попадаю?
в данном случае попадаешь в индекс IDD. row_id вообще ни к чему
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Количество записей в Табличном Поле
Ответ #35 - 28. Июля 2009 :: 07:25
Печать  
каждый тип цены для каждого товара уникальны?
если нет или это не гарантировано, то будут проблемы
  

1&&2&&3
Наверх
 
IP записан
 
Электроник
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 57
Зарегистрирован: 24. Июля 2009
Re: Количество записей в Табличном Поле
Ответ #36 - 28. Июля 2009 :: 08:55
Печать  
trad писал(а) 28. Июля 2009 :: 07:22:
Цитата:
Вопрос номер раз: если в запросе нет этого поля, то в индекс справочника я не попадаю?
в данном случае попадаешь в индекс IDD. row_id вообще ни к чему

Понял. Спасибо.

trad писал(а) 28. Июля 2009 :: 07:25:
каждый тип цены для каждого товара уникальны?
если нет или это не гарантировано, то будут проблемы

Для каждой Номенклатуры можно задать только по одной цене конкретного типа. А проблемы - это задвоение номенклатуры в выборке, так?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Количество записей в Табличном Поле
Ответ #37 - 28. Июля 2009 :: 09:47
Печать  
Электроник писал(а) 28. Июля 2009 :: 08:55:
А проблемы - это задвоение номенклатуры в выборке, так?

Да. При этом не будет обеспечена уникальность КП, а это приведет к тому что ТП иногда может начать ходить по кругу либо вообще падать.
  

1&&2&&3
Наверх
 
IP записан
 
Электроник
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 57
Зарегистрирован: 24. Июля 2009
Re: Количество записей в Табличном Поле
Ответ #38 - 28. Июля 2009 :: 10:58
Печать  
Ага. Хорошо что предупредил.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать