Date: Thu, 28 Sep 2006 13:03:44 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんにちは
-----Original Message-----
From: "堀江" "正浩" [mailto:who@example.ne.jp]
Sent: Thursday, September 28, 2006 12:55 AM
To: who@example.ne.jp
Subject: [ml-msde-beg:01867] TSQL のデバッグについて
>SQLSERVER7.0 & ACCESS2000 でシステムを作っています。
>(略)
>その際の難点は、ストアドプロシージャー(TSQL)側に、バグが潜んでいて、
>それを容易に(私の技術不足の為)発見できないのです。
>ACCESSなどは、IDEで容易にデバッグが出来るので、
>そんなツールは無いのかな?とお聞きした次第です。
SQL Server 7.0 の場合であれば、 Visual Studio の中に、T-SQLデバッガ
が付属していますので、それを使うことになります。
Visual Basic 5.0 からストアド プロシージャをデバッグする際のヒント
http://support.microsoft.com/kb/170496/ja
SQL Server 2000 Service Pack 3 のインストール後に以前のクライアントに対して
T-SQL デバッガがデフォルトで無効になる
http://support.microsoft.com/kb/328151/ja
SQL Server 2005 であれば、Visual Studio 2005 と組み合わせます。
>今、現行で行っている方法としては、バグがありそうな箇所の下に
>RAISERROR(変数の状態 ,10,1) WITH LOG
>などとして、イベントログに書き込み、
>ストアドプロシージャーの実行状況試験を行っております。
>
>もっとスマートな方法があれば、ご教授いただきたく
>よろしくお願いいたします。
バグのありそうな箇所に「ログを書き込む」という方法は、それ自身は
間違っていません。
ただ「バグがありそうな箇所」という考え方は、サーバーのシステム開発
では、良くありません。
開発しているシステムの内容によって、多少程度の差はありますが、
現在のサーバーの動作状況を逐一報告できるようなシステムが
理想です。
サーバーで動作するアプリケーションは、通常は、GUI画面などを
表示しませんので、どのような状態で動いているのか、その内部
動作状況を把握するのは難しいです。
ですから、イベントログなどを利用し、現在の動作状況を外部に
報告しています。
デバッグ目的だけではなく、通常時でも、ストアドプロシージャに
渡されたパラメータの値を出力したり、ストアドの実行結果を
記録したりして、動作状況が分析できるようにしましょう。
デバッグレベルの番号に応じて、動作記録が、詳細情報出力から
要約程度の出力まで、制御できるようにすれば、もっと良いです。
このようにすれば、お客様に製品を納品した直後は、デバッグレベルを
詳細設定にして、動作状況を監視し、問題が無いようならデバッグレベルを
要約出力に戻したりします。
ただこのようなシステム開発をすると、当然開発コストは上がります。
最終的には、開発コストや時間との相談になります。
せっかくデータベースを使っていますので、デバッグ記録用のテーブルを
準備し、そのテーブルに実行結果を残していく方法も有効です。
ただトランザクションがロールバックされたら、デバッグ記録もロールバック
され消えてしまうことになりますので、注意が必要です。
トランザクションがロールバックするときの、その事実をテーブルに記録する方法に
ついて
http://www.horikawa.ne.jp/cgi-bin/showlog.cgi?kd=1&no=1440
などの方法を利用します。
------------------------------------
Epata-IT/日本技術ソフト開発
堀川 明 (Akira Horikawa)
09月28日(木曜日) 13時03分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|