特にPL/SQLおよびT-SQLで記述されたストアド プロシージャ用の静的コード分析ツールはありますか?
9 に答える
T-SQL の場合、Microsoft には VS Team Suite のデータベース エディションがあります (ただし、現在は開発 SKU になっていると思います)。このリンクは、T-SQL の独自の静的コード分析ルールの作成について説明しています: http://blogs.msdn.com/gertd/archive/2009/01/01/creating-t-sql-static-code-analysis-rules。 aspx
無料のSql Code Guardをお試しください。T-Sql コードの高速で包括的な静的分析を提供し、コードの複雑さとオブジェクトの依存関係を示します。
Toad は、PL/SQL コードを静的にチェックするためのCodeXpertユーティリティを備えています。
このユーティリティは、ファイルをスキャンするか、Oracle データベースに直接接続できます。私が見た限りでは、Windows でのみ動作します。
PL/SQL の場合、Toad CodeXpert は、プラグインを介してコード品質を管理するオープン ソース ツールであるSonar で拡張できます。
T-SQL 用のプラグインも作成できると思います。
私が知っている最も近いものは、 SQL Server Management Studioで利用可能な推定および実際のクエリ プラン関数ですが、他のSQL エンジンにも同様の機能があると思います。
当社のSD ソース コード検索エンジンは、トークン (識別子、番号など) によってソース コード ファイルを事前にインデックス付けすることにより、多くのコンピューター言語 (PL/SQL を含む) の大規模なソース コード ベースを効率的にインタラクティブに検索するためのツールです。事前インデックス作成ステップの副作用として、各ファイルの SLOC、Cyclomatic、Halstead などの標準メトリックを計算し、レポートを生成します。例については、サイトを参照してください。
当社のSD CloneDRは、大規模なコード ベースを分析して冗長コードを探すためのツールです。これを PL/SQL に適用したところ、コードの約 45% がクローンに関係していることがわかりました。YMMV。CloneDR は多種多様な言語で動作します。これらの他の言語のいくつかで実行されるクローン検出のサンプルについては、サイトを参照してください。
編集 10/4/2010:
当社のソース コード検索エンジンは、言語が混在する大規模なコードを非常に高速に検索できるように設計されています。ソースコードをプレインデックスすることで成功します。インデックス作成ステップの副作用として、Cyclomatic や Halstead の複雑さの測定など、さまざまなメトリックを計算します。
追加: 静的分析ツールではありませんが、ソフトウェアの品質に関心のある人々にとって一般的に関心のあるツール: PLSQL ストアド プロシージャの TestCoverage 。
私が知っているわけではありません。PL/SQL に関しては、Oracle は PL/SQL コンパイル エンジンの多くを公開していないため、ツール サポートを見つけるのは困難です。
私ができることのほとんどは、データ ディクショナリをクエリして、パッケージの依存関係をマップするなどのことを行うことです。
T-SQL の投稿のフォローアップとして。VS2010 および VS2008 データベース開発エディションには、静的分析ルールが組み込まれています。これらはユーザー拡張可能です。つまり、独自の分析ルールを .net 言語で記述できます。オープンソース プロジェクトの Neznayka には 22 のルールの初期セットが付属しており、独自のコントリビューションを開始するための便利なベースを形成します。
確かに、Visual Studio 用に分岐し、VS プロジェクトを使用して db コードを開発する準備をする必要がありますが、SSMS のプラグインとしての SSDT の最近のリリースは、Microsoft がそうする意志があればそうする可能性を高めています。 、ユーザーが作成したルールを、MS SQL プロジェクトを「無料」で使用してデータベース コードを開発する環境に配布できるようにします。
Neznaykaへのリンク。
またはウェブを検索します。