2017-08-22 2 views
2

Dans le package SSIS, j'ai un flux de données qui récupère le contenu à partir de la source XML et charge les données dans la table SQLServer via la destination OLEDB.Analyse des performances dans SSIS

Source: source XML; Dest: Destination OLEDB (base de données SQL Server).

  1. Dans le Sqlserver DB, la table de destination (tableau 1) comporte 150 colonnes et toutes ces colonnes sont de type nvarchar (max).
  2. Dans le package SSIS (p1.DTSX), toutes les colonnes XML sont de type DT_NTEXT.
  3. Dans SSIS Package (p2.DTSX) toutes les colonnes XML sont de type DT_WSTR avec jeu de longueur 3000.

Avec cette configuration, quand j'exécute le travail pour un nombre d'enregistrements XML d'entrée de 2000, p1. DTSX est exécuté à 30 secondes tandis que p2.DTSX est exécuté à 45 secondes. Mais avec la même configuration, lorsque j'ai exécuté le travail pour un nombre d'enregistrements XML en entrée de 6000, le p1.DTSX est exécuté à 1min 20 secondes tandis que p2.DTSX est exécuté plus vite que p1 (c'est-à-dire 50 secondes).

S'il vous plaît me expliquer cette controverse lorsque le nombre record s'augmente

Répondre

0

processus SSIS les données dans la mémoire tampon par défaut (GoTo Propriétés des flux de données de travail et nous pouvons par défaut tampon Max lignes/Taille). Dans le fichier p1.DTSX, lors de l'exécution avec un fichier d'entrée plus grand avec toutes les colonnes comme DT_NTEXT (MAX), le tampon mémoire se remplit et traite les données à l'aide du chemin temporaire (BLOBTEMPStorage) Path, d'où il cause de lenteur.

Dans p2.DTSX, cela n'a causé aucun problème, car il a traité tout dans le tampon par défaut car nous avons limité la taille des colonnes à 3000.