Lorsque vous insérez moins de 1 350 000 lignes dans la table, cela prend environ 2 minutes, mais lorsque le nombre de lignes insérées est plus grand, le temps nécessaire pour insérer des données augmente à environ 5 heures.
Le problème n'est pas lié aux requêtes ou aux index, car tout fonctionne correctement depuis longtemps et rien n'a changé dans la structure des requêtes, des tables ou des index.
Le problème est apparu pour la première fois il y a environ 2 semaines et il apparaît plusieurs fois les jours, lorsque le nombre de lignes insérées est supérieur à + -1 350 000. Par exemple, un jour, le nombre de lignes insérées est de 1 200 000 et le processus prend 2 minutes, l'autre jour, le nombre de lignes est de 1 450 000 et il faut 5 à 6 heures pour insérer des données.
J'ai essayé de reconstruire des index, mais cela n'a pas aidé.
la source
Réponses:
Je suppose - si vous n'êtes pas réellement bloqué - que vous atteignez un seuil au-dessus duquel le fichier de données (et / ou le fichier journal) doit augmenter, et que votre configuration n'est pas optimisée pour prendre en charge cette croissance. Veiller à ce que:
la source
Serait-ce un problème de mémoire?
Vous pouvez voir ce genre de comportement si un bloc de données auquel vous devez accéder à plusieurs reprises devient trop volumineux pour la mémoire et que vous obtenez une attaque de disque de l'enfer. Si vous devez parcourir un bloc de données trop volumineux pour la mémoire, vous vous retrouvez avec le tout lu à partir du fichier d'échange pour chaque passage, le pousser au-dessus de cette limite peut entraîner une baisse des performances.
la source
Essayez-vous / est-il possible de les diviser en lots plus petits? Lorsque j'ai rencontré un problème similaire, les regrouper par 5.000 (avec GO) a vraiment réduit le temps nécessaire pour terminer une telle tâche.
la source