달력

03

« 2010/03 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
2005/09/01 21:28

유용한 sp 모음 IT/mssql2005/09/01 21:28

▒ 로그 확인

sp_readerrorlog

▒ 로그 파일 정보 확인

sp_enumerrorlogs

▒ 잠금 확인

sp_who2
sp_lock
sp_blocker_pss80

sp_blocker_pss80 관련자료
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49847
http://support.microsoft.com/default.aspx?scid=kb;en-us;271509

▒ etc

DBCC trace (3604,2502)

3604 : DBCC결과출력
2502 : 문서화되지 않은 정보 출력 ( dbcc help)

DBCC ind
DBCC page

DBCC showcontig

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
2005/09/01 21:17

MSSQL Reference IT/mssql2005/09/01 21:17

http://support.microsoft.com/search/?adv=1
http://support.microsoft.com/newsgroups/default.aspx
http://www.sqlservercentral.com/
http://www.databasejournal.com
http://www.SQLsecurity.com
http://www.SQLTeam.com
http://www.SQLcity.com
http://www.SQL-server-performance.com
http://www.SQLmag.com
http://www.SQLpass.org

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
2005/08/10 14:14

The SQL Server Dev Team @ Tech Ed 2005 IT/mssql2005/08/10 14:14

이번에 올랜도에서 열린 Tech Ed를 친절하게 캠으로 찍어서 보여주는군요. 비행기 값도 없는데 고맙죠~

http://mssql.members.winisp.net/

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
use master
go
--sa 사용자로 로그인 후 스크립트 수행
alter proc sp_MSdbuseraccess
@mode nvarchar(10) = N'perm', @qual nvarchar(128) = N'%'
as
set deadlock_priority low

create table #TmpDbUserProfile (
dbid int NOT NULL PRIMARY KEY,
accessperms int NOT NULL
)

create table #TmpOut (
name nvarchar(132) NOT NULL,
version smallint,
crdate datetime,
owner nvarchar(132),
dbid smallint NOT NULL,
status int,
category int,
status2 int,
fulltext int,
)

set nocount on

declare @accessbit int
if (lower(@mode) like N'perm%') begin
declare @id int, @stat int, @inval int
select @id = dbid, @stat = status from master.dbo.sysdatabases where name = @qual
if (@id is null) begin
RAISERROR (15001, -1, -1, @qual)
return 1
end

declare @single int
select @single = DATABASEPROPERTY( @qual, N'issingleuser' )
if ((@single <> 0) or
(DATABASEPROPERTY(@qual, N'isdetached') <> 0) or
(DATABASEPROPERTY(@qual, N'isshutdown') <> 0) or
(DATABASEPROPERTY(@qual, N'issuspect') <> 0) or
(DATABASEPROPERTY(@qual, N'isoffline') <> 0) or
(DATABASEPROPERTY(@qual, N'isinload') <> 0) or
(DATABASEPROPERTY(@qual, N'isinrecovery') <> 0) or
(DATABASEPROPERTY(@qual, N'isnotrecovered') <> 0)) begin
select @inval = 0x80000000
select @inval
return 0
end
select @accessbit = has_dbaccess(@qual)
if ( @accessbit <> 1) begin
select @inval = 0x40000000
select @inval
return 0
end

declare @dbTempname nvarchar(258)
declare @tempindex int
SELECT @dbTempname = REPLACE(@qual, N']', N']]')
exec (N'[' + @dbTempname + N']' + N'..sp_MSdbuserpriv ')
return 0
end

if (lower(@mode) like N'db%') begin
declare @dbrole int
select @dbrole = 0x0000

if (db_id() <> 1)
select @qual = db_name()

