3

複数のパッケージを含む大規模な SSIS プロジェクトで作業している場合、作成されたものの一度も使用されなかった変数や、他の変更によって冗長になった変数によって、パッケージが少し乱雑になり始めることがあります。いくつかの SSIS パッケージをスキャンし、未使用の変数をすべて一覧表示するものが必要です。

4

2 に答える 2

4

Powershell を使用して、自分の質問に答えることができました。以下のスクリプトは、xpath を使用して変数名を取得し、次に regex を使用して発生回数を見つけます。1 回発生する場合は、定義されているが使用されていないためです。

唯一の注意点は、dtsx ファイルに自然に存在する単語である変数の名前を使用すると、スクリプトはそれらを取得しないことです。おそらく、パッケージ内の特定のノードでのみ正規表現検索を行うようにスクリプトを拡張する必要があります。

$results = @()
Get-ChildItem -Filter *.dtsx |
% {
    $xml = [xml](Get-Content $_)
    $Package = $_.Name
    $ns = [System.Xml.XmlNamespaceManager]($xml.NameTable)
    $ns.AddNamespace("DTS", "www.microsoft.com/SqlServer/Dts")
    $var_list = @($xml.SelectNodes("//DTS:Variable/DTS:Property[@DTS:Name = 'ObjectName']", $ns) | % {$_.'#text'})
    $var_list | ? {@([Regex]::Matches($xml.InnerXml, "\b$($_)\b")).Count -eq 1} | 
    % { $results += New-Object PSObject -Property @{
         Package = $Package
            Name = $_}
    }
}
$results
于 2013-01-30T09:23:43.080 に答える
0

いくつかのかなり大きな SSIS パッケージについても同じ懸念があるため、これは素晴らしい質問です。残念ながら、SSIS パッケージの外部には、この機能を提供する機能はありません。添付リンクのディスカッションを参照してください。

コードプレックス

ただし、SSIS パッケージを開くと、次のリンクで概説されている手順を適用することで、変数の使用法を確認できます。

find-ssis-variable-dependencies-with-bi-xpress

お役に立てれば。

于 2013-01-29T22:54:52.620 に答える