¿Cómo puedo reducir el tipo de espera OLEDB en una conexión de servidor vinculada SSAS?
-
29-09-2020 - |
Pregunta
He creado recientemente un servidor vinculado a uno de mis servidores SSAS.
Cuando sigo adelante y abro los catálogos, para ver qué bases de datos SSAS que tengo allí, Yo uso el siguiente procedimiento:
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
Así es como lo llamo:
sys.sp_catalogs 'sasbidev01'
Cuando veo que toma demasiado tiempo, verifico lo que se está ejecutando:
Veo el tipo de espera OLEDB.
¿Esto es por su cuenta, indicación de que podría hacer algo para mejorar la velocidad de esta conexión?
La creación de script de servidor vinculado:
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
Solución
the OLEDB
Tipo de espera es lo que utiliza SQL Server para informar la cantidad deEl tiempo está esperando una respuesta del código que se ejecuta fuera del control de SQL Server a través de un proveedor OLEDB.Por lo general, esto es de un servidor vinculado, y en su ejemplo particular es la cantidad de tiempo que SQL Server está esperando que SSA proporcione su respuesta a esa consulta.
No hay nada que pueda hacerlo a SQL Server para acelerar esta consulta.Debe asegurarse de que SSA tenga la memoria dedicada requerida para asegurarse de que nunca se escapa de la memoria en el archivo de paginación. Esta página de Microsoft Docs podría ser útil.