sql >> Database >  >> RDS >> Sqlserver

SQL Server Linked Server Voorbeeld Query

Het formaat zou waarschijnlijk moeten zijn:

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

Bijvoorbeeld:DatabaseServer1.db1.dbo.table1

Bijwerken :Ik weet dat dit een oude vraag is en het antwoord dat ik heb is correct; ik denk echter dat iedereen die hierover struikelt, een paar dingen moet weten.

Namelijk, wanneer een query wordt uitgevoerd op een gekoppelde server in een join-situatie, wordt de VOLLEDIGE tabel van de gekoppelde server zal waarschijnlijk worden gedownload naar de server van waaruit de query wordt uitgevoerd om de join-bewerking uit te voeren. In het geval van de OP, beide table1 van DB1 en table1 van DB2 worden in hun geheel overgedragen naar de server die de query uitvoert, vermoedelijk met de naam DB3 .

Als je grote tafels hebt, is dit misschien resulteren in een operatie die lang duurt om uit te voeren. Per slot van rekening wordt het nu beperkt door snelheden van netwerkverkeer, die orden van grootte langzamer zijn dan geheugen- of zelfs schijfoverdrachtssnelheden.

Voer indien mogelijk een enkele query uit op de externe server, zonder lid te worden van een lokale tabel, om de gegevens die u nodig hebt naar een tijdelijke tabel te halen. Vraag daar dan vanaf.

Als dat niet mogelijk is, moet je kijken naar de verschillende dingen die ervoor zorgen dat de SQL-server de hele tabel lokaal moet laden. Gebruik bijvoorbeeld GETDATE() of zelfs bepaalde joins. Andere prestatiemoordenaars zijn onder meer het niet geven van de juiste rechten.

Zie http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ voor meer info.



  1. Krijg het aantal dagen in een maand in PostgreSQL

  2. Hoe phpMyAdmin te installeren

  3. PostgreSQL 11 upgraden naar PostgreSQL 13 met TimescaleDB en PostGIS in Linux met pg_upgrade

  4. Aangepaste snelkoppelingen maken in SQL Server Management Studio (SSMS) - SQL Server / TSQL-zelfstudie, deel 10