• ベストアンサー

SQLServerでロックしているSQL文を抽出したい

現在、SQLServer2000を使用していますが、 多数のロックが発生しているようで、パフォーマンスが出ません。 そこで、ロックが発生してしまっているSQL文を抽出したいと考えています。 必要な情報としては、以下になります。 ・ロックの種類 ・原因のSQL文 ・ロックしている時間 なにか良いツールや方法がありましたら、教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

システムストアドプロシージャsp_lockを使用してはいかがでしょうか。 詳しい解説はヘルプにもありますが、使用例が http://www.microsoft.com/japan/msdn/sqlserver/columns/webtech/webtech2.asp で説明されています。

参考URL:
http://www.microsoft.com/japan/msdn/sqlserver/columns/webtech/webtech2.asp
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQLServerを使い、SQL文の練習をしたい

    SQLServerを使い、SQL文記述の 練習をしたいと考えています。 (テーブルを作る、結合させる、レコードの合計を出す、などの内容) 自分のPC上で、SQL文を書いて 「わー2つのテーブルが結合した!」 「こっちのテーブルにはないレコードだけを追加できた!」というようなことを実感したいのみなのですが、この目的での利用でも、レンタルサーバーを借りるなどして「サーバー」を準備する必要があるのでしょうか? AccessでSQL文の面白さを知り、 他のデータベース関係のソフトにも触れてみたいと 思ったのが理由です。 よろしくお願いいたします。

  • 複雑な抽出条件のSQL文

    まだまだ初心者ですがよろしくお願いします。 以下の条件でDBからデータを抽出したい場合のSQLを 教えていただきたいです。 ・テーブルAがありカラムがA、Bとある。 ・Aは重複できないようになっているがBは重複可。 ・Bが重複しているレコードのAの値が欲しい。 環境はSQLServer2000+VB6.0です 情報が足りないかも知れませんがよろしくお願いいたします。

  • SQLServer2000 で、SQLの書き方

    SQLServer2000上のデータ抽出方法について教えて下さい。 例えばデータとして・・・  カラム名: 品番 販売開始日 販売終了日  データ1 : A01 2011/01/01 2011/03/31  データ2 : A02 2011/02/01 2011/05/31  データ3 : A03 2011/04/01 2011/06/30 とします。 今、期間の入力として、 開始日:2011/03/01 終了日:2011/03/31 とした場合、この期間内にあるデータを抽出したいです。 答えは、A01 と A02 が指定期間内にあるので抽出されるSQLを教えて下さい。 (言いかえれば、指定期間内に掛っている情報の抽出です) どなたか、ご教授お願いします。

  • SQL文 特定のレコードを抽出したい

    以下のようなテーブルAがあったとします。 年月日,項目B ---------------------- 20080101 100 20080102 100 20080103 200 20080104 400 20080105 400 20080106 200 SQL文にて、データの抽出を行いたいのですが、 抽出したいのは、データに変更があった年月日と項目Bの値です。 年月日,項目B ---------------------- 20080101 100 20080103 200 20080104 400 20080106 200 前の年月日と比較し、項目Bに違いがあった場合のデータだけ抽出したいのですが、SQL文で行うことは可能でしょうか?? 環境は、SQL Server 2005 です。

  • SQLServer2005のSQL文での別名の取り扱い

    現在VB.net2005とSQLServer2005にてプログラムを組んでいます。 以下のように、サブクエリにて抽出されたStockテーブルと Tagテーブルを結合するSQL文を組みました。 *行頭は列番号です。 01- SELECT * FROM 02- ( 03-  SELECT A1.*, A3.* FROM 04-   ( 05-    SELECT A2.* FROM stock AS A2 06-    WHERE A2.StockDay < #日付#  '【SQLserverで流す時は "CONVERT(DATETIME, '日付')"】 07-    AND A2.ShopCode = '店番号' 08-   ) AS A1 09-  LEFT JOIN tag AS A3 10-  ON A1.StockNo = A3.StockNo 11- ) AS S1 これだとACCESS2000のクエリ上では正しく実行できます。 しかし、.net2005のサーバエクスプローラ上で上記SQL文を流しても、 「列 'StockNo' が 'S1' に複数回指定されました。」 とエラーが出てしまい実行することができません。 行03を "SELECT A1.* FROM" にするとSQLServer2005でも動きますが、 tagテーブルのフィールドが結果に含まれません。 tagテーブルのフィールドも結果に含みたいです。 どなたか原因や回避方法をご存知の方いらっしゃいましたら、 お手数ですが是非ともご教示頂きたいです。 よろしくお願い致します。

  • SQL文の記述について

    以下の項目を抽出するSQL文を色々考えているの ですが、どうしても思い浮かびません。ぜひとも ご教示いただきたく存じます。使用データベースは PostgreSQL7.2です。 テーブル構成は以下のとおりです。 事業コード 部署コード 情報コード 01     02     01 01     02     02 01     02     03 02     05     01 02     05     02 02     05     05 02     07     02 02     07     03 02     07     06 以上のようなテーブルから、「情報コード02と03の 両方をもつ事業コードと部署コードの組み合わせ」を 求めるSQLを記述したいのです。この結果は 事業コード 部署コード 01     02 02     07 となります。 以上のような説明でご理解いただけますでしょうか。 足りない情報などがありましたらご指摘ください ませ。 宜しくお願いいたします。

  • SQL文を教えてください

    SQL文を教えてください。 以下のテーブルがあります。 T入金 [ID] [名前] [金額] [入金日] 1, 山田, 25000, 2009/01/01 2, 佐藤, 5000, 2009/02/01 3, 山田, 30000, 2009/01/02 4, 佐藤, 45000, 2009/02/02 5, 佐藤, 10000, 2009/02/03 同じ人物で、入金額50000円に至ったときの入金日を 抽出したいと思っています。 上記データだと、 山田さんは入金日2009/01/02、 佐藤さんは入金日2009/02/02、 ということになります。 これを一つのSQL文で抽出できますでしょうか。 ご教授宜しくお願いいたします。 (Access2000のクエリで抽出しようとしていますが、Accessで無理ならSQL Server、MySQL、PostgreSQLでも可です)

  • SQLServerでのSQL文に関して(Accessより)

    SQLServer2005とAccess2000で改修をしています。 共にADO接続をしています。 下記のように単純にUPDATEしているSQLがあるのですがエラーとなります。 フラグAはAccess側から見るとYes/No型 SQLServer2005から見るとビット型です。 (DB.Excute (UPDATE tblテーブル名 SET フラグA = Yes WHERE ID = 1)) エラーはメッセージが出るわけではなく、更新が決定されないというか… デバック自体は何も言われず通るのですが 当処理記述のMDBを閉じた後、下記SQLにてリスト表示させると SELECT IIF(フラグA = NO, '','済') FROM tblテーブル名 WHERE フラグA = NO とすると'済'とは表示されないID=1のレコードが抽出されます。 Access側からリンクテーブルを開き 当レコードのフラグAを手で変更しようとすると 「データの競合」メッセージが表示され「レコードの保存」ボタンの押下は不可です。 見えるレコード値は「0」です。 結局試行錯誤の結果 UPDATE tblテーブル名 SET フラグA = -1 WHERE ID = 1 とすることでSELECT結果は正常となったのですが 原因と、解決方法が適切かがわかりません。 改修中のプログラムは、Yes/No、True/False、-1/0の記述が混在していて 今までYes/No型やビット型、Accessを使ったことがないのでさっぱりです。。 ちなみに現システム使用環境はSQLServer2000とAccess2000/2003です。 普通に動いているようなので、勝手に既存SQLを変えてもいいものか、 むしろSQLServerのバージョンを変えることで変えなければならないのか 判断できたらいいなと思っています。 すいませんが、よろしくお願いいたします。

  • SQLServerロックについて

    お世話になります。 SQLServer7.0をつかっております。 プログラムやハード環境は何にも変わらないのですが、急にロックが頻発するようになりました。 複数ユーザーが同時に使用しているので、ロックがかかるのは普通の事なんですが、SQL EnterPrise Manager で確認すると、ブロッキングがなく、お互いがお互いをブロックしているという形になっており、手動で強制終了するしかない状況です。 お互いがの場合はデッドロックになり、自動で強制終了されると思うのですが、それも起こりません。 何故、デッドロックにならないのか分からず悩んでおります。 何かの設定なのでしょうか?サーバーの再起動をしてみた方が良いでしょうか?アドバイスお願いします。

  • SQLServerで更新ができない。

    環境  Windows NT SQLServer 7.0 SQLServerのクエリアナライザ等で参照(select文)は成功するのですが、 更新(update文やinsert文)を実行すると以下のエラーが発生します。 解決方法がわかる方いましたら教えてください。 サーバー : メッセージ 6、レベル 16、状態 1、行 4 指定された SQL Server が見つかりません。

このQ&Aのポイント
  • NT300の糸通しレバーが下がってもフックが回らないトラブルについて質問です。
  • レバー操作によって糸通しのフックが定位置に回らなくなった場合の対処方法について教えてください。
  • ブラザー製品のNT300において、糸通しレバーの不具合やトラブルに遭遇したことがあります。
回答を見る