Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Странности ADOMD.NET / 12 сообщений из 12, страница 1 из 1
18.08.2005, 11:12
    #33222452
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
создаю запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
WITH        
MEMBER [Дата].[Период] as 'Aggregate([Дата].[Day].&[2005-06-01]:[Дата].[Day].&[2005-06-01])'       
MEMBER [Measures].[Остаток] as 'sum({[Дата].[Year].&[2005].&[4],[Дата].[Year].&[2005].&[5]},[Measures].[Kolvo])'       
MEMBER [Контрагент].[Магазины] as 'Aggregate({[Контрагент].[All Контрагент].[Клин,ул. Гагарина, д.35]})'       
MEMBER [Контрагент].[Склады] as 'Aggregate({[Контрагент].[All Контрагент].[Клин,ул. Гагарина, д.35]})'       
SET AXIS_0 AS ' CROSSJOIN( { DISTINCT( { [Вид документа].[All Вид документа], [Вид документа].[Dok Kod].&[PRX], [Вид документа].[Dok Kod].&[REAL] }  )  } , { DISTINCT( { [Measures].[Kolvo], [Measures].[Остаток] }  )  }  ) '        
SET AXIS_1 AS ' CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( { DISTINCT( { [Сезон].[All Сезон].[Весна 2005] }  )  } , { DISTINCT( { [Группа товара].[All Группа товара].[Кожгалантерея] }  )  }  ), { DISTINCT( { [Наименование].[All Наименование].[АЭРОЗОЛЬ ВОСК Д/ЗАМШИ И НУБУКА] }  )  }  ), { DISTINCT( { [Материал верха].[All Материал верха].[кожа] }  )  }  ), { DISTINCT( { [Контрагент].[Магазины], [Контрагент].[Склады] }  )  }  ) '  
SELECT        AXIS_0 ON COLUMNS ,       AXIS_1 ON ROWS FROM [Обороты] WHERE       [Дата].[Период] 
читаю через AdomdDataReader результат в виде плоской таблицы
и наблюдаю что нет пятого столбца (магазины,склады)
проверяю тот же запрос в MDX Samle application
все нормально (см. скриншот)
в чем дело помогите
...
Рейтинг: 0 / 0
18.08.2005, 11:15
    #33222461
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
Простите, но магазины,склады - это строки а не столбцы. Когда вы просите плоскую таблицу, то COLUMNS переходят в колонки а ROWS в строчки.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
18.08.2005, 11:23
    #33222491
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
MoshaПростите, но магазины,склады - это строки а не столбцы. Когда вы просите плоскую таблицу, то COLUMNS переходят в колонки а ROWS в строчки.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
не понял ?
может я не правильно задал вопрос
но я хочу получить таблицу с 11 столбцами как на скриншоте
а получаю таблицу с 10 при использовании ADOMD (не .NET) и чтении данных
через CellSet я все получаю но этот подход для меня не подходит
слишком уж меделнный доступ к данным через CellSet вот и решил все переписать на ADOMD.NET Помогите ?
...
Рейтинг: 0 / 0
18.08.2005, 11:26
    #33222505
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
MoshaПростите, но магазины,склады - это строки а не столбцы. Когда вы просите плоскую таблицу, то COLUMNS переходят в колонки а ROWS в строчки.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
под пятым столбцом имел ввиду dimension [Контрагент] c агрегациями [Склады]
[Магазины]
...
Рейтинг: 0 / 0
18.08.2005, 11:42
    #33222571
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
А, я кажется понял что Вы имеете в виду. Попробуйте поменять создание calculated member на

Код: plaintext
1.
MEMBER [Контрагент].[All Контрагент].[Магазины] as 'Aggregate({[Контрагент].[All Контрагент].[Клин,ул. Гагарина, д.35]})'       
MEMBER [Контрагент].[All Контрагент].[Склады] as 'Aggregate({[Контрагент].[All Контрагент].[Клин,ул. Гагарина, д.35]})'      

думаю что это поможет

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
18.08.2005, 11:52
    #33222626
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
virtus
слишком уж меделнный доступ к данным через CellSet вот и решил все переписать на ADOMD.NET Помогите ?

Я думаю, что проблема у вас не в скорости доступа к CellSet, а скорее в запросе.

Кстати, вы с каким сервером работаете? 2K или 2K5?
...
Рейтинг: 0 / 0
18.08.2005, 11:53
    #33222632
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
MoshaА, я кажется понял что Вы имеете в виду. Попробуйте поменять создание calculated member на

