簡體   English   中英

MySQL的openquery delete的替代方案

[英]Alternative to openquery delete for MySQL

我正在運行 Microsoft SQL Server 2012 並嘗試在 MySQL 數據庫中運行openquery delete 命令:

delete openquery(MyLinkedServer, 'select * from table_to_delete_from');

然而,這完全有效,令人痛苦地緩慢到它不可行的地步。 涉及的數據集太大了,執行上述操作要求所有要刪除的 MySQL 數據必須通過 VPN 獲取到 MSSQL 服務器。

當直接從 MySQL 服務器運行此命令時,觀察到它的速度提高了 5 倍以上,這是可行的。

如何在不復制數據集的情況下從 MSSQL 調用delete命令到 MySQL 鏈接服務器? 也許在 MySQL 端運行各種存儲過程? 這適用於openquery嗎?

試試這個:

exec ('delete from table_to_delete_from') at MyLinkedServer

SSIS 的另一種情況,每當我需要與 MYSQL 通信時。 並堅持在 MYSQL 表上截斷進程。 我提供如下程序:

CREATE PROCEDURE [dbo].[Usp_DeleteDynamicTable] @sourceTable nvarchar(max)
AS
BEGIN
DECLARE @SQL nvarchar(max)
SET @SQL='truncate table '+ @sourceTable
exec (@SQL) at MYSQL  --MYSQL is my linked server names
END

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM