• ベストアンサー

行ロックとテーブルロックについて

回答がなかったので質問再掲載します。 オラクルで行ロックとテーブルロックの判断がわかりますか? Oracle EnterPrise Managerでわかるのかなーと調べてるのですが、よくわからないので。 どなたかアドバイスお願いします。

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

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

EnterpriseManagerで確認出来ますね。 ツリーの上から順番に言うと ネットワーク→データベース→<DB名>→インスタンス→ロック の中に現在のロック情報が表示されてます。 で、この中の保持モードってのがあるんですがこいつが ROWSHAREの場合は行ロック EXCLUSIVEの場合はテーブルロックです。

toshi_200578
質問者

お礼

回答ありがとうございます。 ROWSHAREはやっぱり行ロックでしたか。 ROW~だからそうなのかな~とは思ったんですけどはっきりわからなくて。。 助かりました。ありがとございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQLServerでのロックについて

    SQLServerであるテーブルを行ロックしています。 (select * from テーブルA with (UPDLOCK) where KEYCD = 1) 行ロック実行時に、他のマシンが既にロックしていた場合、それをエラーとして返す方法はありますでしょうか? (Oracleでいう"nowait"のようなもの) 最近SQLServerをやりはじめたばかりの超初心者です。 よろしくお願いします(T_T)

  • tableの行について

    tableについて質問ですが、行と行の間に余白を入れるにはどうすれば良いのでしょうか? ■■■■■ ■■■■■ ■■■■■ ■■■■■ ■■■■■ 1行ごとに一定の間隔ではなく、こういう風に特定のところに入れたいのですが。 よろしくおねがいします。

  • MS_SQLでテーブルの更新日を知りたい

    Microsoft SQL Server 7.0 についての質問なのですが、テーブルの更新日を知るにはどうしたら良いでしょうか? Enterprise Manager でテーブルを参照すると、作成日は掲載されてますが更新日は表示されていません。Access2000からADOでSQL Serverに接続し、テーブルの最終更新日を得る方法がありましたら教えて下さい。 どうぞ宜しくお願い致します。

  • SQLServerの行ロック

    VB6及びSQLServer2000で開発を行っているのですが 1つのテーブルに対して一度に複数の行ロックを 行う事が出来ずに困っています。 通常と違う方法が必要なのか、何か注意点があるのでしょうか? よろしくお願いします

  • トランザクションとテーブルロック

    初心者の質問で申し訳ありません。 トランザクションで複数のテーブルを更新する時、テーブルロックはかかっているのでしょうか。 具体的に言うと、 BEGIN TRAN a  INSERT INTO A VALUES('data1')  INSERT INTO B VALUES('data1','data2')  INSERT INTO C VALUES('data1','data2','data3') COMMIT TRAN a とするとき、テーブルA,B,Cはあらかじめロックしておく必要があるのでしょうか。 アドバイスお願いいたします。

  • ACCESSのテーブルを読んでる間、ロックする方法は?

    WINDOWS XP、VB6.0、SP5、で開発しています。 データベースにアクセスを使っていて、 あるテーブルをSELECT文で抽出しているのですが、 それと同時に、他のPCがそのテーブルを見ようと同じ処理をしてきた場合に、 見れないようにロックしたいのですが、 方法が全然分かりませんでした。 調べた限りでは、SQLやオラクルだと出来るとか。 アクセスでも何らかの方法でできないでしょうか? どうぞ、ご教授よろしくお願いしますm(_ _)m

  • 行ロックについて

    Web上のボタンをクリックしたとき 該当データを1件取得しそのデータにフラグをたてる ⇒フラグを管理するテーブルに投入する という処理をしており該当データは一人につき1件取得したいです。 BEGIN SELECT * FROM TABLE1 WHERE day = 今日 ORDER BY time LIMIT 1 FOR UPDATE UPDATE TABLE1 SET flag = 1 WHERE id = $id INSERT INTO TABLE2 (time , flag ) VALUES ($time , 1); COMMIT 現在の問題は同時にボタンを押したとき SELECTで取得したデータが重複してしまうことがあることです。 BEGINからCOMMITまでを一連の流れとし、 その間はSELECTもできないようにしたいです。 ドキュメントに FOR UPDATEだとUPDATE、DELETE、SELECT FOR UPDATEは拒否されます とありますのでSELECTは通ると解釈するとFOR UPDATEでは実現できないのでしょうか? テーブルのロックではなく行のロックで実現したいのですが どなたかご教授お願い致します。 ※バージョンはPostgreSQL 8.1.18 です。

  • アクセスからオラクルへテーブルをエクスポートするVBAコードは?

    バックアップとして、アクセスからオラクルへテーブルをエクスポートします。その際のアクセスVBAのコードがわかりません。 SQLで行おうとしたらフィールドが120ほどありコードが軽く千行を超えてしまったためあきらめました。 流れとしては、mdb内にオラクルテーブルをコピーして→mdbからオラクルへテーブルをエクスポートして→テーブルのリンクを削除する、と考えています。 また、もしSQLで簡潔に上記作業を行える書き方があるのなら、それも合わせて回答をいただけるととても助かります。 よろしくお願いいたします

  • SQL Server 2000でテーブル内容を同一

    MS SQL Server自体が初心者なので、初歩的な質問だと思いますが、 Enterprise Managerを使って、Aというデータベースの「tbl」というテーブルの内容を、「tbl_new」というテーブルに全てコピーするには、どうすればよいのでしょうか?フィールドの内容は同一です。 ちなみに、両方のテーブルにいくつかデータが存在していて、「tbl」が正しいデータになっています。 同じキーがあれば更新して、キーがなければ追加したいのです。 一度テーブルを消して、コピーするなどの方法が依存関係の都合でできないので、データだけ移したいと思っています。 Enterprise Managerのどの機能を使えばよいのかもわからない状態ですが、よろしくお願いします。

  • 行のロックについて

    PHPとPostgreSQLで商品検索のWebシステムを構築しております。 ロックについて質問なのですが、管理者が商品情報を修正する場合次の手順となります。 1.商品一覧より修正したいデータ(行)を選択。するとフォームに現状の値が入力されたページに移行。 2.フォームから修正したい箇所のみ変更し登録実行。 この手順の間、例えばフォーム上でデータを修正している間に、他の管理者がデータを修正した場合や、 データを削除した場合、不整合やエラーが起こると考え「修正目的でデータを取得した場合は、修正が完了する までその行をロックし、参照以外できない。」というような事を考えたのですがPostgreSQLの機能で可能でしょうか? 「行ロック」が該当するのかと思いインターネットや書籍で調べてみたのですが、トランザクション毎に行なうもののようで長期的なロック目的のものではないと認識しております・・・。 よろしくお願いします。

このQ&Aのポイント
  • 趣味を封印している日数を重ねると、ストレスが溜まっていきます。
  • 封印した趣味を解禁するとより楽しさを感じることができますが、我慢しすぎるのはもったいないかもしれません。
  • ストレスが溜まっているため、プライベートでの活動意欲が低下しています。どうすれば良いのか悩んでいます。
回答を見る