Sql-Server

如何減少 SSAS 連結伺服器連接中的 OLEDB 等待類型?

  • June 6, 2019

我最近創建了一個連結伺服器到我的一個 SSAS 伺服器。

當我繼續打開目錄時,要查看那裡有哪些 ssas 數據庫,我使用以下過程:

create procedure sys.sp_catalogs
(
   @server_name        sysname
)
as
   select
       CATALOG_NAME    = f_rc.CATALOG_NAME,
       DESCRIPTION     = convert (nvarchar(255), f_rc.DESCRIPTION)
   from
       sys.fn_remote_catalogs (@server_name, NULL) f_rc
   order by CATALOG_NAME

這就是我所說的:

sys.sp_catalogs 'sasbidev01'

當我看到它花費的時間太長時,我檢查它正在執行什麼:

在此處輸入圖像描述

我看到了 OLEDB 等待類型。

這本身是否表明我可以做一些事情來提高此連接的速度?

連結伺服器腳本創建:

USE [master]
GO


IF NOT EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N'SASBIDEV01')
BEGIN

EXEC master.dbo.sp_addlinkedserver 
 @server = N'SASBIDEV01'
, @srvproduct=N''
, @provider=N'MSOLAP'
, @datasrc=N'SASBIDEV01'

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'SASBIDEV01'
,@useself=N'False'
,@locallogin=NULL
,@rmtuser=N'mycompany.CO.UK\SASBIDEV01_SSAS'
,@rmtpassword='B4l4r4m4__sbidev01'
END
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'rpc', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'rpc out', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SASBIDEV01', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

OLEDB等待類型是 SQL Server 用來報告它等待來自通過 OleDB 提供程序在 SQL Server 控制之外執行的程式碼的響應的時間量。通常,這來自連結伺服器,在您的特定範例中是 SQL Server 等待 SSAS 提供其對該查詢的響應的時間量。

您無法對 SQL Server執行任何操作來加速此查詢。您需要確保 SSAS 具有所需的專用記憶體,以確保它永遠不會從記憶體中調出到頁面文件。 此 Microsoft Docs 頁面可能會有所幫助。

引用自:https://dba.stackexchange.com/questions/115098