Pergunta

Eu recentemente criei um servidor ligado a um dos meus SSAS servidores.

quando eu ir em frente e abrir os catálogos, para ver quais bancos de dados do ssas eu tenho lá, Eu uso o seguinte procedimento:

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

isto é como eu a chamo de:

sys.sp_catalogs 'sasbidev01'

Quando eu vejo isso leva muito tempo, verificar o que está sendo executado:

enter image description here

Eu vejo o OLEDB tipo de espera.

É isso por conta própria, indicação de que eu poderia fazer algo para melhorar a velocidade da conexão?

O servidor Vinculado criação do script:

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
Foi útil?

Solução

O OLEDB tipo de espera é o que o SQL Server utiliza para informar a quantidade de tempo de espera por uma resposta de código em execução fora do controle do SQL Server através de um fornecedor de OleDB.Normalmente, isso é a partir de um servidor vinculado, e no seu exemplo específico é a quantidade de tempo que o SQL Server está esperando para SSAS para fornecer sua resposta para a consulta.

Não há nada que você pode fazer para o SQL Server para acelerar esta consulta.Você precisa garantir que o SSAS tem dedicado a memória necessária para garantir que ele nunca fica paginada fora da memória para o ficheiro de paginação. Este Microsoft Docs página pode ser útil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top