• ベストアンサー

SQLServerでのスロークエリについて

現在、SQLServer2000を使用しているのですが、実行に時間の掛かるクエリを投げた際は、ログを残したいと考えています。 MySQLでのスロークエリと同様似、指定した時間以上掛かった場合ログを残すようなことをSQLServerで出来るのでしょうか。 もしご存知の方がいらっしゃいましたらお知恵を拝借したいです・・・。

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

SQL Server プロファイラでサーバトレースを設定するしかないと思います。 プロファイラにはスクリプトをエクスポートする機能があるので、SQL:Stmt Completedのみを(Durationにしきい値を設定して)トレースし、 それをストアドプロシージャにしてSQL Serverエージェントのジョブに登録する(サービス起動時に起動)のですかね。 とりあえず試すときはトレースの止め方/消し方は把握してください。あと、サーバ負荷のチェックも忘れずに。 http://technet.microsoft.com/ja-jp/library/aa173918(SQL.80).aspx

vinal_wife
質問者

お礼

やっぱりトレースで持ってくる方法しかないですか・・・。 ご回答ありがとうございます!

関連するQ&A

  • SQLServer2000で.NETからクエリを実行していますが、

    SQLServer2000で.NETからクエリを実行していますが、 実行したクエリ文と実行時間のログを取得したいのですが、 どのように取得したらいいのでしょうか? EnterpriseManagerなどで簡単に取得できたらいいのですが。

  • SqlServer2012 ビューとクエリ

    SqlServerにおける、ビューとクエリについて、その違いというか、概念を教えてください。 私は、最初にAccessと「標準SQL」という本で、データベースを学びました。 本を読んでAccessに向かったときに、クエリってビューのことなのかな?と思って、ずっとやってきました。 ところが、SqlServerには、両方の言葉が出てきます。で、とりあえず、クエリをデザイナで作ってみて、クエリにクエリを内包するようなものを作る段になって、クエリが追加できなことに気づきました。Accessでクエリのタブがあるところに、ビューというタブがあるので、クエリの代わりに、ビューを作りました。まったく同じ手順で作れましたが、保存するときに、「OrderBy句は、ビュー定義のTOP句によって返される行を決定するためだけに使用されます。したがってクエリ自体でもOrderByが指定されていないと、ビューでクエリを実行したときに結果が並べ替えられ宇保証はありません。」 などと、表示されます。 ビューでクエリを実行するとは、どういう事なのでしょうか?クエリを実行するのと、ビューを実行(?)するのは、何か違うのでしょうか?

  • Access97からSQLServer2005へのクエリ移行

    お世話になります。 Access97からSQLServer2005への移行作業をしております。 Accessで使用しております、クエリには「DISTINCTROW」が指定してあります。 これはSQLServer2005で言うと何に当たるのでしょうか? どなたかご存知でしたらお教え下さい。 宜しくお願い致します。

  • SQLServer7.0クエリアナライザについて

    SQLServer7.0のクエリアナライザにて、Aというテーブル から、全件データを抽出するSELECT文を実行します。 2台のクライアントパソコンにて実行すると下記の通りの 処理時間となります。  PC1   34秒  PC2 2分24秒 この処理時間の違いはなぜおこるのでしょうか。 また、PC2の処理時間が遅くなったのはある日突然です。 SQLServer7.0の再インストール等を行ったのですが原因が わかりません。 対処法について、アドバイスをお願い致します。

  • SQLServer2008とMySQL5.0の共存できますか?

    SQLServer2008とMySQL5.0の共存できますか? 現在WindowsServer2008R2のPCでSQLServer2008を利用したソフトを稼働しています。 新たにMySQL5.0を利用するソフトを上記PCにインストールしたいと考えていますが、同一PC上でSQLServer2008とMySQL5.0は稼働可能なのでしょうか。 ご存知の方いらっしゃいましたらご教示ください。

  • SQLServer7.0のエラーについて

    SQLServer7.0のSP4をあてたところ、サービスが 動かなくなってしまいました。 エラーログは下記の内容です。 "サーバー コマンド (プロセス ID #9) が原因でクエリの内部並列実行がデッドロックしました。クエリ ヒント オプション (maxdop 1) を使用して、クエリ内部並列実行を指定しないでクエリを再実行してください。" このエラーを回避する方法をご存知ではないでしょうか? SPをアンインストールすることはできないでしょうか? また、調べていたところOPTION句?を使用してMAXDOPを 1に設定するという方法がありました。 この方法をSQL文ではなく、ツール?から設定する方法をご存知でしたら教えてください。 知識がないためうまく説明できずすみません。 非常に困っております。 どなたかご存知の方おみえになりましたら教えてください。

  • クエリの実行時間の目安

    クエリのパフォーマンスチューニングを勉強し始めたのですが、クエリの実行時間の良し悪しはどのように判断したらよいのでしょうか? 実行にかかった時間の目安などはあるのでしょうか? ちなみに、MySQL5.5を使用しています。 以上、よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • SQLServer2005 でSELECTを実行した結果(クエリ結果)がSQLServer2000の時の2倍の大きさになる

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

  • mysql_queryの処理速度が遅い

    PHP+MySQLでプログラミングをしているのですが、実行時にmysql_queryの処理に時間がかかっています。状況は以下の通りです。 ・処理時間を計測するとmysql_queryの実行に15秒程度かかっています。 ・Webminで直接同じSQL文を実行すると1秒程度で終わります。 ・SQLのコマンドは単純なUPDATEです。 ・indexは設定してあります。 ・DBに格納してあるレコード数は数100件程度です。 ・optimizeは実行してみましたが、あまり効果はありませんでした。 お聞きしたいのはWebminで実行すると1秒程度で終わるSQL文がmysql_queryで実行すると、なぜ時間がかかるのかということです。 mysql_queryで時間がかかる原因およびmysql_queryの処理時間を短縮する方法などがあれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ストアドの速度がクエリの30倍遅いです

    お世話になっております ・サーバ:Windows2008R2+SQLServer2012 ・クライアント:Windows7 上記環境にて、クライアントのSSMS上で、 あるストアドプロシジャを実行すると丁度2分程かかります。 (これをスピードアップさせるのが目的です)  exec hoge para1,para2 同じく、SSMSで「新しいクエリ」を作成して、 そのストアドプロシジャの実行部分だけを 貼り付け、パラメタだけを指定して実行すると4秒で終わります。  declare @para1 smallint  declare @para2 smallint  set @para1 = 1  set @para2 = 2  (以下ストアド内のSQLを貼り付け) 「SET ARITHABORT ON」を付加しても 全く変化がありませんでした。 なぜこのような事が起こるのか、見当がつかず、困り果てています。 対応方法等ご存じの方がいらっしゃいましたら お知恵を拝借したく、よろしくお願いいたします。