2

SQL Server Management Studio 2014で最も依存するストアドプロシージャを取得しようとしています。私は、1900個のストアドプロシージャ、453個のテーブル、ビューは768件、機能は419件。ストアドプロシージャの中には、非常に大きなもの(4089行)があり、多くのストアドプロシージャ、ビュー、関数がネストされています。私はアーキテクチャとソフトウェアそのものを再設計したい。依存オブジェクト名 SQL Serverで最も依存するストアドプロシージャを取得する方法 - T-SQL

任意の提案やソリューションが高く評価されていると

  1. ほとんど依存ストアドプロシージャ:私は、次のレポートを取得したいです。私はそれをgoogledが、私は適切な解決策を取得していない。

答えて

1

sys.sql_expression_dependenciesシステムビューを使用できます。

しかし、実際にコードモジュール階層の構造を理解している場合は、依存グラフをダイアグラムとして表示するための視覚化ツールが必要になります。あなたのニーズに合ったものは市場では聞いていない。

0

以下の手順で見つけることができます。私はわずか149のストアドプロシージャでDBをテストし、フェッチするのに1分の時間がかかりました。

ここでは、ストアドプロシージャ名をobject_DEFINITION関数に渡して、この名前を持つプロシージャ定義が使用されていることを知ります。

DECLARE @TAB_SP TABLE(ID INT IDENTITY, OBJECTID int, NAME VARCHAR(250)) 
    DECLARE @TAB_SP_DEPENDENCY TABLE (ID INT IDENTITY, NAME VARCHAR(250), SP_COUNT INT) 

    INSERT INTO @TAB_SP 
    select object_id,NAME from sys.objects WHERE type='P' 

    DECLARE @MIN INT =1, @MAX INT = (SELECT MAX(ID) FROM @TAB_SP), @SP_NAME VARCHAR(250) 

    WHILE (@MIN<[email protected]) 
    BEGIN 

      SELECT @SP_NAME=NAME FROM @TAB_SP WHERE ID= @MIN 

      INSERT INTO @TAB_SP_DEPENDENCY 
      SELECT @SP_NAME,COUNT(DISTINCT object_id) FROM SYS.OBJECTS 
      WHERE OBJECT_DEFINITION(object_id) LIKE '%'[email protected]_NAME+'%' 

      SET @[email protected]+1 
    END 

    SELECT * FROM @TAB_SP_DEPENDENCY 
+0

この結果、spと関数のリストではない2行になります。次の結果はobject_id \tで、NAMEの値は {1803153469,\t sp_MSrepl_startup} { 1819153526、\t sp_MScleanupmergepublisher}です。 –

関連する問題