PASS Македонија
PASS Македонија
Главна | Профил | Регистрирање | Активна тема | Членови | Пребарување | FAQ
Корисник:
Лозинка:
Сними ја лозинката
 Сите форуми
 Microsoft
 Microsoft Analysis Services 2000/2005/2008/2008R2/2012
 MDX query limitation
 Нова Тема  Одговори на Тема
 Погодно за печатење
Автор Предходна Тема Тема Наредна Тема  

niko_san
Јуниор Член

27 Пораки

Posted - 05/04/2009 :  23:58:24  Прикажи го профилот  Одговори со Цитат
Здраво,

Можеби не го поставувам прашањето во соодветан категорија, но се надевам дека нема да ми замерите.

Се обидувам да извршам MDX query преку T-SQL нешто налик на ова
SELECT * FROM OPENQUERY(LOCAL_OLAP,'....
односно
SELECT * FROM OPENROWSET( 'MSOLAP.3', 'Integrated Security=SSPI;DATASOURCE=NIK....
и се е супер се до моментот додека MDX query кое го извршувам не ја надмине големината од 8000 карактери, лимитацијата која ја диктираат OPENQUERY/OPENROWSET командите.

Потоа се префрлив на идејата да проблемот го решам со CLR, кое повторно би го повикувал од Т-SQL код,но бидејќи решението т.е моето assembly се референцира до Microsoft.AnalysisServices.AdomdClient.dll, кое не е поддржано од SQL Server 2005(http://msdn.microsoft.com/en-us/library/ms403279.aspx),а притоа користам UNSAFE пермисии,повторно се вратив на почеток.

Дали досега некој од вас имал сличен проблем или пак има некоја сугестија ?







Поздрав,
niko_san

Laki
Модератор

211 Пораки

Испратено - 08/04/2009 :  09:01:48  Прикажи го профилот  Одговори со цитат

Zdravo Niko_san,


Dokolku se rabotese za obicno query, ke ti preporacav da go
kreirass kako SP. Vaka, izgleda deka si upaten na CLR.

Koj e tocno problemot sto go imass so assembly-jata ?
(iako nekoi ne se poddrzani, moze sepak da se koristat - registracijata i testiranjeto se odgovornost na toj sto gi koristi)



Pozdrav, Robert
На почеток од страната

Alex
Модератор

282 Пораки

Испратено - 08/04/2009 :  19:15:02  Прикажи го профилот  Испрати Alex ICQ порака  Одговори со цитат
Здраво Никола,

Интересна ситуација, дали е неопходно да се стартува MDX query-то од SQL Server 2005 во улога на клиент кон Analysis Services 2005 во улога на сервер ?

Ако не се работи за задолжително линкување на сервери, можеш ли да го премостиш со .NET Web Service кон Analysis Services 2005 како некаков посредник ?

Александар





На почеток од страната

niko_san
Јуниор Член

27 Пораки

Испратено - 09/04/2009 :  18:10:21  Прикажи го профилот  Одговори со цитат
Александар и Лаки и давјцата извенете што споро одговарам бев зафатен и со други одговорности.

Александар , ситуацијата е ваква, од Т-SQL околина треба да се обратaм за исти влезни праметри до OLTP,OLAP околини, влучително и Data Mining.
Под дадени услови/rules над излезот од претходно споменатите сорсови, правам некаков меѓусебен пресек/унија,во зависност од ruls (кои се динамички).
На крај како излез од SP се добива еден resultset кој треба да биде пејџиран.

Тоа е генерално.

-- одговор на твоите прашања
/*
Интересна ситуација, дали е неопходно да се стартува MDX query-то од SQL Server 2005 во улога на клиент кон Analysis Services 2005 во улога на сервер ?
*/
Јас сум тој што треба да го заврши комплетниот процес, а бидејќи ближниот мој е MS SQL Server 2005, а не и .NET околина, решениетео го барам на страна на SQL, бидејќи теоретски е изводливо, но проблем ми е лимитацијата од 8000 карактери према OLAP.

/*
Ако не се работи за задолжително линкување на сервери, можеш ли да го премостиш со .NET Web Service кон Analysis Services 2005 како некаков посредник ?
*/
Тука би коментирал неколку работи:
1.Линкувањето на серверите не е задолжително.
2.Према трите околини имам 3 динамички SQL,MDX и DMX.И се зависни помеѓу себе односно резултатот од било кој од нив е на некаков начин влез за наредниот што се извршува.Приоритетот односно редоследот е еден од влезните параметри.Значи пак ќе повторам се функционира како подмачкано,проблем ми се само лимитацијат од 8000 -карактери.
3.Идејата за web service ти е ОК, но нажалост јас неможам да го папишам сервисот и можеби побитна работа во целиот муабет е дека CLR од аспект на перформанси би било подобро решение, но и таму имам проблем.

<Се надоврзувам на предходниот муабет а во едно и на прашањата на Лаки>

Идејата околу CLR ми беше да во .NET се напише едностевна функција,
која би ја надминала лимитацијата од 8000 карактери влезни парметри на ф-јата би биле име на OLAP сервер,Име на OLAP база евентуално привилегии и МDX query кое не би било генерално лимитирано по број на карактери.Супер, ми помогна пријател да се напише тоа DLL во .NЕТ, но се појави проблем. DLL-to se рефернцира на библиотеката Microsoft.AnalysisServices.AdomdClient.dll и кога се обидувам да го декларирам односно deploy на "моето" DLL (ADOConnector.dll),а притоа пробав со сите типови на пермисии ја добивам секогаш иста грешка

Assembly 'microsoft.analysisservices.adomdclient, version=9.0.242.0, culture=neutral,publickeytoken=89845dcd8080cc91.' was not found in the SQL catalog.

Server Name: NIKO_SAN
Error Number: 6503
Severity: 16
State: 12
Line Number: 1

и нормално се обидов да го додадам (
C:\Program Files\Microsoft.NET\ADOMD.NET\90\microsoft.analysisservices.adomdclient) и директно преку managment studio и преку t-sql

CREATE ASSEMBLY [microsoft.analysisservices.adomdclient]
FROM 'C:\Program Files\Microsoft.NET\ADOMD.NET\90\microsoft.analysisservices.adomdclient.dll'
WITH PERMISSION_SET = UNSAFE;

со сите можни пермисии и во сите ситуации и добивам

-за UNSAFE

CREATE ASSEMBLY for assembly 'Microsoft.AnalysisServices.AdomdClient' failed because assembly 'Microsoft.AnalysisServices.AdomdClient' is not authorized for PERMISSION_SET = UNSAFE.The assembly is authorized when either of the following is true: the database owner (DBO) has
UNSAFE ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with UNSAFE ASSEMBLY permission. If you have restored or attached this database, make sure the database owner is mapped to the correct login on this server. If not, use sp_changedbowner to fix the problem.
Warning: The SQL Server client assembly 'microsoft.analysisservices.adomdclient, version=9.0.242.0,
culture=neutral, publickeytoken=89845dcd8080cc91, processorarchitecture=msil.' you are registering is not fully tested in SQL Server hosted environment. (.Net SqlClient Data Provider)


Server Name: NIKO_SAN
Error Number: 10327
Severity: 14
State: 1
Line Number: 1

-- за останатите типови на премисии

CREATE ASSEMBLY failed because type 'ShilohSchemas' in safe assembly 'Microsoft.AnalysisServices.AdomdClient' has a static field 'shilohSchemas'. Attributes of static fields in safe assemblies must be marked readonly in Visual C#, ReadOnly in Visual Basic, or initonly in Visual C++ and intermediate language.
Warning: The SQL Server client assembly 'microsoft.analysisservices.adomdclient, version=9.0.242.0, culture=neutral, publickeytoken=89845dcd8080cc91, processorarchitecture=msil.' you are registering is not fully tested in SQL Server hosted environment. (.Net SqlClient Data Provider)


Server Name: NIKO_SAN
Error Number: 6211
Severity: 16
State: 1
Line Number: 1


погоре во прпораките од добе-ните грешки односно
- the database owner (DBO) has UNSAFE ASSEMBLY permission (false)
- database has the TRUSTWORTHY database property (false)
- the database owner is mapped to the correct login on this server и ова е исполнето, така да скоро се ми е пробано,во рамките на моите можности, но сеуште имам проблем. :(







Поздрав,
niko_san
На почеток од страната

Laki
Модератор

211 Пораки

Испратено - 09/04/2009 :  20:33:49  Прикажи го профилот  Одговори со цитат

Zdravo niko_san,

Kaj mene pomina registracijata na adomdclient.dll so


ALTER DATABASE <dbname> SET TRUSTWORTHY ON;

CREATE ASSEMBLY [microsoft.analysisservices.adomdclient]
FROM 'C:\.....\microsoft.analysisservices.adomdclient.dll'
WITH PERMISSION_SET = UNSAFE;

Pozdrav, Robert

На почеток од страната

niko_san
Јуниор Член

27 Пораки

Испратено - 10/04/2009 :  09:37:34  Прикажи го профилот  Одговори со цитат
Лаки Роберт,
не работи пак го имам истиот проблем т.е истата порака,најверојатно имам проблем со околината, ќе пробам на друга околина или ќе ја преинсталирам тековнава ќе ве информирам како сум поминал.Фала.



Поздрав,
niko_san

Едитирано од - niko_san on 10/04/2009 09:38:44
На почеток од страната

Laki
Модератор

211 Пораки

Испратено - 10/04/2009 :  11:57:56  Прикажи го профилот  Одговори со цитат

"не работи пак го имам истиот проблем т.е истата порака,најверојатно имам проблем со околината, ќе пробам на друга околина или ќе ја преинсталирам тековнава ќе ве информирам како сум поминал.Фала. "

Niko_san,

Proveri dali: select name,is_trustworthy_on from master.sys.databases;

vraka vrednost 1 za kolonata is_trustworthy_on na soodvetnata baza.

Dokolku e 0, izvrsi ja naredbata:

ALTER DATABASE <dbname> SET TRUSTWORTHY ON;

Ako eventualno dobiess poraka za greska pri setiranje na trustworthy,
postiraj ja porakata na forumot.

Pozdrav, Robert

На почеток од страната

niko_san
Јуниор Член

27 Пораки

Испратено - 10/04/2009 :  12:40:46  Прикажи го профилот  Одговори со цитат
Роберт,

Сега работи односно ги прикачив двете DLL, ама на друга околина, дефинитивно сум имал некој додадатен проблем, сеуште не сум пишал MDX преку DLL -ot, но ќе ве информирам и за тоа.

Фала најмногу за помошта.

ПС. select name,is_trustworthy_on from master.sys.databases; беше 1,но пак не ми функционираше.

Поздрав,
Никола

Поздрав,
niko_san
На почеток од страната

Alex
Модератор

282 Пораки

Испратено - 10/04/2009 :  21:33:28  Прикажи го профилот  Испрати Alex ICQ порака  Одговори со цитат
Zdravo Nikola,

Dolniot batch :

alter database baza set trustworthy on
CREATE ASSEMBLY [microsoft.analysisservices.adomdclient]
FROM 'C:\Program Files\Microsoft.NET\ADOMD.NET\100\microsoft.analysisservices.adomdclient.dll'
WITH PERMISSION_SET = UNSAFE;
CREATE ASSEMBLY [microsoft.analysisservices.adomdclient]
FROM 'C:\Program Files\Microsoft.NET\ADOMD.NET\100\microsoft.analysisservices.moetodllzamdx.dll'
WITH PERMISSION_SET = UNSAFE;

mi projde na SQL 2005/2008 kombinirani na Win 2003, Vista i Win 2008, samo so patekata sekako vnimavam.

Stom si imal greska i pri ALTER DATABASE imenabaza SET TRUSTWORTHY ON mozes li da ja postas porakata kako informacija na forumot?

Pozdrav

Aleksandar
На почеток од страната
  Предходна Тема Тема Наредна Тема  
 Нова Тема  Одговори на Тема
 Погодно за печатење
Прејди на:
PASS Македонија © PASS Македонија На почеток од траницата
Powered By: PASS Македонија 3.4.03