資料庫常用管理語句

來源:互聯網
上載者:User

KILL資料庫進程,常用於需要單獨操作的情況下,也用於死結情況。

程式碼片段3:強制斷開使用者串連進程(也常用於死結)。
--kill資料庫的串連進程.
DECLARE @dbname sysname 
SET @dbname='adirectory' --要關閉進程的資料庫名
declare @s nvarchar(1000)
declare tb cursor local for
select 'kill '+cast(spid as varchar)
from master..sysprocesses 
where dbid=db_id(@dbname)
open tb 
fetch next from tb into @s
while @@fetch_status=0
BEGIN
--PRINT @s
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
go

--2 kill 資料庫進程,需要複製產生的文本來執行。
select COALESCE('kill ','')+cast(spid as varchar)
from master..sysprocesses 
where dbid=db_id(@dbname)

4、查看資料庫死結進程。

DECLARE @spid int,@bl int
DECLARE s_cur CURSOR FOR 
select  0 ,blocked
from (select * from master..sysprocesses where  blocked>0 ) a 
where not exists(select * from (select * from master..sysprocesses where  blocked>0 ) b 
where a.blocked=spid)
union select spid,blocked from master..sysprocesses where  blocked>0
OPEN s_cur
FETCH NEXT FROM s_cur INTO @spid,@bl
WHILE @@FETCH_STATUS = 0
begin
if @spid =0 
  select '引起資料庫死結的是: '+ CAST(@bl AS VARCHAR(10)) + ' 進程號,其執行的SQL文法如下'
else
  select '進程號SPID:'+ CAST(@spid AS VARCHAR(10))+ ' 被進程號SPID:'+ CAST(@bl AS VARCHAR(10)) +' 阻塞,其當前進程執行的SQL文法如下'
DBCC INPUTBUFFER (@bl )
FETCH NEXT FROM s_cur INTO @spid,@bl
end
CLOSE s_cur
DEALLOCATE s_cur
3、更改資料庫排序.更改資料庫定序(不會改變原已有的資料)--更改為中文排序

ALTER DATABASE dbName COLLATE Chinese_PRC_CI_AS

--查看所有排序

SELECT * FROM fn_helpcollations()

 

2、查看資料庫連接進程資訊

select name,count(0)as conn,
hostname,program_name,loginame,
s.login_time,s.net_address,nt_domain,s.cmd
from master.dbo.sysprocesses s join master.dbo.sysdatabases d
on s.dbid=d.dbid and d.name in (select name from master.dbo.sysdatabases)
group by name,hostname,program_name,loginame,s.login_time,s.net_address,nt_domain,s.cmd 
order by name
1、當前資料庫在做什嗎?for SQL 2005

use master
select sys.dm_exec_sessions.session_id,
sys.dm_exec_sessions.host_name,
sys.dm_exec_sessions.program_name,
sys.dm_exec_sessions.client_interface_name,
sys.dm_exec_sessions.login_name,
sys.dm_exec_sessions.nt_domain,
sys.dm_exec_sessions.nt_user_name,
sys.dm_exec_connections.client_net_address,
sys.dm_exec_connections.local_net_address,
sys.dm_exec_connections.connection_id,
sys.dm_exec_connections.parent_connection_id,
sys.dm_exec_connections.most_recent_sql_handle,
(select text from master.sys.dm_exec_sql_text(sys.dm_exec_connections.most_recent_sql_handle )) as sqlscript,
(select db_name(dbid) from master.sys.dm_exec_sql_text(sys.dm_exec_connections.most_recent_sql_handle )) as databasename,
(select object_id(objectid) from master.sys.dm_exec_sql_text(sys.dm_exec_connections.most_recent_sql_handle )) as objectname
from sys.dm_exec_sessions inner join sys.dm_exec_connections
on syssys.dm_exec_connections.session_id=sys.dm_exec_sessions.session_id
0、擷取資料庫的實體路徑:

CREATE FUNCTION dbo.ufnGetSysDBPath(
    @dbName VARCHAR(100)
) RETURNS VARCHAR(200)
AS
BEGIN
    DECLARE @returnValue VARCHAR(200)
IF SERVERPROPERTY ('BuildClrVersion') is not null
    BEGIN 
    --PRINT 'Sql Server 2005 '
SET @returnValue= (SELECT SUBSTRING(physical_name, 1, CHARINDEX(@dbName+'.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = DB_ID(@dbName) AND file_id = 1)
    END 
ELSE 
    BEGIN 
    --PRINT 'Sql Server 2000'
SET @returnValue= (SELECT SUBSTRING(filename, 1, CHARINDEX(@dbName+'.mdf', LOWER(filename)) - 1) FROM master..sysaltfiles WHERE dbid = DB_ID(@dbName) AND fileid = 1)    
    END 
RETURN @returnValue     
END
使用: 注意項: (預設情況下,資料庫名與資料庫檔案相同名) 如有不同,可修改部分代碼後運行

SELECT dbo.ufnGetSysDBPath('master')

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zhou__zhou/archive/2007/09/01/1768008.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.