sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 での長い動的 SQL のデバッグ

    ストアド プロシージャで動的 SQL を使用する必要がある場合は、次のようにします。ビットフィールドである debug の入力変数を追加します。 0 の場合は exec ステートメントが処理され、1 の場合は代わりに print ステートメントが取得されます。デバッグに似たようなことをすることをお勧めします。実行する代わりに、SQL の結果を出力するか、ループで発生しているように見えるため、SQl をテーブルに挿入する可能性があります。次に、構築された sql に目を通し、どこで問題が発生したかを確認できます。

    Declare debug bit
    set debug = 1
    
    ...
    if debug = 1 Begin     Print @SQL End
    Else 
    Begin Exec (@sql) End
      

    または

    mydynamiccode_logging という名前のテーブルを作成します (max sql ステートメントと同じ長さの sql 列、rundatecolumn、および必要と思われるその他の列を使用します (sql ステートメント、ユーザー、アプリケーションを構成するために使用される入力変数を検討します)。複数の人がこのコードを使用している場合)

    exec ステートメントを実行する前に、次のように実行します:

    insert mydynamiccode_logging (sql, rundate)
    values (@sql, getdate()) 
      

    また、デバッグ ビット フィールドを追加して、デバッグ モードに変更したときにのみログを記録することも、常にログを記録することもできます。これは、システムと、これにかかる余分な時間と、システムの残りの部分がどれだけ非難されているかによって異なります。ロギングによって製品の速度を大幅に低下させたくありません。



    1. djangoのランタイム警告

    2. psycopg2==2.6.2のインストール中にエラーが発生しました

    3. AmazonRDSからCSVファイルへのテーブルのエクスポート

    4. MySQL:リストにないアイテムを選択します