Код: plaintext
1.
MEMBER [Контрагент].[All Контрагент].[Магазины] as 'Aggregate({[Контрагент].[All Контрагент].[Клин,ул. Гагарина, д.35]})'       
MEMBER [Контрагент].[All Контрагент].[Склады] as 'Aggregate({[Контрагент].[All Контрагент].[Клин,ул. Гагарина, д.35]})'      

думаю что это поможет

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
Огромное спасибо !!!!заработало!!!!
вчера на это убил пол дня
...
Рейтинг: 0 / 0
18.08.2005, 12:02
    #33222669
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
backfire virtus
слишком уж меделнный доступ к данным через CellSet вот и решил все переписать на ADOMD.NET Помогите ?

Я думаю, что проблема у вас не в скорости доступа к CellSet, а скорее в запросе.

Кстати, вы с каким сервером работаете? 2K или 2K5?
сервер у меня 2k
а по поводу скорости
я тестировал на простом запросе который возвращает 150000 записей
и на запросе который возвращает 1 запись в моей конфигурации скорость доступа к елементу CellSet где-то 0.1 сек. при 150000 записей да на 11 столбцов = 1.650.000 ячеек умножаем на 0.1 да делим на 3600 получаем 45 часов !!!!!
через DataReader весь перенос занмимает около 3 минут
кстати microsoft в msdn сама пишет о том что чтение через cellset самое медленное а самое быстрое чтение это через XMLDataReader
...
Рейтинг: 0 / 0
18.08.2005, 12:23
    #33222760
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
кстати microsoft в msdn сама пишет о том что чтение через cellset самое медленное а самое быстрое чтение это через XMLDataReader

можно привести ссылку?


я тестировал на простом запросе который возвращает 150000 записей

нескромный вопрос.
скажите пожалуйста, а кому нужны аж 150000 записей?
...
Рейтинг: 0 / 0
18.08.2005, 14:19
    #33223149
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
backfire кстати microsoft в msdn сама пишет о том что чтение через cellset самое медленное а самое быстрое чтение это через XMLDataReader

можно привести ссылку?


я тестировал на простом запросе который возвращает 150000 записей

нескромный вопрос.
скажите пожалуйста, а кому нужны аж 150000 записей?
по поводу msdn обманул не msdn a adomd.net sdk
Retrieving Data
In ADOMD.NET, you can retrieve data using three different objects — CellSet, AdomdDataReader, and XmlReader — by calling one of the Execute methods of the AdomdCommand. Each object is designed to balance overhead, speed, and flexibility based on the needs of your application:

The CellSet provides the most interactivity and flexibility when working with multidimensional data, and it stores most of the information from the original query. However, the CellSet also requires the most overhead of the three data retrieval methods, and is the slowest to retrieve fully, because the CellSet provides a many-featured object model designed for navigating both the data and metadata of a multidimensional cellset.
The AdomdDataReader provides a good balance between overhead and interactivity when working with multidimensional data. Designed for forward-only retrieval, the AdomdDataReader doesn't support a large object model for representing data or metadata, nor does it allow for more complex multidimensional features like cell writeback. What it does do, however, is handle large amounts of multidimensional data quickly and effectively. The AdomdDataReader also provides a set of strongly typed methods for retrieving cellset data.
The XmlReader object uses the least overhead and is the fastest of the three objects in terms of data retrieval, but supplies the least interactivity of the three objects. The XmlReader provides passthrough functionality, returning the raw XML for Analysis response from the underlying provider.

а 150000 это к примеру
на самом деле будет и такое я пишу свой клиент
естественно я эти 150000 будут агрегировать
...
Рейтинг: 0 / 0
18.08.2005, 17:47
    #33223844
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
virtus
а 150000 это к примеру
на самом деле будет и такое я пишу свой клиент
естественно я эти 150000 будут агрегировать

Извините за настырность, но зачем аггрегировать на клиенте?
AS ка раз для этого предназначен - дело в написании нужного MDX.
...
Рейтинг: 0 / 0
19.08.2005, 10:39
    #33224594
virtus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности ADOMD.NET
backfire virtus
а 150000 это к примеру
на самом деле будет и такое я пишу свой клиент
естественно я эти 150000 будут агрегировать

Извините за настырность, но зачем аггрегировать на клиенте?
AS ка раз для этого предназначен - дело в написании нужного MDX.
долго рассказывать клиент который пишу это часть большого аналитического модуля для нашей информационной системы
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Странности ADOMD.NET / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]