Może to być problem z połączeniami OLEDB ze zdalnymi serwerami (serwery połączone i konfiguracje SSIS używają OLEDB).
Jest to wada projektowa, błąd Microsoft SQL Server, który nie został załatany aż do SQL Server 2012 SP1 z tego, co pamiętam, w którym nie pozwala on na używanie statystyk zdalnych w celu zdalnej optymalizacji zapytania.
Musisz również uruchomić sp_WhoIsActive ( pobieranie / dokumenty ) z serwera REMOTE w zapytaniu, aby zobaczyć ruch, ale SQL Server, który nie jest SP1 z 2012 r., Z jakiegoś powodu nie pozwala na korzystanie ze zdalnych statystyk, nawet jeśli login ma moduł danych dostęp do wszystkich tabel na zdalnym serwerze.
Rozwiązaniem firmy Microsoft jest przyznanie poświadczeniu połączonego serwera, aby zdalne wywołanie miało dostęp SA, ddladmin lub DBO do zdalnego serwera / tabel, do którego są wysyłane zapytania.
Użyłem tego, aby obejść ten problem w niektórych naszych konfiguracjach, który jest przejrzysty w przeważającej części pod względem rozwiązania, nie zezwalając na podwyższone uprawnienia do baz danych lub serwerów SQL po stronie zdalnej. Zasadniczo musisz przyznać rolę ddladmin do zdalnego logowania na zdalnej bazie danych SQL Server, a następnie utwórz rolę z jawnymi uprawnieniami ODMOWY dla zmian na poziomie obiektu, jeśli tylko chcesz zezwolić na dostęp SELECT.
Poniżej znajduje się kopia niestandardowej ustalonej roli DB, którą dla tego stworzyłem, ale możesz chcieć przetestować i potwierdzić lub dostosować dalej oraz trochę czytania i badań, ale w niektórych przypadkach rozwiązano dla mnie przezroczystość - pamięć podręczna może jednak wymagać wyczyszczenia, zanim zadziała, więc miej to na uwadze, a gdy wszystko zostanie wyczyszczone, uruchom je dwukrotnie i sprawdź wyniki lokalne i zdalne.
Pozwól więc na poświadczenie roli ddladmin na zdalnym DB, zezwolisz na inne zwykłe uprawnienia na zdalnym DB, utworzysz niestandardową rolę DB, jak wymieniłem poniżej na tym samym serwerze, a następnie dodasz tę samą referencję do tej nowej niestandardowej stałej Rola DB z wyraźnym zaprzeczeniem, wyczyść pamięć podręczną, uruchom zapytanie dwukrotnie lub więcej po wyczyszczeniu pamięci podręcznej, aby sprawdzić, czy zostanie rozwiązane.
Aby w szczególności odpowiedzieć na twoje pytanie z tego powodu, że widzisz te pobrania kursora, jeśli używasz wersji poniżej SQL Server 2012 SP1 i widzisz to, a także uruchamiasz zdalne zapytanie, ponieważ nie pozwala ono na użycie ani zdalne statystyki w tym ustawieniu bez obejścia (wymienione powyżej), następnie wykonuje przetwarzanie wiersz po rzędzie, jak podano powyżej Kin, ponieważ zapytanie nie jest zoptymalizowane przy użyciu statystyk dla najlepszego planu zapytań i ma problem z licznością.
/*
CREATE A NEW ROLE - Deny explicit DB object access for linked
server credentials that the DDLAdmin role gives which is needed
for DBCC SHOW_STATISTICS across linked servers
*/
-- Database specific
CREATE ROLE db_LinkedServer_Restriction
DENY ALTER ANY ASSEMBLY TO db_LinkedServer_Restriction
DENY ALTER ANY ASYMMETRIC KEY TO db_LinkedServer_Restriction
DENY ALTER ANY CERTIFICATE TO db_LinkedServer_Restriction
DENY ALTER ANY CONTRACT TO db_LinkedServer_Restriction
DENY ALTER ANY DATABASE DDL TRIGGER TO db_LinkedServer_Restriction
DENY ALTER ANY DATABASE EVENT NOTIFICATION TO db_LinkedServer_Restriction
DENY ALTER ANY DATASPACE TO db_LinkedServer_Restriction
DENY ALTER ANY FULLTEXT CATALOG TO db_LinkedServer_Restriction
DENY ALTER ANY MESSAGE TYPE TO db_LinkedServer_Restriction
DENY ALTER ANY REMOTE SERVICE BINDING TO db_LinkedServer_Restriction
DENY ALTER ANY ROUTE TO db_LinkedServer_Restriction
DENY ALTER ANY SCHEMA TO db_LinkedServer_Restriction
DENY ALTER ANY SERVICE TO db_LinkedServer_Restriction
DENY ALTER ANY SYMMETRIC KEY TO db_LinkedServer_Restriction
DENY CHECKPOINT TO db_LinkedServer_Restriction
DENY CREATE AGGREGATE TO db_LinkedServer_Restriction
DENY CREATE DEFAULT TO db_LinkedServer_Restriction
DENY CREATE FUNCTION TO db_LinkedServer_Restriction
DENY CREATE PROCEDURE TO db_LinkedServer_Restriction
DENY CREATE QUEUE TO db_LinkedServer_Restriction
DENY CREATE RULE TO db_LinkedServer_Restriction
DENY CREATE SYNONYM TO db_LinkedServer_Restriction
DENY CREATE TABLE TO db_LinkedServer_Restriction
DENY CREATE TYPE TO db_LinkedServer_Restriction
DENY CREATE VIEW TO db_LinkedServer_Restriction
DENY CREATE XML SCHEMA COLLECTION TO db_LinkedServer_Restriction
DENY REFERENCES TO db_LinkedServer_Restriction
GO