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


I Love YaBB 2!

Сообщений: 19
Зарегистрирован: 11. Июня 2008
Re: Создание OLAP cube 1С77
Ответ #30 - 02. Июля 2008 :: 09:38
Печать  
berezdetsky писал(а) 01. Июля 2008 :: 15:39:
К примеру, 1000 клиентов * 50000 ТМЦ = 50000000 записей. Оно тебе точно надо?

Надо, но не все - часть ТМЦ потом отсеку (когда в справочнике ТМЦ упорядочится).
Запустил и нетрогал. Минут через 40-45 выдало в окне сообщений:
Код
Выбрать все
Error # -2147217915 : Объект был открыт.
Консоль.СоздатьКуб(ТекстЗапроса, "D:\mytest.cub");
 


Что б это сообщение значило??? Куда рыть???  Печаль
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание OLAP cube 1С77
Ответ #31 - 02. Июля 2008 :: 12:07
Печать  
Nikolaj писал(а) 02. Июля 2008 :: 09:38:
berezdetsky писал(а) 01. Июля 2008 :: 15:39:
К примеру, 1000 клиентов * 50000 ТМЦ = 50000000 записей. Оно тебе точно надо?

Надо, но не все - часть ТМЦ потом отсеку (когда в справочнике ТМЦ упорядочится).

Круглые глаза

Вот тебе алгоритм со сложностью n+m (а не n*m, как у cross join).
Код
Выбрать все
SELECT IsNull(sq.Клиент, $ПустойИд) [Клиент $Справочник.Клиенты]
	, ТМЦ.ID [ТМЦ $Справочник.ТМЦ]
	, sq.РасходКво Кво
	, sq.РасходГрн ФактГрн
FROM (
		SELECT ID
		FROM $Справочник.ТМЦ (nolock)
		WHERE (ISFOLDER = 2)
		UNION ALL
		SELECT $ПустойИд
	) ТМЦ
	LEFT OUTER JOIN (
		SELECT Клиенты.ID Клиент
			, IsNull($Обороты.ТМЦ, $ПустойИд) ТМЦ
			, Sum($Обороты.РасходКво) РасходКво
			, Sum($Обороты.РасходГрн) РасходГрн
		FROM $Справочник.Клиенты Клиенты (nolock)
			LEFT OUTER JOIN $Регистр.Обороты Обороты (nolock) ON Клиенты.ID = $Обороты.Клиент
		WHERE (Клиенты.ISFOLDER = 2)
		GROUP BY Клиенты.ID
			, $Обороты.ТМЦ
	) sq ON ТМЦ.ID = sq.ТМЦ
TOTALS Sum(Кво)
	, Sum(ФактГрн)
BY ALL
	, [Клиент $Справочник.Клиенты]
	, [ТМЦ $Справочник.ТМЦ] 


Удачи.  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nikolaj
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 19
Зарегистрирован: 11. Июня 2008
Re: Создание OLAP cube 1С77
Ответ #32 - 03. Июля 2008 :: 06:45
Печать  
Ну в общем попробовал алгоритм n*m - работает только когда ограничиваю количество ТМЦ или Клиентов. Т.е. при записей примерно 3500000 - формирует все нормально, но мне нужно от 40000000 записей и тут возникает затык - вываливает ошибку Error RunTime.
Работает ли эта длл на таком объеме? Или может плюнуть и сразу писать запрос например в Microsoft Query (потянет ли Query такой объем - незнаю)? Или все же придется делать по уму - ставить SQL2005 и Анализ сервисом крутить?
Что посоветуете?!!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать