• ベストアンサー

プロファイラを裏で実行継続するには?

SQLServerにおいてプロファイラを実行するとリアルタイムでトレースが出力されます。 しかし、Windowsをログオフすると停止されてしまいます。 ログオフしてもトレースをファイルに出力し続ける方法を教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

クエリによるトレースファイル作成ならいかがでしょうか? プロファイラでお好みの設定で実行します。 ファイル-エクスポート-トレース定義のスクリプト からスクリプトを保存します。 プロファイラは終了してください。 ManagementStudio、クエリアナライザなどで↑で保存したSQL開きます。 「exec @rc = sp_trace_create @TraceID output, 0, N'InsertFileNameHere', @maxfilesize, NULL」 こんな一文がありますので、「InsertFileNameHere」の部分に保存先のパス+ファイル名に変更 実行します。 ☆このとき結果として出力された値は、停止と終了で使用するので控えてください。 これでトレースファイルが作成されていきます。 ファイルの作成数、1ファイルのサイズ上限など設定できますのでお好みに。 ManagementStudio、クエリアナライザは閉じて大丈夫だったと思うのでこれでいけるのではないかと思います。 停止、終了は、 sp_trace_setstatus 2, 0 --2の部分は☆の出力された値、0は停止です。 sp_trace_setstatus 2, 2 --2の部分は☆の出力された値、2は終了です。 この順番でやらないと作成中のファイルが開放されないので気をつけてください。 ちなみに、 sp_trace_setstatus 2, 1 --2の部分は☆の出力された値、1は開始です。

sprinter1130
質問者

お礼

ありがとうございました。 とてもわかりやすかったです。 今後ともよろしくお願いいたします。

関連するQ&A

  • 今、何のストアドを実行しているか知りたい

    タイトルの通り、現在実行中のストアドが何なのか知りたいです。 稼動しているのSQLServerでは、複数のストアドを実行しています。 その中で現在、どのストアドが実行されているのか確認したいのですが、 確認方法がわかりません。たぶん、、プロファイラ??を使いそうな・・・ぐらいだけ、予想していますが、よくわかってないです。 SQLServerのプロファイラの知識レベルですが、私、一度も使ったことがなく、知識に乏しい状態です。 そのためご存知の方、ご教示頂けると嬉しいです。

  • プロファイラ VC++6

    VC++6を使っています。ある処理の実行時間を計りたいのですが、clock()で差分を取る方法と、VS6にあるプロファイラ?という機能で、どこにどれだけ時間がかかっているか視覚的にわかる方法があるらしいのですが、どのようにすればよいのでしょうか? ※VS2005Proは、別売?らしい

  • SQLserver2000の集計処理が遅くなり、困っています!

    SQLserver2000の販売管理システム上で、ほぼ毎日在庫集計処理を行っています。以前に比べて集計処理が遅くなったので、プロファイラでトレースして、ボトルネックとなるSELECT文を突き止めたところまでは良かったのですが、そのDBのフルバックアップを取り、同じ環境を構築したサーバーにDBを移し、処理を実行したところ、ボトルネックとなる事象が再現されませんでした。2台のサーバーの差異を比較して、色々試みたのですが、現行システムの集計処理が改善できません。何か方法があればぜひ教えて下さい。 【現行システムで試した事】ログファイルの切捨て、DBの圧縮、インデックスの最適化、HDDのデフラグ 【プロファイラの値】CPU:現-148250、新-11484 Reads:現-62578066、新-46549 Writes:現-14、新-0 Duration:現-1492046、新-13280

  • SqlServerのスクリプト実行について

    Windows2003ServerにてSqlServer2005をバッチファイルから実行する時について質問させてください。 下記の「sql.bat」にて「script.sql」を実行した場合、「log.txt」に出力される内容は'222'をアップデートした結果「(x行処理されました)」のみが出力されますが、'000'や'111'を更新した結果も出力させたい場合、「script.sql」を3分割し、「sql.bat」で3ファイル実行するしかないのでしょうか。 「sql.bat」 sqlcmd -S SERVERNAME -d SCHEMANAME -i c:\script.sql -o c:\log.txt 「script.sql」 update tablename set data1 = 'aaa' where data1 = '000' update tablename set data1 = 'bbb' where data1 = '111' update tablename set data1 = 'ccc' where data1 = '222'

  • SQLServer2005 でSELECTを実行した結果(クエリ結果)がSQLServer2000の時の2倍の大きさになる

    SQLServer2005 でSELECTを実行した結果(クエリ結果)をファイルに出力したところ、同じデータベース項目をSQLServer2000 でSELECTした結果の2倍程度の大きさになる。 ファイルダンプを採取して中身をみたところ、UNICODEでファイル出力されており、すべての半角文字が2バイト表記されていたため、SQLServer2000(こちらは半角文字は1バイト)のほぼ2倍の大きさになっている事が分かりました。 SQLServer2005 でSELECTを実行した結果(クエリ結果)を半角文字は1バイトで出力する良い方法をご存じの方、ご教示いただけないでしょうか?

  • ログオフ時にファイルを実行について

    OSは、Windows2000を使っています。キャッシュのデーターやIEの履歴や最近使ったファイルなどをログオフした時にバッチ処理として削除したいのです。できれば、ソフトは使いたくないです。ログオフ時にファイルを実行する方法はありますか?それかログオフのバッチの作り方などよろしければ教えてください。よろしくお願いします。

  • 実行ファイルのCPU時間

    linuxでtimeコマンドを用いて、 time ./a.out を実行し実行ファイルのCPU時間を出力させました。 その結果、同じ実行ファイルを実行させても、やる度に出力される時間が少し異なりました。 同じファイルでもCPU時間が変わるというのは、特におかしいことではないのでしょうか? よろしくお願いします。

  • シャットダウン時、ログオフ時の自動実行について

    Windows2000proやXpPro.では、グループポリシーを使ってシャットダウン(またはログオフ)時にスクリプトを実行できますが、Windows98系で同様のことができる方法はございませんか? やりたい事は、シャットダウン(若しくはログオフ)時に、特定のバッチを実行させたいのです。 何かアイデアがございましたら、よろしくお願いします。

  • bat処理の実行結果ログ出力方法について

    Windows2003Serverで、bat処理でネットワーク共有したHDDにバックアップデータを移動する処理を組込しているのですが、実行される場合、されない場合があるため、実行結果をログ出力したいと思っています。 MV D:TEST.TXT Z:\TEST.TXT >>D:\LOG.TXT として出力しますと、エラーであっても、正常であっても何も出力されませんでした。 コマンドプロンプト上で返される結果(ファイルが存在しない場合、「指定されたファイルが見つかりません」の表示をする等)をログ出力する方法はないでしょうか? ご教授下さい。

  • タスクスケジューラでのtelnet実行について

    よろしくお願いいたします。 ネットワーク機器に定期的にログインチェックを行う必要が生じたため、 バッチファイルとVBSを作成し、手動で実行すると問題なく動作しました。 ところがWindowsタスクスケジューラでユーザーがログオフした状態で実行すると 異常終了してしまいました。 処理の流れは以下になります。 (1)バッチファイル起動 (2)バッチファイルが適当な名前を付けたコマンドプロンプトを起動。 (3)バッチファイルがVBSを起動 (4)VBSが(2)で起動したコマンドプロンプトをアクティブにする。 (5)VBSがSendKeysメソッドでコマンドプロンプト上でtelnetを実行 原因が分からず困っています。 ユーザーがログオフしている環境ではtelnetは実行できないものなのでしょうか。 どうぞご教授下さい。