Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Przykładowe zapytanie dotyczące serwera połączonego z serwerem SQL

Format powinien prawdopodobnie wyglądać tak:

<server>.<database>.<schema>.<table>

Na przykład:DatabaseServer1.db1.dbo.table1

Aktualizacja :Wiem, że to stare pytanie, a odpowiedź, którą mam, jest poprawna; jednak myślę, że każdy, kto natknie się na to, powinien wiedzieć kilka rzeczy.

Mianowicie, podczas wysyłania zapytań do połączonego serwera w sytuacji sprzężenia, CAŁE tabela z połączonego serwera prawdopodobnie pobrać na serwer, z którego wykonywane jest zapytanie, w celu wykonania operacji dołączenia. W przypadku OP oba table1 z DB1 i table1 z DB2 zostaną w całości przesłane na serwer wykonujący zapytanie, przypuszczalnie o nazwie DB3 .

Jeśli masz duże stoły, może w wyniku operacji, której wykonanie zajmuje dużo czasu. W końcu jest teraz ograniczony przez prędkość ruchu sieciowego, która jest o rząd wielkości mniejsza niż prędkość pamięci czy nawet transferu dysku.

Jeśli to możliwe, wykonaj pojedyncze zapytanie na serwerze zdalnym bez dołączania do tabeli lokalnej, aby pobrać potrzebne dane do tabeli tymczasowej. Następnie zapytaj o to.

Jeśli nie jest to możliwe, musisz przyjrzeć się różnym rzeczom, które powodują, że serwer SQL będzie musiał ładować lokalnie całą tabelę. Na przykład używając GETDATE() a nawet niektórych sprzężeń. Inni zabójcy wydajności obejmują nieprzyznawanie odpowiednich praw.

Więcej informacji znajdziesz na http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodaj krok zadania do istniejącego zadania agenta serwera SQL (T-SQL)

  2. Zdobądź wszystkich rodziców na dziecko

  3. Utwórz widok z klauzulą ​​ORDER BY

  4. Jak ustawić wartość zmiennej za pomocą „wykonaj” w t-sql?

  5. Wyrażenia regularne w SQL Server