All Products
Search
Document Center

ApsaraDB RDS:Eksekusi remote UPDATE yang lambat pada linked server SQL Server

Last Updated:Mar 29, 2026

Saat menjalankan pernyataan UPDATE melalui linked server SQL Server, SQL Server menarik semua baris yang sesuai dari server remote ke instans lokal untuk diproses, lalu menuliskan kembali perubahannya. Proses bolak-balik inilah yang menyebabkan operasi UPDATE menjadi lambat melalui linked server, meskipun pernyataan SELECT berjalan cepat—SELECT memungkinkan server remote melakukan filter dan hanya mengembalikan baris hasilnya, sehingga volume data yang dikirim melalui jaringan jauh lebih sedikit.

Solusi

Jalankan logika UPDATE di server remote alih-alih menarik datanya ke lokal. Terdapat dua pendekatan yang dapat digunakan:

Opsi 1: Bungkus UPDATE sebagai prosedur tersimpan remote

Buat prosedur tersimpan di server remote yang berisi logika UPDATE, lalu panggil melalui linked server menggunakan sintaks nama empat bagian (four-part name).

-- Panggil prosedur tersimpan remote menggunakan sintaks nama empat bagian
DECLARE @return_status INT;

EXEC @return_status = <linked_server_name>.<database_name>.<schema_name>.<procedure_name>
    @param1 = <value1>;

Cara ini memastikan UPDATE dijalankan di server remote. Prosedur tersimpan tersebut harus sudah ada di instans SQL Server remote.

Untuk daftar prosedur tersimpan yang didukung oleh ApsaraDB RDS for SQL Server, lihat Stored procedures.

Opsi 2: Gunakan OPENQUERY untuk UPDATE dengan transmisi langsung

OPENQUERY mengirim kueri langsung ke linked server untuk dieksekusi. UPDATE dijalankan sepenuhnya di server remote tanpa mentransfer data ke instans lokal.

UPDATE OPENQUERY (<linked_server_name>, 'SELECT <column> FROM <schema>.<table> WHERE <condition>')
SET <column> = <new_value>;
PlaceholderDeskripsiContoh
<linked_server_name></linked_server_name>Nama server yang ditautkanRemoteSvr
<schema>.<table>Tabel remote yang akan diperbaruidbo.orders
<condition>Filter untuk mengidentifikasi baris targetid = 101
<new_value>Nilai yang akan diatur'processed'

Untuk sintaks lengkap OPENQUERY dan contoh tambahan, lihat OPENQUERY (Transact-SQL).

Berlaku untuk

ApsaraDB RDS for SQL Server

Referensi