J'ai une table Table actuelleStatus sous forme de 26 000 lignes P> Mises à jour et Les suppressions sur cette table prennent soudainement trop de temps à 1 min de 30 secondes à 5 min. p> La requête ci-dessous prend une minute pour exécuter. P> CurrentStatus code> dans ma base de données (base de données d'abonnement dans une réplication de fusion)
Les colonnes sont StatusId {Key principale + index clustered}, StatingName, StatusDate, Userid, créatedDate, ModifiedDate, ModifiedBy, AubergeDelete, AubergeDeDate CODE> update StatusMaster set StatusName='OK' where StatusID = 22
3 Réponses :
Je vous recommande de mettre à jour vos statistiques via la Mise à jour des statistiques , par exemple:
sa a aidé à réduire le temps d'exécution mais en prenant toujours 20 secondes impaires
Parfois, il faut 1 seconde et parfois plus de 15 secondes, la consommation de mémoire sur le serveur est de 2,5 Go sur 4 Go et l'utilisation du processeur est de 45%.
Il est possible que la colonne StatutyID code> ait une cardinalité faible, de sorte qu'il fait une analyse de table. Que dit votre plan d'exécution?
Appuyez sur ctrl-m code> puis exécutez votre requête. Vous verrez un onglet supplémentaire dans SSMS pour vos résultats appelés plan d'exécution code>.
et quelles valeurs dois-je rechercher?
Probablement préférable de poster une image du plan d'exécution.
J'ai attaché les images, pouvez-vous vérifier?
Dans certains cas, les statistiques de mise à jour fonctionnent, mais parfois, cela ne fonctionne pas, je dois redémarrer le service SQL Server.
Merci pour la solution. Ma commande de mise à jour utilisée pour prendre 28 minutes et il ne faut que 2 secondes maintenant. Incroyable!!!
Après beaucoup d'insertions, supprime, mises à jour, etc., vous pouvez être fragmenté et que vos index ne peuvent pas être optimisés. Je vous suggère de ré-indexer et de mettre à jour les statistiques. P>
Lorsque vous prenez une sauvegarde et la restauez-la, je pense que vous accomplissez la même chose que la réindex et la mise à jour des statistiques. P>
Vous devez probablement planifier la maintenance comme celle-ci à une base récurrente pour maintenir les performances. P>
J'ai réprimandé les index et j'ai mis à jour les statistiques, mais je suis toujours confronté à la question.
La dernière fois lorsque des requêtes simples ont pris des questions anormales [dans notre petite entreprise], ceci a été causé par la corruption du réseau RAID dans [heureusement la non-production] SQL Server. P>
Comment puis-je trouver si mon tableau de raid est corrompu?
Demandez à la personne, qui administre cet ordinateur, où se trouve SQL Server. Vous devez vérifier Windows EventLogs et, le cas échéant, les journaux d'état du contrôleur RAID. Je ne dis pas que c'est votre cas - je n'ai aucune expérience de réplication et je ne peux pas dire, quel effet cela peut causer; Je viens de laisser entendre que des retards parfois étranges sont causés par des problèmes matériels.
Comme cette table est en réplication et que je reçois une erreur sur 4 à 5 serveurs, je ne pense pas que ce sera un problème de raid
La réplication fonctionne-t-elle lorsque vous avez effectué ces tests? Si le DB est un abonné, vous ne devez pas réellement supprimer \ Mise à jour de ses données, devriez-vous?
@DieGo Yes Replication est en cours d'exécution + sa réplication de fusion, donc insérer la mise à jour peut fonctionner sur n'importe lequel des abonnés et de l'éditeur
@Aamodthakur Fonctions avec une requête à la fois, pas 6 d'entre eux! Et je ne peux pas lire le texte de l'image, veuillez fournir un lien à l'image à la place.
@Redfilter Veuillez vérifier - NARLIAGRIPADA.com/EXE.HTML pour les images