sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server Linked Server Eksempel forespørgsel

Formatet skal sandsynligvis være:

...

For eksempel:DatabaseServer1.db1.dbo.table1

Opdater :Jeg ved, at dette er et gammelt spørgsmål, og det svar, jeg har, er korrekt; dog tror jeg, at enhver anden, der støder på dette, burde vide et par ting.

Nemlig, når du forespørger mod en linket server i en joinsituation, er HELE tabel fra den linkede server vil sandsynligvis downloades til den server, forespørgslen udføres fra, for at udføre join-operationen. I OP's tilfælde er både tabel1 fra DB1 og tabel1 fra DB2 vil blive overført i deres helhed til serveren, der udfører forespørgslen, formentlig kaldet DB3 .

Hvis du har store borde, kan dette resultere i en operation, der tager lang tid at udføre. Når alt kommer til alt er den nu begrænset af netværkstrafikhastigheder, som er størrelsesordener langsommere end hukommelses- eller endda diskoverførselshastigheder.

Hvis det er muligt, skal du udføre en enkelt forespørgsel mod fjernserveren uden at slutte sig til en lokal tabel for at trække de data, du har brug for, ind i en midlertidig tabel. Så spørg fra det.

Hvis det ikke er muligt, så skal du se på de forskellige ting, der ville få SQL-serveren til at skulle indlæse hele tabellen lokalt. For eksempel ved at bruge GETDATE() eller endda visse joinforbindelser. Andre præstationsdræbere omfatter ikke at give passende rettigheder.

Se http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ for mere information.



  1. Hvordan indsætter man JSONB i Postgresql med Python?

  2. Sådan aktiveres komprimering på en eksisterende tabel i SQL Server (T-SQL)

  3. Sådan defineres en auto-inkrementer primær nøgle i SQL Server

  4. SQLite Connection lækket, selvom alt lukkede