J'ai un problème étrange avec le server lié sur des machines de SQL Server. J'ai un Master SQL Server et deux SQL Server identiques. Sur les machines client il y a un server lié appelé MASTER. Les machines client utilisent ce server lié pour synchroniser leurs données avec la database principale.
Le problème est; Une requête fonctionne très bien sur le client 1. Toutefois, la même requête est 20 fois plus lente sur le client 2 que la première. Les machines sont identiques et les autres situations semblent normales. Je pense qu'il y a un problème basé sur le réseau, mais pas sûr. Au fait, la taille des données est presque la même sur deux machines.
Mon exemple de code est ci-dessous. Sur le client 1, chaque ligne d'printing affiche 50-100 ms, mais sur le client 2, elle affiche 500-750 ms
declare @i int =0 declare @ID int declare @Start datetime declare @End datetime set @Start=getdate() while (@i<10) begin Select Top 1 @ID=ID from [MASTER].[MYDB].[dbo].SYNCDATA set @End=getdate() PRINT CAST(datediff(ms,@start,@End) as varchar) set @Start=getdate() RAISERROR ('', 0, 1) WITH NOWAIT set @i=@i+1 end
Si quelqu'un a déjà eu un problème comme celui-ci, donnez-moi quelques indices pour résoudre le problème …
Merci d'avance
Kenan
Rien n'est jamais identique dans l'univers physique 🙂 Les deux machines clientes peuvent différer dans la memory ou la connection réseau ou peut-être la version du pilote client SQL, ou un million d'autres facteurs. Qu'en est-il de l'location des servers clients. Sont-ils dans le même bâtiment, différentes villes, peut-être qu'ils sont connectés via différents routeurs et l'un est plus lent que l'autre. Il y a tellement de variables ici qu'il serait impossible de déboguer sans access physique.