- ベストアンサー
SQLServerでロックしているSQL文を抽出したい
現在、SQLServer2000を使用していますが、 多数のロックが発生しているようで、パフォーマンスが出ません。 そこで、ロックが発生してしまっているSQL文を抽出したいと考えています。 必要な情報としては、以下になります。 ・ロックの種類 ・原因のSQL文 ・ロックしている時間 なにか良いツールや方法がありましたら、教えてください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- SQLServerを使い、SQL文の練習をしたい
SQLServerを使い、SQL文記述の 練習をしたいと考えています。 (テーブルを作る、結合させる、レコードの合計を出す、などの内容) 自分のPC上で、SQL文を書いて 「わー2つのテーブルが結合した!」 「こっちのテーブルにはないレコードだけを追加できた!」というようなことを実感したいのみなのですが、この目的での利用でも、レンタルサーバーを借りるなどして「サーバー」を準備する必要があるのでしょうか? AccessでSQL文の面白さを知り、 他のデータベース関係のソフトにも触れてみたいと 思ったのが理由です。 よろしくお願いいたします。
- ベストアンサー
- その他(ソフトウェア)
- 複雑な抽出条件のSQL文
まだまだ初心者ですがよろしくお願いします。 以下の条件でDBからデータを抽出したい場合のSQLを 教えていただきたいです。 ・テーブルAがありカラムがA、Bとある。 ・Aは重複できないようになっているがBは重複可。 ・Bが重複しているレコードのAの値が欲しい。 環境はSQLServer2000+VB6.0です 情報が足りないかも知れませんがよろしくお願いいたします。
- ベストアンサー
- SQL Server
- 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 Server
- 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 です。
- ベストアンサー
- Microsoft ASP
- 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 Server
- 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 となります。 以上のような説明でご理解いただけますでしょうか。 足りない情報などがありましたらご指摘ください ませ。 宜しくお願いいたします。
- ベストアンサー
- PostgreSQL
- 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 で確認すると、ブロッキングがなく、お互いがお互いをブロックしているという形になっており、手動で強制終了するしかない状況です。 お互いがの場合はデッドロックになり、自動で強制終了されると思うのですが、それも起こりません。 何故、デッドロックにならないのか分からず悩んでおります。 何かの設定なのでしょうか?サーバーの再起動をしてみた方が良いでしょうか?アドバイスお願いします。
- ベストアンサー
- SQL Server
- SQLServerで更新ができない。
環境 Windows NT SQLServer 7.0 SQLServerのクエリアナライザ等で参照(select文)は成功するのですが、 更新(update文やinsert文)を実行すると以下のエラーが発生します。 解決方法がわかる方いましたら教えてください。 サーバー : メッセージ 6、レベル 16、状態 1、行 4 指定された SQL Server が見つかりません。
- 締切済み
- その他(データベース)