Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn mẫu máy chủ được liên kết của SQL Server

Định dạng có lẽ phải là:

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

Ví dụ:DatabaseServer1.db1.dbo.table1

Cập nhật :Tôi biết đây là một câu hỏi cũ và câu trả lời tôi có là đúng; tuy nhiên, tôi nghĩ bất kỳ ai khác tình cờ gặp phải điều này nên biết một vài điều.

Cụ thể, khi truy vấn máy chủ được liên kết trong một tình huống tham gia, TOÀN BỘ bảng từ máy chủ được liên kết sẽ có khả năng được tải xuống máy chủ mà truy vấn đang thực thi để thực hiện thao tác nối. Trong trường hợp của OP, cả table1 từ DB1table1 từ DB2 sẽ được chuyển toàn bộ đến máy chủ thực thi truy vấn, có lẽ được đặt tên là DB3 .

Nếu bạn có các bảng lớn, điều này có thể dẫn đến một hoạt động mất nhiều thời gian để thực thi. Xét cho cùng, giờ đây nó bị hạn chế bởi tốc độ lưu lượng mạng, chậm hơn tốc độ bộ nhớ hoặc thậm chí tốc độ truyền đĩa.

Nếu có thể, hãy thực hiện một truy vấn duy nhất đối với máy chủ từ xa mà không cần tham gia vào bảng cục bộ, để kéo dữ liệu bạn cần vào bảng tạm thời. Sau đó, truy vấn ra khỏi đó.

Nếu điều đó là không thể thì bạn cần phải xem xét những điều khác nhau có thể khiến máy chủ SQL phải tải toàn bộ bảng cục bộ. Ví dụ:sử dụng GETDATE() hoặc thậm chí nhất định tham gia. Những kẻ giết chết hiệu suất khác bao gồm không đưa ra các quyền thích hợp.

Xem http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ để biết thêm thông tin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa sys.views, sys.system_views và sys.all_views trong SQL Server

  2. Cấp quyền cấp bảng trong SQL Server

  3. Cách định cấu hình thư cơ sở dữ liệu trong SQL Server

  4. scope_identity so với Id_current

  5. Chức năng tách trong SQL Server 2008