Salut à tous
Le contexte :
J'ai un script qui tourne depuis plusieurs années sans problème. Dans le cas particulier d'un client, ce script est amené à traiter un très gros volume de données, et le problème est qu'il sort en timeout.
A force de tests, j'ai réussi à isoler le problème au niveau de la création d'une table temporaire et de 2 requêtes Insert successives pour la remplir avant de continuer les traitements. Sur un très gros volume de données la seconde requête se met à tourner dans le vide jusqu'au timeout quelque soit la valeur de celui-ci (je suis monté à plus de 16h lors d'un test nocturne)
Lors de tests aujourd'hui, j'ai modifié la création de la table et j'aurais à priori résolu le problème.
A l'heure actuelle, la table temporaire est crée via DECLARE @MaTableTemp AS TABLE (...). J'ai modifié la création par CREATE TABLE #MaTableTemp (....).
J'aimerais comprendre la différence entre ces 2 façons alors que l'on est toujours sur de la table temporaire.
Et surtout est-ce que la résolution du problème est bien réelle, ou est-ce que j'ai affaire à un effet de bord trompeur ?
Partager