Sign in with Microsoft
New to Microsoft? Create an account.

W TYM ZADANIU

Streszczenie

Ten artykuł zawiera opis sposobu wykonywania kwerend rozproszonych SQL Server do pobierania danych z modułu OLAP Services (lub Analysis Services). Microsoft SQL Server w wersji 7.0 umożliwiają wykonywanie kwerend dla dostawców OLE DB. Aby to zrobić, można:

  • Użyć funkcji OPENROWSET języka Transact-SQL lub OtwórzKwerendę (OpenQuery). - lub -

  • Należy użyć kwerendy z czteroczęściowych nazw, łącznie z nazwą serwera połączonego.

Na przykład:

sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'

SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')

Do przekazywania kwerendy do serwera połączonego OLAP, można użyć funkcji OtwórzKwerendę (OpenQuery) lub OPENROWSET w instrukcji SELECT języka SQL Server. Kwerenda jest ograniczona do skróconej składni SELECT, który jest obsługiwany przez usługi OLAP; jednak kwerendy można dołączyć składni wyrażeń wielowymiarowych (MDX). Kwerendę zawierającą MDX zwraca "spłaszczone wierszy" jako zostało opisane w dokumentacji OLE DB. Aby uzyskać więcej informacji na temat składni SELECT obsługiwanych przez program SQL Server OLAP Services Zobacz temat "Obsługiwane wybierz składni SQL" w OLAP Services Books Online.

Aby kwerenda lokalnej lub zdalnej bazy danych serwera OLAP, z programu SQL Server, należy zainstalować dostawca usług MSOLAP OLE DB na komputerze, na którym działa program SQL Server. Dostawca usług MSOLAP OLE DB jest instalowana podczas instalowania składników klienta OLAP z dysku CD programu SQL Server 7.0.


Przykład funkcji OPENROWSET i OtwórzKwerendę (OpenQuery)

Poniższy przykład kodu języka Transact-SQL pokazuje, jak skonfigurować i używać kwerend rozproszonych z serwera OLAP z funkcji OpenRowset i OtwórzKwerendę (OpenQuery). Należy zmienić nazwy źródła danych i nazwę katalogu, stosownie do przypadku.

------------------------------------------
--OPENROWSET for OLAP Server
------------------------------------------


