본문 바로가기

Program

(38)
SQL Server CHECKPOINT(체크포인트) CHECKPOINT란? 메모리의 수정된 페이지(Dirty Page)와 트랜잭션 로그 정보를 디스크에 기록. 예기치 않은 종료 후 복구 프로세스에서 복구를 시작하는 기준점. CHECKPOINT 종류 Automatic(자동) 시스템에서 자동으로 CHECKPOINT를 발생 시킴. 발생 주기는 sp_configure에서 'recovrery interval (min)' 항목으로 설정. 기본값은 0 (복구 예상 시간이 1분 미만). Indirect(간접) 2012 버전부터 도입. 발생 주기는 DB 옵션중 TARGET_RECOVERY_TIME 으로 설정 (0으로 설정시 Automatic 사용). 2016 버전부터는 model, tempdb에 기본으로 적용되고 발생 주기는 60 SECONDS. Manual(수동) CH..
SQL Server 객체(Object) 권한 확인 및 권한 부여 -- 권한 확인 USE 데이터베이스; GO SELECTT1.[name]AS USER_NM ,T3.[name]AS OBJECT_NM ,T3.[type_desc] ,T2.[permission_name] ,T2.state_desc FROMsys.database_principalsAS T1 WITH(NOLOCK) INNER JOIN sys.database_permissionsAS T2 WITH(NOLOCK) ONT2.grantee_principal_id = T1.principal_id INNER JOIN sys.objectsAS T3 WITH(NOLOCK) ONT3.[object_id] = T2.major_id WHERET1.[name] = N'유저명' ANDT3.[name] = N'Object명' ; -- 권..
SQL Server Errorlog 조회 USE master; GO -- 최근 1주일 errorlog 역순 조회 DECLARE @FROM_DTDATETIME = DATEADD(DAY, -7, GETDATE()) , @TO_DTDATETIME = GETDATE(); exec xp_readerrorlog 0, 1, NULL, NULL, @FROM_DT, @TO_DT, N'DESC'; --에러로그 파일번호: 0 = current, 1 = Archive #1, 2 = Archive #2, etc... --로그 파일종류: 1 or NULL = error log, 2 = SQL Agent log --검색인자1: --검색인자2: 검색인자1과는 AND 연산입니다. --검색시작시간 : --검색끝시간: --결과정렬방식= ascending, N ' desc ' =..
SQL Server 파티션(PARTITION) 정보 확인 해당 DB에서 실행 SELECTDB_NAME() AS [DB_NAME] ,T1.[name] AS TABLE_NAME ,T1.[object_id] ,T2.[name] AS INDEX_NAME ,T4.[name]AS PARTITION_SCHEME_NAME ,T5.[name]AS PARTITION_FUNCTION_NAME ,T3.partition_number AS PARTITION_NUMBER ,T3.[rows]AS PARTITION_ROWS ,CASE T5.boundary_value_on_right WHEN 0 THEN 'LEFT' WHEN 1 THEN 'RIGHT' ELSE '' END AS PARTITON_RANGE ,T9.[value]AS RANGE_VALUE ,T7.[name]AS FILEGROUPS..
SQL Server에서 텔레그램(Telegram) API 호출 텔레그램 봇이 먼저 동작하고 있어야 합니다. DECLARE @obj int , @response nvarchar(4000) , @url VARCHAR(MAX) = 'https://api.telegram.org/bot' , @bot_id VARCHAR(MAX) = '텔레그램 bot id' , @chat_id VARCHAR(MAX) = '텔레그램 chat id' SET @url = @url + @bot_id + '/sendmessage?chat_id=' + @chat_id + '&text=' DECLARE @M VARCHAR(MAX) = '' , @L INT = 0 , @I INT = 1 , @C VARCHAR(MAX) = '' SET @M = CONVERT(VARCHAR(MAX), master.dbo.To..
SQL Server 에서 문자를 UTF-8로 변환 출처 : https://gist.github.com/sevaa/f084a0a5a994c3bc28e518d5c708d5f6 Converting an NVARCHAR string to a UTF-8 VARBINARY data block in pure Transact-SQL Converting an NVARCHAR string to a UTF-8 VARBINARY data block in pure Transact-SQL - ToUTF8.sql gist.github.com USE master; GO create function [dbo].[ToUTF8](@s nvarchar(max)) returns varbinary(max) as begin declare @i int = 1, @n int = datalength..
SQL Server 에서 API 호출 하기 /* exec sp_configure 'show advanced options', 1; go reconfigure; go exec sp_configure 'Ole Automation Procedures', 1; go reconfigure; go */ declare @obj int , @response nvarchar(4000) exec sp_OACreate 'MSXML2.XMLHTTP', @obj out; exec sp_OAMethod @obj, 'open', NULL, 'get', 'https://호출할 API 주소', 'false' exec sp_OAMethod @obj, 'send' exec sp_OAMethod @obj, 'responseText', @response output select @r..
SQL Server Lock Memory Release(해제) 방법 SQL Server를 운영하던 중 갑자기 Cache Memory가 감소하였고 그로 인해 Compile이 많아지면서 CPU 부하가 생긴 적이 있었다. 원인을 파악해보니 대량의 Lock으로 인해서 Lock Memory가 증가 하면서 Cache Memory가 감소하였던 것이다. Lock Memory가 자동으로 해제가 되지 않아서 수동으로 해제를 하여 다시 Cache Memory를 확보하였다. USE master; GO -- lock 개수 확인 SELECTCOUNT(*) FROMsys.dm_tran_locks; -- lock memory 확인 SELECT* FROMsys.dm_os_performance_counters WHEREcounter_name = N'Lock Memory (KB)'; -- 결과로 나온 스..