Question

J'ai récemment créé un serveur lié à l'un de mes serveurs SSAS.

Lorsque je vais de l'avant et ouvrez les catalogues, pour voir les bases de données SSAS que j'ai là, J'utilise la procédure suivante:

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

Voici comment je l'appelle:

sys.sp_catalogs 'sasbidev01'

Quand je vois qu'il faut trop de temps, je vérifie ce qu'il va de courir:

 Entrez la description de l'image ici

Je vois le type d'attente OLEDB.

Est-ce seul, indique que je pouvais faire quelque chose pour améliorer la vitesse de cette connexion?

La création de script de serveur lié:

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

Était-ce utile?

La solution

the OLEDB type d'attente est ce que SQL Server utilise pour signaler le montant de la quantité deIl est temps d'attendre une réponse du code exécutant en dehors du contrôle de SQL Server via un fournisseur OLEDB.Typiquement, cela provient d'un serveur lié, et dans votre exemple particulier, la quantité de temps SQL Server attend que SSAS fournit sa réponse à cette requête.

Il n'y a rien que vous puissiez faire à SQL Server pour accélérer cette requête.Vous devez vous assurer que les SSA disposent de la mémoire dédiée requise pour s'assurer qu'elle ne sort jamais de la mémoire dans le fichier de pagination. Cette page Microsoft Docs pourrait être utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top