본문 바로가기

mssql7

데드락 (교착상태) Dead Lock 데드락이 걸린경우, SQL서버가 중재를 해서 하나의 프로세스를 Victim(희생양)으로 처리한다 S : 공유 잠금 Lock. U : 업데이트 잠금 Lock. X : 독점 잠금 Lock. IS : 의도 공유 잠금 Lock. IU : 의도 업데이트 잠금 Lock. IX : 독점 의도 잠금 Lock. BU : 대량 업데이트 잠금 Lock. -- 데드락 확인 방법 exec sp_lock; -- mode가 x인 프로세스가 lock에 걸린 항목이다. spid를 복사해 둔다. select * from master.dbo.sysprocesses where blocked != 0 and spid != blocked; -- SQL SERVER 로그에서 데드락 상태확인을 위해 두가지 추적 플래거 사용가능 DBCC TRACE.. 2023. 10. 5.
특수문자 제거 함수 문자열에서 특수문자 제거 -- 0-9, a-z and A-Z 제외한 모든 문자 제거 create function dbo.RemoveSpecialChars (@s varchar(256)) returns varchar(256) with schemabinding begin if @s is null return null declare @s2 varchar(256) set @s2 = '' declare @l int set @l = len(@s) declare @p int set @p = 1 while @p 2023. 10. 5.
프로시저 실행 결과를 txt 파일로 저장하기 -- 프로시저 실행 결과를 txt 파일로 저장하기 -- xp_cmdshell 사용 EXEC sp_configure 'show advanced option', '1'; RECONFIGURE; EXEC sp_configure 'xp_cmdshell' , '1'; RECONFIGURE; DECLARE @SqlQuery varchar(1000) SET @SqlQuery = 'echo bcp "EXEC TESTDB.DBO.TEST프로시져" queryout "c:\test.txt" -c -t, -U -P -T > c:\test.bat' -- bcp 실행할배치파일만들기 EXEC master..xp_cmdshell @SqlQuery -- 배치파일실행하기 EXEC master..xp_cmdshell 'c:\TEST.bat' 2023. 10. 5.
프로시져수정및생성일자확인 Select [name] -- 개체 이름 , [type_desc] -- 개체 타입 (프로시저를 검색했으니 SQL_STORED_PROCEDURE) , [create_date] -- 개체 만든 날짜 , [modify_date] -- 개체 수정 날짜 From master.sys.objects Where type = 'P' --자세히 SELECT te.name AS eventtype ,t.loginname ,t.spid ,t.starttime ,t.objectname ,t.databasename ,t.hostname ,t.ntusername ,t.ntdomainname ,t.clientprocessid ,t.applicationname ,t.* FROM sys.fn_trace_gettable ( CONVERT .. 2023. 10. 5.