윈도우 업데이트란?윈도우 상품에 버그가 있어 해결했거나 혹은 기능 추가할 부분이 있는 경우,사용자들의 컴퓨터에 소스를 업데이트 하여 최신화를 하는 기능입니다. 버그로 인해 취약점이 있기 때문에 업데이트를 받아 주는게 좋지만,업데이트가 원치 않는 시간에 되는 경우가 있어 가끔은 업데이트를 받지않거나 미뤄두고 싶은 경우가 있습니다. 그래서, 업데이트를 끄는 방법을 공유드립니다. 업데이트 끄는 방법1. 시작 버튼을 누른 후 '서비스' 를 입력합니다. 2. 'Windows Update' 목록을 찾은 후 우클릭 '속성' 을 선택합니다. 3. '시작 유형'을 '사용 안 함' 으로 변경합니다. 윈도우 업데이트가 앞으로는 설치되지 않습니다.그러나 보안에 취약해 질 수 있기 때문에 까먹지 말고 한번씩 확인해서 받아주시길..
분류 전체보기
dm_db_index_usage_stats DMV 뷰이 DMV 뷰를 통해서 테이블에 마지막으로 접근한 시간을 확인할 수 있습니다. 뷰의 명칭만 보면 인덱스만 확인할 수 있는 것으로 착각할 수 있으나,인덱스가 없는 테이블에도 적용이 가능합니다. 인덱스가 없는 테이블에 접근하는 경우 DMV 뷰의 last_user_scan 컬럼에 마지막 접근 시간이 UPDATE 됩니다. TABLE 에 마지막으로 접근한 시간을 확인하는 쿼리 123456789101112131415161718192021222324select DB_NAME(usage.database_id) AS db_name, schema_name, table_name, max(last_access) as last_access from( select sta.dat..
dm_exec_procedures_stats DMV 뷰이 DMV 뷰를 통해서 마지막으로 실행한 SP 를 확인할 수 있습니다. 그러나 dm_exec_procedures_stats 동적뷰는 캐시된 저장 프로시저에 대한 통계를 반환하기 때문에캐시에서 제거되면 해당 레코드가 동적뷰에서 제거되어 확인이 불가능 합니다. 캐시에서 제거되는 경우다음과 같은 경우 캐시된 저장 프로시저가 캐시에서 제거될 수 있습니다.캐시를 채우면서 전체 절차를 단위 테스트 하는 경우sp_configure 변경 (특정 옵션은 프로시저 캐시를 삭제하는 부작용이 있습니다.)큰 메모리를 필요로 하는 쿼리DBCC FREEPROCCACHE 구문 수행명시적 재컴파일 또는 프로시저 삭제 및 재작성 SP 를 마지막으로 수행한 시간 확인하는 쿼리 1234..
파티션 테이블, 구성표, 함수란파티션 테이블은파티션 별로 파일그룹을 지정한 '파티션 구성표' 와파티션 별로 저장할 데이터 경계값을 지정하는 '파티션 함수' 로 구성됩니다. 경계값은 경계값을 포함할 건지, 포함하지 않을 건지에 대한 옵션을 설정할 수 있습니다. 파티션 테이블, 파일그룹, 경계값을 확인하는 쿼리아래 쿼리는 TEST_T1 의 파티션 테이블의 구성만 확인할 수 있지만,전체 파티션 테이블을 확인하고 싶은 경우 12 라인의 조건을 주석처리 해주시면 됩니다. 1234567891011121314151617181920212223242526SELECT a.name "테이블 이름", f.name "파티션 함수", c.name "파티션 구성표", e.name "파일 그룹", f.type_desc "파티션 타입..
플랜캐시 & 실행계획SQL Server는 한번 실행된 쿼리는 처음 만들어진 실행계획을 플랜캐시에 등록하여 이후에 재사용합니다.특정 조건을 만족하여 쿼리의 실행계획이 재 컴파일 되기 전까지는 말이죠. 실행계획이 재 컴파일 되어 새로운 실행계획이 만들어지는경우 기존의 실행계획은 삭제되어 확인할 수 없습니다. 그럼 현재 플랜캐시에 있는 실행계획을 확인해 보도록 하겠습니다.플랜캐시에서는 아래와 같은 정보를 확인할 수 있습니다.- 쿼리 구문- 수행 횟수- CPU 시간- 수행 시간- 논리적 읽기- 논리적 쓰기- 쿼리 플랜 현재 플랜캐시에 있는 실행계획을 확인하는 쿼리21, 22 라인의 조건을 기호에 맞게 수정하여 특정 데이터베이스에서 특정 시간에 생성된 실행 계획을 확인할 수 있습니다.주석처리를 하여 전체 실행계획..
병렬처리 기법단일 쿼리에서 다수의 CPU 를 사용할 수 있는 병렬처리 기법을 지원하고 있습니다.( Enterprise 버전에서 지원되고 있습니다. ) 병렬처리를 하게 되는 경우 CPU 사용률은 높아지지만 응답속도는 더 빨라질 수 있습니다.그렇다면 어떤 SP 가 병렬처리 되고 있는지 확인해 봅니다. SP 가 병렬처리되는지 확인하는 쿼리라이브에서 운영중인 쿼리는 대부분 SP 를 통해서 수행되고 있으며,어떤 SP 가 CPU 를 몇 개를 사용하는지 알 수 있는 DMV 를 제공하고 있습니다. 아래 쿼리는 플랜캐시를 통해 병렬처리되는 실행계획을 가지고 있는 DB 명, SP 명, CPU 사용 수를 반환합니다.실행계획에서만 확인할 수 있기 때문에 실행계획이 플랜캐시에 없는 경우 병렬처리 되는지 확인할 수 없습니다. 1..
TempDB 를 사용하는 경우1. 임시 테이블, 테이블 변수와 같은 임시 사용자 객체2. 커서3. 스풀이나 정렬을 위한 작업 테이블4. 스냅샷에서 isolation 을 위한 행 버전 관리5. 온라인 인덱스 재 구축 작업6. MARS ( Multiple Active ResultSets, 다수의 활성 결과 집합 )7. 트리거 등 TempDB 와 연관된 DMV 뷰dm_db_file_space_usage : tempdb 의 각 파일에 대한 공간 사용량 정보를 반환합니다.dm_db_session_space_usage : 각 세션에 의해 할당 및 할당 해제 된 페이지 수를 반환합니다.dm_db_task_space_usage : 작업 별 페이지 할당 및 할당 해제를 반환합니다. 이러한 뷰를 dm_exec_sessio..
Order By 없는 쿼리란데이터의 출력이 항상 일관되지 않다는 것을 의미합니다.즉, [ 1, 2, 3 ] 순으로 출력되던 결과가 [ 3, 1, 2 ] 로 출력 될 수도 있습니다. Order By 유무에 따른 쿼리아래와 같은 쿼리가 있습니다.이 쿼리는 데이터의 출력이 항상 일관되다는 것을 보장할 수 있을까요?병렬로 출력하게 된다면 출력버퍼에는 매번 다른값이 출력되고 TOP 20 으로 나온 값은 매번 다르게 될 것입니다.즉, 의도하지 않은 값이 임시테이블에 들어갈 수 있게 됩니다. 12345INSERT @TEMP_TABLESELECT TOP(20) C1FROM dbo.T1 WITH(NOLOCK)WHERE C1 > @C1AND C2 = @C2cs 그럼 이 쿼리를 어떻게 변경해야 할까요?ORDER BY 를 넣..
파티션사전적인 의미로 칸막이, 분할 등을 의미합니다.데이터베이스 관점에서 보면 테이블과 인덱스를 분할하여 저장하는 개념입니다. 테이블이나 인덱스를 정의할 때 컬럼 값 기준으로 분할함으로써 각 파티션이 물리적으로 다른 곳(파일그룹)에 위치하도록 할 수 있습니다. 1. SQL Server 는 현재 (2019) Range 파티션만 제공하며 파티션 키는 단일 컬럼만 가능합니다.2. Range 파티션 정의 시 left (경계값보다 작거나 같은) 와 right (경계값보다 작은) 옵션을 지정할 수 있습니다.3. 파티션을 N 개를 정의하면 N+1 번의 파티션이 자동으로 생성되며, N 파티션에 속하지 않은 모든 데이터가 들어갑니다. 파티션의 필요성월별 1억 건씩 10년치의 명세서가 저장되어 있는 테이블에서 특정 거래월..
결제가 된 발단AWS 계정을 생성하면 Free Tier 를 1년간 테스트 용도로 사용할 수 있습니다.몇가지 테스트 용도를 위해 1년전 계정을 생성하고 테스트 완료 후 인스턴스를 중지 시켜 놓았습니다. 이렇게 완전히 방치된 채로 1년이 지났습니다.갑자기 우리카드에서 AWS 로 결제가 되었습니다. 인스턴스 중지는 시켜놓았지만 볼륨은 차지하고 있었기에볼륨에 대한 비용이 청구가 된 것입니다. AWS 에 이에 대해 문의를 했고, 최종적으로는 환불을 받았습니다. AWS 고객센터 환불문의 방법1. AWS 에 로그인을 합니다.https://aws.amazon.com/ko/ 2. 지원 탭에서 지원센터를 누릅니다.3. 'Create Case' 버튼을 클릭합니다. 4. Account and billing support 를 ..