분류 전체보기 (518) 썸네일형 리스트형 가상 하드디스크 만들어서 mssql 저장 공간으로 지정하기 *먼저 C: 드라이브에 VHDX라는 파일을 만든다. 컴퓨터관리 > 작업 > 기타작업> 가상 하드디스크만들기를 누른다 아래 창과같이 뜨면 위치를 탐색하여 VHDX라고 지정하고 파일이름을 sqldatadisk라고 저장한다. (이렇게 sqlBackup, sqlLog 포함 총 3개를 만들예정이다) VHD와 동적확장을 설정하고 하드디스크 크기를 10GB로 설정한다. (3개를 모두 이렇게 설정해준다.) 이렇게 디스크공간이 생기면 초기화를 시켜준다. 할당되지 않음 글씨 위에서 마우스 오른쪽 버튼을 누르면 '단순 새볼륨'이 뜨는데 클릭하여 마법사를 실행한다. 처음 크기는 10G에 맞춰져 있을거여서 다음으로 넘기면 되고 아래 그림에서 볼륨레이블에 디스크 이름을 작성한다 (ex Data, Log, Backup 등....).. NOLOCK, 격리수준, 프로파일러로 추적! MSSQL의 경우,기본적으로 제공하는 격리수준은 READ_COMMITED 입니다. 즉, AUTO COMMIT 라고 생각하시면 되십니다. 설정 변경은 가능합니다. 하지만 기본적으로는 저렇게 되고 있습니다. 그렇다보니 UPDATE, INSERT 등을 하면서 테이블이 잠기게 되었을 때, SELECT를 하게 된다면 블락이 걸리게 됩니다. 이럴 때는 DB의 성능이 떨어지고, 데드락이 걸리게 되어 결과가 안나오는 경우가 발생할 수도 있습니다. 이럴 때를 피하기 위해 사용할 수 있는 방법이 WITH (NOLOCK) 입니다. 목적 : 잠금(lock)이 되어있는 Table의 정보를 가져올 때 사용 잠금(lock)이란 ? 현재 테이블에 어떤 작업이 실행되고 있다고 가정할수 있음 해당된작업(트랜젝선)안에서 데이터는 변경된 .. 튜닝을위한 하드웨어지식 기초 -- * 시스템 튜닝에대한 쿼리문은 꼭 가지고 있을 것............. go -- * subquery 종류 --서브쿼리의 위치에 따른 명칭 -- SELECT문에 있는 서브쿼리 : 스칼라 서브쿼리:1행만 반환 -- FROM절에 있는 서브쿼리 : 인라인 뷰 -- WHERE절에 있는 서브쿼리 : 서브쿼리 -- *인덱스된 뷰!! -- 실제데이터가 존재하며, 그 데이터는 고유 클러스터형 인덱스에 의해서 정렬이 되어 있는 뷰입니다. -- 뷰나 인덱스된 뷰는 join 구문 할 때 쓴다 -- 장점 -- 자주 사용되는 뷰의 경우, 아예 뷰에 실제 데이터가 존재하게 되면 -- 뷰까지만 접근해도 결과를 얻을 수 있게되어서 쿼리의 성능이 향상 될 것입니다 -- 단점 -- 뷰를 만들 때 참조한 테이블이 변경 될때마다, .. MSSQL Developer버전 설치 순서 계획에서 기존 설치에 기능 추가 선택 => sql 서버 설치를 진행 - 다음 누르기 - 윈도우즈 방화벽에서 경고 (고급 보안 - 방화벽 sql서버가 풀어져 있는데 정상적으로 인식 못하는것..??) - 180일 동안 사용 가능 - 동의하고 다음 엔진만 선택 MSSQL SERVER 에이전트는 수동, 자동, 수동 데이터베이스 엔진 구성에서 바꾸기 [서버 구성] 혼합모드 비밀번호는 Pa$$w0rd 현재 사용자 추가 [데이터 디렉토리] 데이터 루트 디렉토리는 c에 그대로 두기 - 시스템 데이터 베이스는 사용자 데이터베이스로 시스템 db - 그대로 두기 - master : sql 설정 - msdb : 유지보수 설정 - model : db생성시 기본 모델두는 곳 사용자 데이터 베이스 디렉터리 ... - d:\sqld.. 구매 고객별 등급 나누기? select select C.custId, case when sum(sales) >= 10000 then 'A' when sum(sales) >= 5000 then 'B' when sum(sales) >= 10 then 'C' else 'D' end as grade from customersTbl C left join salesTbl S ON C.custId = S.custId group by c.custId 테이블 update update customersTbl set customersTbl.grade = S.grade from customersTbl as C, ( select C.custId, case when sum(sales) >= 10000 then 'A' when sum(sales) >= 50.. 함수 변수를 받아 값을 리턴하는 함수 create function ufn_getAge(@bYear int) returns int as begin declare @age int set @age = year(GETDATE()) - @bYear return (@age) end go select dbo.ufn_getAge(1980) -- 위 내용을 테이블에 적용하기 select custId, custName, dbo.ufn_getAge(year(birthDate)) as[나이] from customersTbl -- table형태 반환하기 == inline table 반환하기 create function ufn_getVip(@amount int) returns table as return( select distinct.. 커서 cursor 행을 가르키는것? 행의 집합정도 -- 선언, 오픈, 패치, (사용 후 ~ ) 클로즈/릴리즈(해제) 순서 커서의 내부 작동 방식 1. local, global 2. 원본 테이블을 DB에 복사해 놓을때, 어떻게 복사할지에대한 방법들 : static, keyset, dynamic, fast_foward : --static 커서에서 사용할 데이터를 모두 DB에 복사 한 후 사용하므로 원본테이블 값이 바뀌어도 원래값이 나온다. --keyset 1. 테이블에서 key값만 복사하여 메모리상에서 매번 원래 DB를 조회함. 따라서 update된 내용은 다 보이고 insert된 내용은 안보임 2. 유니크 제한조건이 걸려있지 않으면 보이지 않음(스테틱으로 자동변환됨) -- 동적(dynamic) 패치 될때마다 매번 키를 하나.. 저장 프로시져 procedure 저장 프로시저란 DB를 다룰 때 사용하는 복잡한 쿼리문을 함수처럼 등록해두고 간단하게 사용할 수 있는 명령이다. 또한, 매개변수도 반영할 수 있기 때문에 편리하다. -- 저장 프로시저 특징 -- SQL Server 성능 향상 -- 최초 실행시 최적화 및 컴파일 과정 수행 수 캐시 메모리 적재 -- 재 실행시 캐시에서 호출 후 재사용 -- 유지관리 용이 -- 외부 응용프로그램에서 SQL문장을 직접 작성하지 않고 저장 프로시저 내에서만 유지 관리 -- 모듈식 프로그래밍 가능 -- 보안 강화 -- 네트워크 전송량 감소 -- 기본 생성 create procedure usp_members as select * from customersTbl; -- 실행(함수실행할때 쓰는 exec사용) exec usp_member.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 65 다음