SELECT a.* FROM OpenRowset('MSOLAP','DATASOURCE=myOlapServer; Initial Catalog=FoodMart;',
'SELECT Measures.members ON ROWS,
[Product Category].members ON COLUMNS
FROM [Sales]') as a
go

-- Example of MDX with slicing --

SELECT a.* FROM OpenRowset('MSOLAP','DATASOURCE=myOlapServer; Initial Catalog=FoodMart;',
'SELECT
{ Time.Year.[1997] } ON COLUMNS,
NON EMPTY Store.MEMBERS ON ROWS
FROM Sales
WHERE ( Product.[Product Category].[Dairy] )') as a

--------------------------------------------------
-- Linked Server Examples with OPENQUERY
--------------------------------------------------

EXEC sp_addlinkedserver
@server='olap_server',
@srvproduct='',
@provider='MSOLAP',

@datasrc='server',
@catalog='foodmart'

go

-- MDX in OPENQUERY --

SELECT * FROM OPENQUERY(olap_server,
'SELECT
{ Time.Year.[1997] } ON COLUMNS,
NON EMPTY Store.MEMBERS ON ROWS
FROM Sales
WHERE ( Product.[Product Category].[Dairy])' )

Uwaga W temacie "Przechodzącą kwerendy z SQL Server do połączonego serwera OLAP" w OLAP Services Books Online, ma błąd dokumentacji w przykładzie kodu:

SELECT * FROM OPENQUERY(olap_server,
'SELECT [customer], [quantity] FROM sales')

Ograniczoną formę SQL jest obsługiwana, i może być określony tylko nazwy poziomu lub miary. Po uruchomieniu kwerendy, pojawi się ten komunikat o błędzie:

Serwer: Msg 7399, poziom: 16, stan: 1, wiersz 1 dostawcy OLE DB, 'MSOLAP' zgłosił błąd. [Zwrócony komunikat dostawcy OLE/DB: Nazwa kolumny "klient" jest nieprawidłowy. Tylko nazwy poziomu lub miary można określić.]

Jednym ze sposobów rozwiązać kwerendę jest użycie następujących czynności:

SELECT * FROM OPENQUERY(olap_server,
'SELECT [unit sales] FROM sales')

Jednakże przekazując instrukcje SQL w tym formularz, aby serwer OLAP może być bardzo niska i może pojawić się błąd limitu czasu na niektórych komputerach:

Dostawca OLE DB 'MSOLAP' zgłosił błąd. [Dostawcy OLE/DB zwrócił komunikat: nie można otworzyć bazy danych "foodmart"] [Zwrócony komunikat dostawcy OLE/DB: błąd serwera OLAP: Żądana operacja nie powiodła się z powodu limitu czasu.]

Przykłady serwera połączonego z czteroczęściowych nazw

Przykład kodu języka Transact-SQL w tej sekcji demonstruje użycie serwera połączonego z nazwą czteroczęściową kwerendy modułu OLAP. W kodzie serwer połączony o nazwie Olap_server został utworzony w poprzednim przykładzie:

Select [Store:Store Name] from Olap_server.FoodMart..[sales] WHERE [Store:Store State]='WA'

go

Select [Product:Product Category], count ([Store:Store Name]) from Olap_server.FoodMart..[sales]
WHERE [Store:Store State]='WA'
GROUP BY [Product:Product Category]

Chociaż dobrze połączony przykłady serwera z pracą czteroczęściowym, one może potrwać do zwracania wyniku do klienta. Składnia nazwy czteroczęściowym jest koncepcja programu SQL Server; jest używany w poleceniu języka Transact-SQL, do odwoływania się do tabeli na serwerze połączonym i jest ograniczona Składnia kwerend OLAP. Program SQL Server może ustalić, że musi odczytać tabeli faktów cały z serwera OLAP i wykonać grupy przez siebie, co może zająć znaczących zasobów i czasu.

Firma Microsoft zaleca, że wyślesz instrukcji MDX za pomocą funkcji OPENROWSET lub funkcji OtwórzKwerendę (OpenQuery), jak pokazano w poprzednich przykładów. Ta metoda umożliwia SQL Server wysyłanie polecenia bezpośrednio do połączonego dostawcy OLAP, bez próby analizować je. Polecenie może być MDX lub SQL, który dostawca OLAP obsługuje podzbiór. Można użyć zestaw wierszy zwracanych z funkcji OPENQUERY w innych operatorów SQL. Dla kwerend GROUP BY, które zwracają stosunkowo niewielką ilość danych (np. więcej) i podstawowe kwerendy MDX zawsze można utworzyć zestaw wyników w ciągu mniej niż 10 sekund, zazwyczaj w ciągu 5 sekund, niezależnie od wielkości kostki. Jeśli kwerendy są przetwarzane dłużej, można utworzyć więcej agregacji, przy użyciu Kreatora analizy użycia na podstawie.

Porady dotyczące wydajności

Oto kilka porad wydajności:

  • Program SQL Server zostanie otwarte dwa połączenia z dostawcą OLAP dla każdej kwerendy. Jeden z tych zostanie ponownie użyty dla nowszych kwerendy; w związku z tym jeśli zostanie uruchomione polecenie drugiej kwerendy może działać szybciej.

  • Aby zwiększyć szybkość, grupy przez inny wymiar (ponieważ są coraz mniej danych).

  • Scenariusz najgorszego przypadku byłoby, gdy moduł jest przechowywany przez relacyjny OLAP (ROLAP) i jest bez agregacji. Następnie serwer OLAP otwiera połączenia do programu SQL Server uzyskać fakt wierszy tabeli. Nie należy używać programu SQL Server kwerendy rozproszone w tym przypadku.

  • Jeśli potrzebujesz tylko zestaw wyników z serwera OLAP lub pliku modułu, należy spróbować uruchomić programu SQL Server lub kwerendy wielowymiarowej bezpośrednio przeciwko serwera OLAP lub dowolny plik modułu, przy użyciu aplikacji OLE DB C++ lub aplikacja ADO(ADO*MD).

  • SQL Server instaluje niektórzy dostawcy OLE DB i konfiguruje te załadować w procesie. Ponieważ dostawca usług MSOLAP nie jest instalowany przez program SQL Server, jest skonfigurowany do ładowania out-of-process. Firma Microsoft stanowczo zaleca, zmień opcje dostawcy OLAP do obciążenia w procesie, ponieważ taka konfiguracja zwiększa wydajność kwerend OLAP. Aby wprowadzić zmianę, wykonaj następujące kroki:

    1. W folderze zabezpieczeń kliknij prawym przyciskiem myszy Połączonych serwerów, a następnie kliknij Nowy serwer połączony.

    2. Nazwa dostawcykliknij, aby zaznaczyć Program Microsoft OLE DB Provider for OLAP Services.

    3. Kliknij przycisk Opcje.

    4. Zaznacz opcję Zezwalaj na InProcess.

    5. Kliknij przycisk OK.

Powiązane artykuły

Aby uzyskać szczegółowy opis sp_addlinkedserver parametrów procedur przechowywanych, zobacz programu SQL Server 7.0 Books Online.

Aby uzyskać więcej szczegółowych informacji na temat konfigurowania i za pomocą kwerend rozproszonych Wyszukaj sp_addlinkedserver"OtwórzKwerendę (OpenQuery)", "OPENROWSET" i Tematy pokrewne, programu SQL Server 7.0 Books Online.

Aby dowiedzieć się więcej o technologii OLAP i składnię kwerendy MDX, zobacz OLAP Services Books Online. Aby uzyskać informacje dotyczące zabezpieczeń za pomocą usług OLAP zobacz następujący artykuł z bazy wiedzy Microsoft Knowledge Base:

Jak skonfigurować zabezpieczenia dla serwera połączonego z OLAP Services 242025

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×