怎麼知道資料庫表已經鎖表了,資料庫鎖表是什麼意思?

時間 2023-05-10 09:10:11

1樓:匿名使用者

oracle8i 查殺鎖表程序。

檢視當前資料庫中存在的鎖:

sql> select *from v$locked_object;

可以獲得被鎖的物件的object_id及產生鎖的會話sid。

通過查詢結果中的object_id,可以查詢到具體被鎖的物件:

sql> select * from all_objects where object_id = object_id;

可以獲得具體的表名等物件的名稱。

然後,你可以分析出哪個是你所要找的鎖。

sql> select sid, serial# from v$session where sid = sid;

sid serial#

然後再v$session中找到sid, serial#,執行下面的命令,殺掉會話解鎖:

sql> alter system kill session '75, 183';

當然你也可以直接把這幾個檢視和表關聯起來,在查詢結果中直接得到「alter system kill session 'sid, serial#'」這樣的方便的kill sessoin命令。

如果你執行kill session命令後,鎖並沒有除掉,session依然存在。這種情況,通過select spid from v$process where addr in(select paddr from v$session where sid = sid)

查詢到oracle會話在伺服器上的pid(上面的spid),然後登陸到伺服器上,執行。

kill -9 pid

這樣就能殺掉程序解鎖了。

怎麼檢視 sql server 資料庫有沒有鎖表

2樓:匿名使用者

--檢視被鎖表:

select request_session_id spid,object_name(resource_associated_entity_id) tablename

from where resource_type='object'

spid 鎖表程序。

tablename 被鎖表名。

解鎖:declare @spid int

set @spid = 57 --鎖表程序。

declare @sql varchar(1000)set @sql='kill '+cast(@spid as varchar)

exec(@sql)

資料庫鎖表是什麼意思?

3樓:u愛浪的浪子

1、資料庫鎖表的意思:因為在資料庫裡,同乙個資料可能有多個人來讀取或更改,為了防止我更改的時候別人也同時更改,這是一般要鎖住表不讓別人改。

2、舉個簡單例子:在更新資料庫記錄的過程中,我是不希望別人也來更新我的這些記錄的,像庫存,做出庫的時候,原數量100,我出了20,我就需要把數量更新到80;

在更新的過程中,別人又做了30的出庫,如果在我更新的時候,別人先把庫存更新到70,然後我又更新80,那數量就錯誤了。所以我更新的時候,我就需要鎖定這條記錄。這是資料行鎖,排他鎖。

4樓:網友

鎖表的概念稍微有點大,建議樓主找相關資料看一下資料庫鎖的相關知識。

舉個簡單例子:在更新資料庫記錄的過程中,我是不希望別人也來更新我的這些記錄的,像庫存,做出庫的時候,原數量100,我出了20,我就需要把數量更新到80,在更新的過程中,別人又做了30的出庫,如果在我更新的時候,別人先把庫存更新到70,然後我又更新80,那數量就錯誤了。所以我更新的時候,我就需要鎖定這條記錄。

這是資料行鎖,排他鎖。

這只是乙個簡單的例子,資料庫的鎖機制遠比這個情景複雜。

鎖從型別上講,有共享鎖,意向鎖,排他鎖。上面的例子是排它鎖。

從鎖的粒度角度來說,可以分為為行、頁、鍵、鍵範圍、索引、表或資料庫獲取鎖。(鎖粒度是被封鎖目標的大小,封鎖粒度小則併發性高,但開銷大,封鎖粒度大則併發性低但開銷小)上面的例子中的鎖粒度是行鎖。

5樓:

因為在資料庫裡,同乙個資料可能有多個人來讀取或更改,為了防止我更改的時候別人也同時更改,這是一般要鎖住表不讓別人改。當然還有其它各種複雜情況。基本意思就是這樣。

6樓:雲湖醉客

就是資料庫表被鎖了唄。

sqlserver怎麼用sql檢視具體那個表被鎖住了

查詢mysql 哪些表正在被鎖狀態

查詢mysql 哪些表正在被鎖狀態

什麼情況下oracle資料庫的表會被鎖住呢?

sql怎麼把資料庫中的表移到另資料庫中

結構一樣的話 insert into 資料庫a.dbo.tablea select from 資料庫b.dbo.tablea 另外 nsert into ddd 欄位1,欄位2,欄位3 select 欄位1,欄位2,欄位3 from aaa,bbb,ccc 插入的字段和查詢的字段數量型別一致 由於你...

C怎麼建立資料庫,用c 如何建立資料庫表?? 急

要用sql server這個軟來做的 用c 如何建立資料庫表?急 第一.sql server 2000建立資料庫表.很簡單.開啟企業管理器.樹狀結構圖開啟至資料庫資料夾.右鍵新建資料庫.資料庫名字自己取.選擇資料檔案和事務日誌的放置地點.最好和自己做的東西放在乙個資料夾下.ok.資料庫建立成功.進入...

資料庫sql語句四表連線,資料庫SQL語句 四表連線

1 如圖所示,開啟了sql server 2008,並建立好了資料庫。然後看當前是否是在自己要建立表的資料庫中。2 如圖,選中好lx資料庫,練習資料庫。3 或者在新建視窗中輸入 use lx,然後選中後執行它,一樣進入到lx資料庫中。如圖所示。4 之前有教過不用 設計資料庫的表,這裡只講用語句建立表...

oracle資料庫表空間已滿,怎麼處理

1 加資料檔案 或者使用自動擴充套件 2 清理表空間上的無用資料物件 如何處理oracle中temp表空間滿的問題 temp表空間一般是自動擴充套件的,滿的話 我遇到過一次,把temp表空間drop,然後再建立乙個快取表空間 oracle資料庫中,刪除了大量資料後,表空間的大小怎麼沒變大 刪除資料為...

如何將資料庫中的表複製到另資料庫中的表中

將乙個資料庫中的乙個表複製到另乙個資料庫中的表中 的過程如下。具體步驟 首先,開啟並連線sql server,在源資料庫source db 源資料庫名稱 上右鍵,然後依次點選 編寫表指令碼為 create到 新查詢編輯器視窗 在第1步產生的編輯器中按 crtl a 組合鍵全選內容,然後右鍵 複製 或...