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

 

특정시간대에 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
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 15634
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 9501
10318 SQL 2000 -> SQL 2008 로 DB 이전시 문의드립니다. [1] 주도 2018.09.15 1011
10317 대용량 테이블 삭제에 대하여 [10] freighter 2018.09.14 3035
10316 AD서버와 시간동기화 관련 질문드립니다. wesh30 2018.09.11 863
10315 프로시저의 파라메터 타입을 (일괄) 변경할수 있을까요? 착한넘 2018.09.11 825
10314 Agent 스케쥴 질문 입니다. l1j2e3 2018.09.10 911
10313 checkdb를 했을 경우 하나의 일관성 오류가 발생합니다. 유노 2018.09.07 954
10312 오라클에서 OUT 있는 프로시저 출력하는 방법? 단비령 2018.09.04 886
10311 사용자 함수에 with recompile 는 없네요ㅠ.. 대체가 없나요? 봉술의달인 2018.09.04 690
10310 pl sql 공부 문의 [1] 후대 2018.09.03 897
10309 쿼리 질문드립니다. hsp-user 2018.09.02 745
10308 mssql의 Funcion에서 rand같은 내부 함수 사용불가인가요? [1] 슈리슈리 2018.08.31 2650
10307 네트워크의 파일엑세스하는 방법 좀... [3] 길주석 2018.08.30 1223
10306 exexpression을(를) 데이터 형식 varchar(으)로 변환하는 중 산술 오버플로 오류가 발생... [3] 플라이어 2018.08.28 1094
10305 한글 문자열에서 공백이 있으면 검색이 안돼요 담덕 2018.08.25 822
10304 IntelliSense 후알유? 2018.08.22 613
» sysrscols, syscolpars block lock이 왜 걸릴까요? nang86 2018.08.22 742
10302 SQL Server 2000 복구가 안되어 문의드립니다. 블랙21 2018.08.21 801
10301 data 가공에 대해 질문드립니다.. nozae 2018.08.21 721
10300 [긴급]update 쿼리문 질문입니다 [1] 바자다가사 2018.08.21 833
10299 DB를 close하지 않고 계속 써도될까요? [2] 딧물 2018.08.16 867





XE Login