본문 바로가기
반응형

IT/MSSQL170

[MSSQL] SYS.XP_CMDSHELL 엑세스가 거부되었습니다. 해결방법 [문제] SQL 쿼리문에서 XP_CMDSHELL 명령어를 사용해서 윈도우 폴더를 삭제를 하려고 했다. SYS.XP_CMDSHELL 'RMDIR D:\DB_BACKU' 쿼리 결과를 보니 엑세스가 거부되었다고 나오면서 삭제가 진행되지 않았다. [해결방법] 해당 윈도우 폴더에 가서 유저에 읽기 및 쓰기 권한을 주게되면 삭제가 가능하다. 1. 해당 폴더(DB_BACKU)에 마우스 우클릭을 해서 속성으로 들어갑니다. 2. 상단의 [보안]탭을 누릅니다. 3. 그룹 또는 사용자 이름에 [편집]을 클릭합니다. 4. Users를 클릭하고 권한에 수정과 쓰기 권한을 체크하고 확인을 누릅니다. 5. SYS.XP_CMDSHELL 쿼리문을 다시 실행해봅니다. 이상으로 SYS.XP_CMDSHELL 엑세스가 거부되었습니다. 해결방.. 2021. 5. 13.
[MSSQL] PARTITION 함수 사용법 & 예제 오늘은 그룹 내에서 순위 및 그룹별 집계를 구할 때 사용하는 PARTITION 함수에 대해서 알아보도록 하겠습니다. 문법 SELECT 순위함수() OVER(PARTITION BY 컬럼명 ORDER BY 컬럼명) FROM 테이블명 SELECT 집계함수(컬럼명) OVER (PARTITION BY 컬럼명) FROM 테이블명 테이블 만들기 use test create table RNAK_TEST ( 부서 varchar(100) ,이름 varchar(100) ,점수 int ) 테이터 삽입 insert into RNAK_TEST values('A','일나',80) insert into RNAK_TEST values('A','이나',70) insert into RNAK_TEST values('A','삼나',30) i.. 2021. 5. 7.
[MSSQL] 데이터베이스 백업 압축 설정 2가지 방법 오늘은 MSSQL 데이터베이스에서 백업을 할 때 압축해서 백업하는 2가지 방법에 대해서 알아보겠습니다. 백업 압축 설명 - 디스크 공간과 시간 절약을 위해 백업 압축 기능을 기본적으로 사용하게 하는 게 좋다. - 기본적으로 압축하게 하고, 압축하지 말아야할 경우를 별도로 고민을 해야 합니다. 왜냐하면 백업 압축 시 CPU 사용률이 증가할 수 있기 때문입니다. 정리하면 백업 압축은 "백업과 복원이 다 빨라지는데 CPU 사용률이 조금 올라갈 수 있다." 백업 압축 방법 백업 압축을 설정하는 방법은 2가지 방법이 있습니다. 1. 백업 시 마다 압축 설정을 하는 방법 2. 데이터베이스 설정으로 모든 백업 시 자동으로 압축되게 설정 1. 백업 시 마다 압축설정(수동) 백업할 디비를 선택하고 마우스 우 클릭을 한 .. 2021. 4. 28.
[MSSQL] 병렬처리(parallelism) 설정 & 분석 이번 시간에는 MSSQL 쿼리문을 실행하면 실행계획에서 볼 수 있는 병렬 처리 수준((MAXDOP : MAX DEGREE OF PARALLELISM)의 개념과 설정하는 방법에 대해서 알아보겠습니다. 개념 설명 병렬 처리 수준((MAXDOP : MAX DEGREE OF PARALLELISM)이란 쿼리가 한 개의 CPU로 일하는 것이 아니라 여러 CPU(코어)로 일을 분산해서 처리는 작업을 이야기합니다. 대부분의 OLTP 데이터베이스 쿼리문에서는 병렬 처리가 필요하지 않습니다. 불필요한 병렬 처리는 CPU 사용량을 낭비하는 주요 원인이지요. 병렬 처리가 발생하게 되면 쿼리가 병렬 처리가 발생하지 않게 튜닝을 하기를 권고합니다. (물론 몇몇 쿼리는 병렬 처리가 최선의 방법일 수도 있습니다.) 그러니 성능 테스.. 2021. 4. 28.
[MSSQL] 프로파일러(Profiler) 실행 & 쿼리 추적 사용법 MSSQL에는 실행되는 쿼리를 추적하는 공식 도구인 SQL Server Profiler라는 툴을 제공합니다. SQL 튜닝을 위해서 문제가 되는 고부하 쿼리를 찾아 낼 때 유용한 툴인데요. 오늘은 이 툴인 SQL프로파일러를 실행해서 어떤 이벤트를 걸어서 내가 사용한 쿼리들이 프로파일러에서 어떻게 보이는지 확인하는 방법에 대해서 알아보겠습니다. SQL 프로파일러 실행 SSMS를 실행한 다음 [도구]-[SQL Server Profiler]를 클릭합니다. 실행하자 로그인 창이 나오는데 관리자 계정인 sa 계정으로 로그인합니다. 수집할 이벤트 만들기 추적 속성을 설정하는 화면입니다. [일반] 항목에서 "추적 이름"을 입력하고 "템플릿 사용"을 Standard(기본값)으로 설정합니다. [이벤트 선택] 항목에서 아래.. 2021. 4. 27.
[MSSQL] 성능 모니터링 용어 & 개념 설명 오늘은 MSSQL 데이터베이스에서 자원 사용률에 대한 성능을 모니터링하는 "성능 모니터링 툴"의 용어들과 개념에 대해서 공부를 좀 해보겠습니다. 성능 모니터링을 사용하고 분석하기 위해서는 아래에 나오는 단어와 의미를 다 알고 있어야 합니다. 성능 모니터 실행은 [시작] – [실행] –[pefmon]을 클릭하면 됩니다. Access Methods 1. Full Scans/sec - 초당 제한되지 않은 전체 검색 수입니다. 기본 테이블이나 전체 인덱스 검색이 될 수 있습니다. - 이 카운터는 기본 테이블 또는 인덱스에 대한 전체 스캔 수를 모니터링합니다. 1 또는 2보다 큰 값은 테이블 / 인덱스 페이지 스캔이 있음을 나타냅니다. CPU가 높은 경우가 카운터를 조사해야 합니다. 그렇지 않으면 전체 스캔이 작.. 2021. 4. 26.
[MSSQL] 셀프조인(self join) 사용법 & 예제 조인(join)은 일반적으로 2개의 테이블을 연결해서 사용합니다. 하지만 자기 자신의 테이블을 참조하는 셀프 조인(self join)도 활용이 가능합니다. 이렇게 셀프조인은 명령어가 따로 있는 것이 아니라 outer join이던 inner join이던 자기 자신의 테이블괴 조인할 경우 self join이라고 생각하시면 되겠습니다. 개념은 이정도로 설명하고 emp테이블을 이용해서 셀프 조인을 사용하는 방법에 대해서 알아보겠습니다. 테이블 생성 및 데이터 입력 emp 테이블을 생서한 다음 예제에 사용할 데이터를 insert해 주세요. CREATE TABLE emp ( EmpId int ,Name varchar(100) ,Direct_Supervisor_Id int ) INSERT INTO emp values.. 2021. 4. 22.
[MSSQL] SELECT INTO & INSERT INTO SELECT 차이점 이번 시간에는 MSSQL서 사용하는 'SELECT INTO' 구문과 'INSERT INTO SELECT' 차이점과 사용법에 대해서 알아보겠습니다. 1. SELECT INTO 사용법 SELECT INTO 구문은 테이블을 복사하기 위해서 사용합니다. 문법 SELECT [컬럼명] INTO [생성할 테이블명] FROM [복사할 원본 테이블명] 예시 테이블 bebeya의 모든 데이터를 가져와서 bebeya_copy라는 신규 테이블을 생성합니다. (bebeya_copy 테이블은 현재 생성되어 있지 않습니다.) SELECT * INTO bebeya_copy FROM bebeya 2.INSERT INTO SELECT 사용법 INSERT INTO SELECT 구문은 특정테이블의 데이터를 다른 테이블에 INSERT 하는 .. 2021. 4. 14.
[MSSQL] 테이블 목록(리스트) 확인 & 세부정보 조회 내가 생성한 데이터베이스의 테이블 목록을 확인하고 해당 테이블에 대한 세부 정보를 확인하는 방법에 대해서 알아보겠습니다. 테이블 목록(리스트) 조회 쿼리 테이블 조회를 하려고 하는 데이터베이스로 이동한 다음 INFORMATION_SCHEMA 명령어를 사용합니다. USE 데이터베이스명 SELECT * FROM INFORMATION_SCHEMA.TABLES ---------------------------------------------------------- TABLE_CATALOGTABLE_SCHEMA TABLE_NAME TABLE_TYPE test dbo TRG BASE TABLE test dbo TRG_IN BASE TABLE test dbo TRG_DEL BASE TABLE test dbo TRG_.. 2021. 4. 13.
[MSSQL] 뷰(View) 테이블 수정 & 삭제 이번 시간에는 가상의 테이블인 View 테이블을 수정하는 방법과 삭제하는 방법에 대해서 알아보겠습니다. View 테이블 수정 문법 ALTER VIEW [뷰명] AS SELECT [컬럼명] FROM [테이블명] WHERE [조건절] 예제 ALTER VIEW V_BEBE AS SELECT * FROM BEBE WHERE age 2021. 4. 12.
반응형