Windows/MSSQL: Unterschied zwischen den Versionen
Aus SchnallIchNet
< Windows
Cbs (Diskussion | Beiträge) (→kill blocked connections) |
Cbs (Diskussion | Beiträge) |
||
Zeile 72: | Zeile 72: | ||
-- dürfen NICHT aus dem System gekickt werden. Falls dennoch Bedarf besteht zuvor ARI um Freigabe bitten | -- dürfen NICHT aus dem System gekickt werden. Falls dennoch Bedarf besteht zuvor ARI um Freigabe bitten | ||
kill __spid__ | kill __spid__ | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | === Freitags-Wartung: anstehende Reports === | ||
+ | |||
+ | <pre> | ||
+ | select | ||
+ | objname as REPORT, | ||
+ | nextruntime | ||
+ | from | ||
+ | CESYSTEMDB.dbo.APS_InfoObjects2 (nolock) | ||
+ | where | ||
+ | nextruntime like '2016 02 25%' | ||
+ | order by | ||
+ | 2 | ||
</pre> | </pre> |
Aktuelle Version vom 24. Februar 2016, 10:58 Uhr
Inhaltsverzeichnis
Transact SQL
snippets...
Kill all Processes
print and kill all connections to a particular DB
USE master GO SET NOCOUNT ON DECLARE @DBName varchar(50) DECLARE @spidstr varchar(8000) DECLARE @ConnKilled smallint SET @ConnKilled=0 SET @spidstr = '' Set @DBName = 'PROD' IF db_id(@DBName) < 4 BEGIN PRINT 'Connections to system databases cannot be killed' RETURN END SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; ' FROM master..sysprocesses WHERE dbid=db_id(@DBName) and spid <> @@SPID IF LEN(@spidstr) > 0 BEGIN PRINT '' PRINT @spidstr PRINT '' EXEC(@spidstr) SELECT @ConnKilled = COUNT(1) FROM master..sysprocesses WHERE dbid=db_id(@DBName) PRINT 'Killed: '+convert(varchar, @ConnKilled)+' Connections' END
kill blocked connections
DECLARE @spid int -- wer ist der, der alle blockiert ?!? select * from master..sysprocesses where spid in (select blocked from master..sysprocesses where blocked != 0) and blocked = 0 --> spid merken -- wer ist der Blockierende? Ist dieser ggf. noch aktiv? Dann nicht kicken, stattdessen rückfragen was der Nutzer macht exec sp_who __spid__ --> Ausgaben vermerken -- was ist das letzte Statement des Blockierenden? dbcc inputbuffer (__spid__) --> Ausgaben vermerken -- welche Objekte werden blockiert select * from prod..sysobjects where id in ( select distinct rsc_objid from syslockinfo where rsc_dbid = 6 and rsc_objid != 0 and req_spid = __spid__ ) --> Ausgaben vermerken -- Benutzer aus dem System räumen -- ACHTUNG: Automatische Prozesse (Benutzer FAPB, FAKTUR, CARNATN oder DXSAGENT) -- dürfen NICHT aus dem System gekickt werden. Falls dennoch Bedarf besteht zuvor ARI um Freigabe bitten kill __spid__
Freitags-Wartung: anstehende Reports
select objname as REPORT, nextruntime from CESYSTEMDB.dbo.APS_InfoObjects2 (nolock) where nextruntime like '2016 02 25%' order by 2