乙個表被鎖,不能使用了,兩種可能:查詢時,自動對其進行"表鎖"了; 查詢時,語句過於複雜,花費的時間過長。
查詢方式:
1. 使用sql server profiler檢視消耗時間;
sql server使用工具檢視資源消耗: 開啟sql server--【工具】-【sql server profiler】
2. 查詢在呼叫"存過"時,通過id找到被鎖的表。
查詢死鎖表的語句:
select
spid 程序,
status 狀態,
登入帳號=substring(suser_sname(sid),1,30),
使用者機器名稱=substring(hostname,1,12),
是否被鎖住=convert(char(3),blocked),
資料庫名稱=substring(db_name(dbid),1,20),
cmd 命令,
waittype as 等待型別,
last_batch 最後批處理時間,
open_tran未提交事務的數量
from master.sys.sysprocessesorder by spid desc
解決辦法:
1. 對此表查詢時,進行行鎖(rowlock);
2.優化查詢語句,減少非id,非索引的列的使用。
儲存過程呼叫時使用的鎖:
with(holdlock) //共享鎖,直到事物結束才釋放
with(tablockx) //表鎖,查詢此表時,鎖表
with(rowlock) //行鎖,查詢此行資訊時,鎖行
select * from table with(rowlock)where id=@id
sql 優化注意事項
1.儲存過程比sql語句效率高 儲存過程經過預編譯處理 而sql查詢沒有 2.給表建立索引的字段 常見字段是where 後的條件字段 3.查詢表時使用 nolock 查詢語句不會阻塞 4.不要使用 select from dbo.table 用具體的字段列表代替 不要返回用不到的任何字段。同時避免使...
Feign效能優化注意事項
參考 一 feignclient註解 feignclient註解被 target elementtype.type 修飾,表示feignclient註解的作用目標在介面上 1 2 3 4 5 feignclient name github client url configuration githu...
知名站點優化注意事項
但我們經常可以遺憾地看到一些知名站點使用了不夠合理的內容建設方式,比如 大量不同內容的頁面均使用同一標題 通過的方式展現網頁中的重要資訊 新聞 聯絡 等 重要頁面通過flash建設,未使用文字說明等。知名站點對搜尋引擎,乃至整個網際網路歡迎的影響通常是巨大的,若使用惡意的作弊行為,其產生的影響也就越...