我在MS SQL Server Express版中遇到以下问题。当执行以下SQL查询5000次并且每次递增SEQ数(1-5000)时,执行时间约为38秒:
INSERT INTO [EXPLORER\SQLEXPRESS2014].CentralServer.dbo.f_ORDRE
SELECT * FROM [EXPLORER\SQLEXPRESS2014].Local.dbo.ORDER WHERE SEQ = 1;
所有活动都在本地计算机上完成。总时间如预期。 ORDRE的记录大小约为560字节。现在,如果我按如下所示对远程服务器执行INSERT,则会为5000条记录获得接近9分钟的执行时间。 FRACTALSERVER具有1 Gbit以太网连接。网络数据包大小从4096更改为8192字节,执行时间没有任何变化:
INSERT INTO [FRACTALSERVER\FRACTASQLEXPRESS].CentralServer.dbo.f_ORDRE
SELECT * FROM [EXPLORER\SQLEXPRESS2014].Local.dbo.ORDER WHERE SEQ = 1;
为什么最后一种情况下的执行时间如此之长(14倍长!)。我无法理解。任何人都可以暗示我做错了什么,或者说明问题可能出在哪里?