Dans ce scénario, il existe deux serveurs de base de données: l'un se trouve sur notre réseau local (serveur A) et l'autre sur notre emplacement distant (serveur B).Augmentez les performances de DELETE/INSERT sur le serveur distant
Nous voulons transférer les données de nos projets du serveur A au serveur B. Pour ce faire, nous supprimons d'abord les données existantes sur le serveur B pour un certain ProjectID et ensuite insérons simplement les données du serveur A au serveur B. Toutes les données sont préparées sur le serveur A.
La quantité réelle de données transférées est d'environ 2,5 Mo. Avec notre connexion 20MBit cela devrait être fait en un éclair. Cependant avec SQL cela prend 30-40 secondes. En fait, si vous voulez prendre la même quantité de données et le transférer avec FTP, cela prend 4 sec. :)
J'ai activé la fonction NON COMPTANT. J'ai lu que cela pourrait accélérer les requêtes à distance.
Qu'est-ce qui pourrait causer ce transfert lent?
EDIT:
Le SQL devrait vraiment être la cause. Il se décompose comme suit:
- Sélectionnez les données de tous les types de bases de données et l'insérer dans un DB sur le serveur A
- Supprimer du serveur B DB Où ProjectID = x
- Insérer dans le serveur B DB - Sélectionnez * à partir du serveur Une base de données où ProjectID = x
Les deux dernières étapes prennent environ 40 secondes. Et comme vous pouvez le voir, tout ce que je fais est de supprimer les anciens enregistrements et d'insérer les nouveaux. Aucune jointure ou syntaxe t-sql difficile.
Je pense que vous devez nous donner plus d'informations. Si vous pensez que le SQL est la cause, peut-être nous montrer un pseudo-code. – dave
Je suis d'accord avec dave, mais je vais poster une réponse générique –