Pourquoi SQL Server fonctionne-t-il plus rapidement lorsque vous indexez une table après l'avoir remplie?

J'ai une procédure stockée qui met 750K des enregistrements dans une table temporaire par le biais d'une requête de l'une de ses premières actions. Si je créer des index sur la table temp avant de le remplir, l'élément prend environ deux fois plus long à exécuter par rapport à quand je l'indice après le remplissage de la table. (L'index est un entier dans une seule colonne, la table est indexée est juste deux colonnes, chacune d'un nombre entier.)

Cela semble un peu hors de moi, mais je n'ai pas une solide compréhension de ce qui se passe sous le capot. Quelqu'un aurait-il une solution?

source d'informationauteur Dan Blair