데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

안녕하세요. 질문이 있어서 이렇게 글을 남깁니다.

 

특정시간대에 8시~10시 사이에 매일매일 걸리는 LOCK 이있는데

 

프로시저 상에는 오류가 없고

 

이력 남기는용도로 쓰고 잇는 프로시저로 스캐쥴돌아 확인하는데..

 

남기는용도 프로시저는 다음과 같습니다.

 

CREATE PROCEDURE  [dbo].[Z_BLOCK_CHECK]  
as

set nocount on

create table #tbl(
 SPID int,
 dbid varchar(255),
 objid varchar(255),
 indID varchar(255),
 Type varchar(255),
 Resource varchar(255),
 Mode varchar(255),
 Status varchar(255)
 
)

declare @objid varchar(255)
DECLARE @SPID VARCHAR(255)
declare @obj_sp_name varchar(max)
declare @block_table varchar(255)

select @objid = null
select @obj_sp_name = null;

insert into #tbl(SPID,dbid,objid,indID,Type,Resource,Mode,Status)
exec sp_lock

delete from #tbl where  Type<>'TAB' or objid < 0 or Mode not in ('X','IX')


insert into ZTB_LOCK(SPID, dbid, objid, insDate, cnt)
select SPID, dbid, objid, getdate(), 0 from #tbl

delete from ZTB_LOCK where SPID+dbid+objid not in (
 select SPID+dbid+objid from #tbl

) and  convert(char(8), insDate, 112) =  convert(char(8), getdate(), 112)

select top 1 @objid = objid,@SPID = SPID from ZTB_LOCK where convert(char(8), insDate, 112) =  convert(char(8), getdate(), 112)
group by SPID, dbid, objid having count(*) > 5


 IF isnull(@objid, '') <> ''
 begin
  if cast(replace(convert(varchar,getdate(),8),':','') as int) between 080000 and 220000
  begin
   
     select @block_table = name from sysobjects  where  id = @objid
     set @obj_sp_name = (select qt.text from master.dbo.sysprocesses sprc CROSS APPLY sys.dm_exec_sql_text(sprc.sql_handle) as qt where sprc.spid = convert (smallint, @SPID))
     
      insert into TBL_BLOCK_SMS(BLOCK_SQL, CREATE_DTTM,SP_NAME) values (@block_table, GETDATE(),@obj_sp_name)
   
  end


drop table #tbl;
 
end
-- Z_SP_TABLE_LOCK 원래 블럭체크

 

이거인데

 

sysrscols, syscolpars

 

이 시스템 테이블이 락이 걸립니다..

 

아래 DB CHECK 도 넣었습니다.

 

무엇이 문제일까요?ㅠㅠㅠ 그리고 이 테이블이 무슨 역활을 하나요? 이력관리인가요?

No. Subject Author Date Views
10314 Agent 스케쥴 질문 입니다. l1j2e3 2018.09.10 869
10313 checkdb를 했을 경우 하나의 일관성 오류가 발생합니다. 유노 2018.09.07 916
10312 오라클에서 OUT 있는 프로시저 출력하는 방법? 단비령 2018.09.04 837
10311 사용자 함수에 with recompile 는 없네요ㅠ.. 대체가 없나요? 봉술의달인 2018.09.04 649
10310 pl sql 공부 문의 [1] 후대 2018.09.03 847
10309 쿼리 질문드립니다. hsp-user 2018.09.02 699
10308 mssql의 Funcion에서 rand같은 내부 함수 사용불가인가요? [1] 슈리슈리 2018.08.31 2199
10307 네트워크의 파일엑세스하는 방법 좀... [3] 길주석 2018.08.30 1131
10306 exexpression을(를) 데이터 형식 varchar(으)로 변환하는 중 산술 오버플로 오류가 발생... [3] 플라이어 2018.08.28 1046
10305 한글 문자열에서 공백이 있으면 검색이 안돼요 담덕 2018.08.25 760
10304 IntelliSense 후알유? 2018.08.22 576
» sysrscols, syscolpars block lock이 왜 걸릴까요? nang86 2018.08.22 697
10302 SQL Server 2000 복구가 안되어 문의드립니다. 블랙21 2018.08.21 753
10301 data 가공에 대해 질문드립니다.. nozae 2018.08.21 681
10300 [긴급]update 쿼리문 질문입니다 [1] 바자다가사 2018.08.21 805
10299 DB를 close하지 않고 계속 써도될까요? [2] 딧물 2018.08.16 818
10298 유지관리계획 스케쥴 오류 문의 [1] 아틀레틱 2018.08.16 1310
10297 흔히 DB에서 말하는 분산처리가 무슨 의미인지 궁금합니다! sincie 2018.08.14 691
10296 입출금 내역 쿼리작성할 때 조인 질문 [3] 안돼요 2018.08.13 1215
10295 원화표시가 '\' 저장이안되요 문상연 2018.08.11 932





XE Login