declare @qual2 nvarchar(517)
SELECT @qual2 = REPLACE(@qual, N'''', N'''''')

declare @invalidlogin nvarchar(12)
select @invalidlogin = ltrim(str(convert(int, 0x40000000), 11))
declare @inaccessible nvarchar(12)
select @inaccessible = ltrim(str(convert(int, 0x80000000), 11))

declare @mindbver smallint
if (@@microsoftversion >= 0x07000000)
select @mindbver = 408
else
select @mindbver = 406


declare @dbid smallint, @dbidstr nvarchar(12), @dbstat int, @dbname nvarchar(258), @dbver smallint
declare @dbbits int, @dbbitstr nvarchar(12)

declare @temp int
select @tempindex = charindex(N'[', @qual2)
if (@tempindex <> 0)
exec(N'declare hCdbs cursor global for select name, dbid, status, version from master.dbo.sysdatabases where name = N''' + @qual2 + N'''')
else
exec(N'declare hCdbs cursor global for select name, dbid, status, version from master.dbo.sysdatabases where name like N''' + @qual2 + N'''')

open hCdbs


fetch hCdbs into @dbname, @dbid, @dbstat, @dbver
while (@@fetch_status >= 0) begin

select @dbidstr = ltrim(str(convert(int, @dbid)))


declare @single_lockedout int
select @single_lockedout = DATABASEPROPERTY( @dbname, N'issingleuser' )
if (@single_lockedout <> 0)
select @single_lockedout = 0 where not exists
(select * from master.dbo.sysprocesses p where dbid = @dbid and p.spid <> @@spid)

if ((@single_lockedout <> 0) or
(@dbver < @mindbver) or
(DATABASEPROPERTY(@dbname, N'isdetached') <> 0) or
(DATABASEPROPERTY(@dbname, N'isshutdown') <> 0) or
(DATABASEPROPERTY(@dbname, N'issuspect') <> 0) or
(DATABASEPROPERTY(@dbname, N'isoffline') <> 0) or
(DATABASEPROPERTY(@dbname, N'isinload') <> 0) or
(DATABASEPROPERTY(@dbname, N'isinrecovery') <> 0) or
(DATABASEPROPERTY(@dbname, N'isnotrecovered') <> 0) ) begin

exec (N'insert #TmpDbUserProfile values (' + @dbidstr + N', ' + @inaccessible + N')')
end
else begin

select @accessbit = has_dbaccess(@dbname)
if ( @accessbit <> 1) begin
exec (N'insert #TmpDbUserProfile values (' + @dbidstr + N', ' + @invalidlogin + N')')
end
else begin

select @dbbits = 0x03ff
select @dbbitstr = ltrim(convert(nvarchar(12), @dbbits))
exec (N'insert #TmpDbUserProfile values (' + @dbidstr + N', ' + @dbbitstr + N')')
end
end

fetch hCdbs into @dbname, @dbid, @dbstat, @dbver
end /* while FETCH_SUCCESS */
close hCdbs
deallocate hCdbs


if (@tempindex <> 0)
insert #TmpOut
select o.name, o.version, o.crdate, suser_sname(o.sid), o.dbid, o.status, o.category, o.status2, DatabaseProperty(o.name, N'isfulltextenabled')
from master.dbo.sysdatabases o where o.name = @qual
else
insert #TmpOut
select o.name, o.version, o.crdate, suser_sname(o.sid), o.dbid, o.status, o.category, o.status2, DatabaseProperty(o.name, N'isfulltextenabled')
from master.dbo.sysdatabases o where o.name like @qual

if (@tempindex <> 0)
select o.name, o.version, o.crdate, o.owner, o.dbid, lSize = 0, NonDbo = 0, Status = o.status, spaceavail = 0,
LogOnSepDev = 1, o.category, t.accessperms, @dbrole, o.fulltext, o.status2,
collation = convert(sysname, databasepropertyex(o.name, N'collation'))
from #TmpOut o left outer join (select * from #TmpDbUserProfile where db_name(dbid) not in ('master', 'msdb', 'model')) t on t.dbid = o.dbid where o.name = @qual and accessperms = 1023 order by o.name
else
select o.name, o.version, o.crdate, o.owner, o.dbid, lSize = 0, NonDbo = 0, Status = o.status, spaceavail = 0,
LogOnSepDev = 1, o.category, t.accessperms, @dbrole, o.fulltext, o.status2,
collation = convert(sysname, databasepropertyex(o.name, N'collation'))
from #TmpOut o left outer join (select * from #TmpDbUserProfile where db_name(dbid) not in ('master', 'msdb', 'model')) t on t.dbid = o.dbid where o.name like @qual and accessperms = 1023 order by o.name

DROP TABLE #TmpDbUserProfile
DROP TABLE #TmpOut
return 0
end

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
2005/04/04 14:55

소유자를 dbo로 변경 IT/mssql2005/04/04 14:55

소유자가 dbo가 아닌 객체 출력

select name from sysobjects
where uid <> user_id('dbo')


sp_changeobjectowner

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
2005/04/04 14:49

sp_MS_marksystemobject IT/mssql2005/04/04 14:49

http://www.windowsitpro.com/Article/ArticleID/22920/22920.html

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
2005/04/04 14:43

유용한 DBCC명령어들 IT/mssql2005/04/04 14:43


DBCC CACHESTATS: Displays information about the object currently in the buffer cache, such as hit rates, compiled objects and plans, etc. Note in the sample results below that each of these SQL Server objects can be cached in the buffer cache of SQL Server.

Example:

DBCC CACHESTATS

Sample Results (abbreviated):

Object Name Hit Ratio
------------ -------------

Proc 0.86420054765378507
Prepared 0.99988494930394334
Adhoc 0.93237136647793051
ReplProc 0.0
Trigger 0.99843452831887947
Cursor 0.42319205924058612
Exec Cxt 0.65279111666076906
View 0.95740334726893905
Default 0.60895011346896522
UsrTab 0.94985969576133511
SysTab 0.0
Check 0.67021276595744683
Rule 0.0
Summary 0.80056155581812771


more..


가끔 왜 문서화 안해놓은 DBCC쓸이 있는지 궁금할때가있다. 설마 자기네들만 쓸라고 :)



추가:
dbcc dbreindexall('pubs')

모든 인덱스를 재구성한다. 흐. 테스트환경에서나 써먹을 수 있겠군.



It's From
http://www.sql-server-performance.com/dbcc_commands.asp

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군
2004/11/21 13:36

SET XACT_ABORT IT/mssql2004/11/21 13:36

SET XACT_ABORT
Transact-SQL 문에서 런타임 오류가 발생할 경우 Microsoft® SQL Server™가 자동으로 현재 트랜잭션을 롤백하게 할지 여부를 지정합니다.

구문
SET XACT_ABORT { ON | OFF }

비고SET XACT_ABORT 옵션을 ON으로 설정하면 Transact-SQL 문에서 런타임 오류가 발생할 경우 전체 트랜잭션이 종료된 후 롤백됩니다. OFF로 설정하면 오류를 발생시킨 Transact-SQL 문만 롤백되고 처리 작업을 계속합니다. 구문 오류와 같은 컴파일 오류는 SET XACT_ABORT 옵션 설정으로 영향을 받지 않습니다.

SQL Server를 포함한 대부분의 OLE DB 공급자에 대한 암시적 또는 명시적 트랜잭션에서 데이터 수정 문에는 XACT_ABORT 옵션을 ON으로 설정해야 합니다. 공급자가 중첩 트랜잭션을 지원할 경우에만 이 옵션이 필요하지 않습니다. 자세한 내용은 분산 쿼리 및 분산 트랜잭션을 참조하십시오.

SET XACT_ABORT 옵션은 실행시간이나 런타임에 설정되며, 구문 분석 시간에는 설정되지 않습니다.

예제
다음 예제는 다른 Transact-SQL 문이 있는 트랜잭션에서 외래 키 위반 오류를 발생시킵니다. 첫 번째 명령문 집합에서는 오류가 생성되지만 다른 명령문이 성공적으로 처리되고 트랜잭션이 성공적으로 커밋됩니다. 두 번째 명령문 집합에서는 SET XACT_ABORT 옵션이 ON으로 설정됩니다. 이렇게 설정하면 명령문 오류로 인해 일괄 처리가 종료되고 트랜잭션이 롤백됩니다.


CREATE TABLE t1 (a int PRIMARY KEY)
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET XACT_ABORT OFF
GO
BEGIN TRAN
INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2) /* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GO

SET XACT_ABORT ON
GO

BEGIN TRAN
INSERT INTO t2 VALUES (4)
INSERT INTO t2 VALUES (5) /* Foreign key error */
INSERT INTO t2 VALUES (6)
COMMIT TRAN
GO

/* Select shows only keys 1 and 3 added.
Key 2 insert failed and was rolled back, but
XACT_ABORT was OFF and rest of transaction
succeeded.
Key 5 insert error with XACT_ABORT ON caused
all of the second transaction to roll back. */


SELECT *
FROM t2
GO

DROP TABLE t2
DROP TABLE t1
GO

'IT > mssql' 카테고리의 다른 글

유용한 sp 모음  (0) 2005/09/01
MSSQL Reference  (0) 2005/09/01
The SQL Server Dev Team @ Tech Ed 2005  (0) 2005/08/10
EM에서 권한이 없는 DB보이지 않게하기  (0) 2005/05/14
소유자를 dbo로 변경  (0) 2005/04/04
sp_MS_marksystemobject  (0) 2005/04/04
유용한 DBCC명령어들  (0) 2005/04/04
SET XACT_ABORT  (0) 2004/11/21
Posted by 형준군