블로그 이미지
SQL Server VS. 석이 minsouk@hotmail.com MSSQL 쿼리성능 관련해 궁금한 사항이 있다면 언제나 누구나 TeamViewer + Line (네이버 japan 메신저) 에 minsouk1 추가 후 연락주세요~ 010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (367)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total111,721
Today3
Yesterday100

달력

« » 2016.02
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29          

공지사항

도색

분류없음 / 2016.02.11 17:35

음 10년된 차 쪼메 수리해야 하는데

목감IC 랑 원효대사가 유명하군....


원효대사

http://blog.naver.com/bubblychoi/220131495434

http://map.daum.net/?panoid=1033191968&pan=347.9&tilt=-2.6&zoom=0&map_type=TYPE_MAP&map_attribute=ROADVIEW&q=%EC%9B%90%ED%9A%A8%EB%8C%80%EA%B5%90&urlX=486511&urlY=1117809&urlLevel=3


목감 IC

http://nadesicoc.egloos.com/v/5014173

저작자 표시 비영리 변경 금지
Posted by 보미아빠

미션 

여러 프로시저가 있는데 하나만 동작하게 만들어라 

CREATE DATABASE APPLOCKTEST

GO


USE APPLOCKTEST

GO



IF OBJECT_ID ('TBLX') IS NOT NULL

DROP TABLE TBLX

GO

IF OBJECT_ID ('USP_A') IS NOT NULL

DROP PROC USP_A

GO


-- 테스트 테이블

CREATE TABLE TBLX 

(IDX INT IDENTITY(1,1)

,C1 INT)

GO


-- 심심풀이 데이터

INSERT INTO TBLX (C1) VALUES (1)

GO


-- 실제로 일하는 프로시져

CREATE PROC USP_A 

(@V INT)

AS


WAITFOR DELAY '00:00:7'

INSERT INTO TBLX (C1) VALUES (@V)

GO









-- 동시에 실행하면 안되는 여러 프로시저들.....

IF OBJECT_ID('USP_JOB_EXEC_USP_A') IS NULL

EXEC ('CREATE PROC USP_JOB_EXEC_USP_A AS SELECT 1 ')

GO 


ALTER PROC USP_JOB_EXEC_USP_A

(

  @V INT = 1 

, @RESULT_CODE NVARCHAR(2000) OUTPUT 

)

AS


DECLARE 

  @LOCK_STATUS INT = 0 

, @RETRYS INT = 3 -- 1초에 한번씩 실행된다. 이걸로 조절하세요~

, @KEYWORD NVARCHAR(100) = '결산'

, @CURRENT_RETRY INT = 0


SET @RESULT_CODE = N'SUCCESS'


WHILE (@CURRENT_RETRY <= @RETRYS) 

BEGIN 


SELECT @LOCK_STATUS = APPLOCK_TEST('PUBLIC', @KEYWORD,'Exclusive', 'SESSION')


IF (@LOCK_STATUS <> 0 )

BEGIN 

EXEC SP_GETAPPLOCK @KEYWORD, 'EXCLUSIVE', 'SESSION'


-- SP_START

EXEC USP_A @V

SELECT 'AAAAAAAAAAAAAAAAAAA'

-- SP_END 


EXEC SP_RELEASEAPPLOCK @KEYWORD, 'SESSION'

BREAK;

END 

ELSE 

BEGIN 

IF @CURRENT_RETRY = @RETRYS

SET @RESULT_CODE = 'JOB CANCELED BY LOCK ' + @KEYWORD

ELSE 

WAITFOR DELAY '00:00:01'

SET @CURRENT_RETRY = @CURRENT_RETRY + 1 

END 

END 

GO










-- 동시에 실행하면 안되는 여러 프로시저들.....

IF OBJECT_ID('USP_JOB_EXEC_USP_B') IS NULL

EXEC ('CREATE PROC USP_JOB_EXEC_USP_B AS SELECT 1 ')

GO 


ALTER PROC USP_JOB_EXEC_USP_B

(

  @V INT = 1 

, @RESULT_CODE NVARCHAR(2000) OUTPUT 

)

AS


DECLARE 

  @LOCK_STATUS INT = 0 

, @RETRYS INT = 3 -- 1초에 한번씩 실행된다. 이걸로 조절하세요~

, @KEYWORD NVARCHAR(100) = '결산'

, @CURRENT_RETRY INT = 0


SET @RESULT_CODE = N'SUCCESS'


WHILE (@CURRENT_RETRY <= @RETRYS) 

BEGIN 


SELECT @LOCK_STATUS = APPLOCK_TEST('PUBLIC', @KEYWORD,'Exclusive', 'SESSION')


IF (@LOCK_STATUS <> 0 )

BEGIN 

EXEC SP_GETAPPLOCK @KEYWORD, 'EXCLUSIVE', 'SESSION'


-- SP_START

EXEC USP_A @V

SELECT 'AAAAAAAAAAAAAAAAAAA'

-- SP_END 


EXEC SP_RELEASEAPPLOCK @KEYWORD, 'SESSION'

BREAK;

END 

ELSE 

BEGIN 

IF @CURRENT_RETRY = @RETRYS

SET @RESULT_CODE = 'JOB CANCELED BY LOCK ' + @KEYWORD

ELSE 

WAITFOR DELAY '00:00:01'

SET @CURRENT_RETRY = @CURRENT_RETRY + 1 

END 

END 

GO







-- APPLICATION LOCK TEST CODE 


-- SESSION 1 

DECLARE @RESULT_CODE NVARCHAR(2000)

EXEC USP_JOB_EXEC_USP_A 5, @RESULT_CODE = @RESULT_CODE OUTPUT 

SELECT @RESULT_CODE



-- SESSION 2 

DECLARE @RESULT_CODE NVARCHAR(2000)

EXEC USP_JOB_EXEC_USP_B 5, @RESULT_CODE = @RESULT_CODE OUTPUT 

SELECT @RESULT_CODE



저작자 표시 비영리 변경 금지
Posted by 보미아빠

sql 2014 patch

분류없음 / 2016.02.02 19:44

http://blogs.sqlsentry.com/team-posts/latest-builds-sql-server-2014/

저작자 표시 비영리 변경 금지
Posted by 보미아빠

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바