본문 바로가기

728x90
반응형

연구개발/DBA

(336)
리소스 잠금 및 리소스 확인 -- 출처 : SQLTAG BOOK2 CREATE TABLE dbo.TEST_RESOURCE(COL1 int NOT NULL,COL2 varchar(100) NULL,COL3 smallint NOT NULL,COL4 varchar(10) SPARSE NULL,COL5 char(10) NOT NULL,COL6 char(30) NULL,COL7 varchar(max) NOT NULL)GO INSERT dbo.TEST_RESOURCE(COL1,COL2,COL3,COL4,COL5,COL6,COL7)VALUES(1,'A',1,'AA','A','A',REPLICATE(CONVERT(varchar(max),'A'),10000)),(2,'BB',2,'BBB','BB','BB',REPLICATE(CONVERT(varch..
RECOMPILE --1단계 : 가장 많은 리컴파일 데이터베이스 찾기CREATE EVENT SESSION [XE_Database_Recompile_Histogram] ON SERVERADD EVENT sqlserver.sql_statement_recompile(ACTION(sqlserver.database_id)WHERE ([package0].[counter] 쿼리 결과 > SQL Server > 텍스트로 결과 표시 > 각 열에 표시할 최대 문자 수를 적당하게 변경 후 SSMS 재시작)*/SELECT *FROM sys.dm_exec_sql_text(0x03002E005D05B6215B3BFB00A2A2000001000000000000000000000000000000000000000000000000000000); ;WITH..
tempdb 대량 I/O 발생시키는 쿼리 확인 -- tempdb 의 I/O 관련 장애처리 CREATE DATABASE DBAGO USE DBAGO -- DROP TABLE dbo.TBL_ANALYSIS_MONITOR_TEMPDB-- GOCREATE TABLE dbo.TBL_ANALYSIS_MONITOR_TEMPDB(Event_Datedatetime-- 로깅 시작, Event_Idxint identity-- 중복방지 자동증가값, Task_UserObj_Alloc_Cntint-- 유저오브젝트 페이지 할당수, Task_UserObj_Dealloc_Cntint-- 유저오브젝트 페이지 해제수, Task_Internal_Alloc_Cntint-- 내부오브젝트 페이지 할당수, Task_Internal_Dealloc_Cntint-- 내부오브젝트 페이지 해제수, D..
tempdb file read/write i/o 기록 확인 -- Read I/OCREATE EVENT SESSION [MONITOR_FILEIO_READ_HISTOGRAM]ON SERVERADD EVENT sqlserver.file_read(SET collect_path = (1)WHERE( -- tempdb 드라이브 path를 지정[sqlserver].[like_i_sql_unicode_string]([path],N'E:\%'))) ADD TARGET package0.histogram(SET filtering_event_name = N'sqlserver.file_read',source = N'path',source_type = (0))WITH(max_memory = 4096 kb,event_retention_mode = allow_single_event_los..
tempdb 많이 사용하는 실행계획과 텍스트 반환 SELECT TOP 10TSU.session_id, TSU.request_id, TSU.task_alloc_cnt, TSU.task_dealloc_cnt, EST.text as [query_text], EQP.query_plan as [plan_xml]FROM (SELECT session_id, request_id, SUM(internal_objects_alloc_page_count) as [task_alloc_cnt], SUM(internal_objects_dealloc_page_count) as [task_dealloc_cnt]FROM sys.dm_db_task_space_usageGROUP BY session_id, request_id--병렬처리 그룹화) as [TSU]INNER JOIN sys.d..
SQL Server 메모리 1. SQL Server 메모리의 이해 데이터는 디스크에 저장되고 디스크에서 검색을 하는데 디스크 I/O 작업에 많은 리소스를소비하게 되므로 SQL Server는 디스크 I/O 작업을 효율적으로 관리하기 위하여 버퍼풀의메모리 구조를 이용한다. 1) SQL Server 메모리 동작 방식데이터를 조회하게 되면 SQL Server는 버퍼풀에 데이터가 있는지 확인하고 없을 경우디스크에서 버퍼풀로 데이터를 복사한 후 데이터를 사용한다.버퍼풀에 데이터가 있으면 디스크에 액세스 하지 않고 버퍼풀의 데이터를 바로 사용한다.데이터를 변경하게 되면 트랜잭션 로그에는 변경 내역이 즉시 반영되지만 실질적인데이터 페이지에는 CHECKPOINT 시점의 최종적으로 수정된 데이터만 디스크에 쓰여져디스크 I/O를 줄여준다.SQL Se..
LATCH LATCH는 목적으로 보면 잠금과 유사하지만 많은 차이점이 있다. 래치는 SQL SERVER 메모리에서 다른 개체로 부터 페이지 데이터 무결성을 보장하는 객체로 정의할 수 있다. (잠금은 트랜잭션을 수행할 때, 데이터를 잠궈 안전하게 보호한다.) 이는 페이지를 사용할 때 자원을 고립시켜 제어된 액세스를 보장하는 논리적 구조이다. 잠금과의 차이점은 SQLOS 외부로 노출되지 않는 내부 SQL 서버 메커니즘이다. 래치는 많은 유형이 있지만 대략 버퍼 래치(BUFFER LATCH), 비버퍼래치(NON BUFFER LATCH) 2종류로 나눌 수 있다. 버퍼 캐시 버퍼 래취를 이해하기 위해서는 먼저 버퍼 캐시의 목적을 이해해야 한다. 버퍼 캐시(또는 버퍼풀(BUFFER POOL)이라고 함)는 데이터 페이지를 보유..
DB 에서 사용되는 명령어 정리 저장 프로시저저장 프로시저 이름설명sp_readerrorlogSQL Server 오류 로그를 반환합니다.sp_cycle_errorlogSQL Server를 재시작하지 않고 새로운 오류 로그 파일만 생성합니다.sp_helpservermaster.dbo.sysservers 시스템 테이블에 등록된 정보를 반환합니다.sp_dropservermaster.dbo.sysservers 시스템 테이블에서 서버를 삭제합니다.sp_addrservermaster.dbo.sysservers 시스템 테이블에 서버를 등록합니다.sp_serveroptionmaster.dbo.sysservers 시스템 테이블에서 등록된 서버의 옵션을 변경합니다.sp_blocker_pss80잠금 정보와 블로킹하는 프로세스와 블로킹 당하는 프로세스의 정..

728x90
반응형