본문 바로가기

분류 전체보기

(518)
클러스터 지정에 따른 인덱스 실행계획 비교하기 300개 데이터로만 해서 차이가 없다....................흑흑 왼쪽이 순차 정렬된 Clustered Index를 생성 했을 때, 오른쪽이 순차정렬된 NONClustered Index를 생성 했을때.. 쿼리문 1. --1. 데이터를 가져오기 = 개인정보 : Person SELECT p.personidx, p.userid, p.useraddr, p.useremail, p.usermobile, p.username, p.userpwd FROM Person AS P + 인덱스 없을 때 쿼리문 2 --2. 개인정보를 이용해서 직급정보 : 개인과 직원 정보 SELECT username, emprankid, emprankname FROM Person P JOIN Employee EMP ON P.perso..
SQL 대량의 데이터 랜덤으로 넣기 대량의 데이터 넣기~~ DECLARE @count INT SET @count = 1 WHILE(@count
통계 속성확인 코드, 업데이트 코드 통계 속성을 보는 명령어 DBCC SHOW_STATISTICS ([Person.Person], [AK_Person_rowguid]) --테이블명, 인덱스명 결과 : All density 가 0.몇이므로 밀도가 매우 낮아 현재 적정하다 통계 UPDATE명령어 UPDATE STATISTICS [Person].[Person] --테이블명
성능모니터를 이용한 sql 성능분석과 기준점 잡기 성능 모니터를 켜서 사용자정의에서 '새로만들기' -> '데이터 수집기 집합'을 선택하여 새로 만든다. 수동으로 만들기를 눌러준다. 데이터로그 만들기의 '성능카운터'와 '시스템 구성정보'만 선택한다. 성능카운터에서 '추가'버튼을 눌러서 메모리, 디스크, 프로세서, sql server 버퍼매니저, sql server sql statistics에서 각각 해당하는 것들을 선택한다. *디스크에서 각 항목 선택시 total 버튼을 누르지말고 0,1,2,3 이런식으로 숫자를 하나씩 눌러 추가해준다. -> 이유는 변동되는것을 하나씩 자세히 보기 위해서이다. 다음화면은 그대로 넘긴다 tempdb를 만들어 해당 폴더에 저장했다. 추후 분석 보고서가 여기에 작성이 된다. 그대로 넘긴다. 아래와 같이 MSSQL이라는 사용자정..
리소스모니터로 SQL성능 실시간 측정 쿼리문을 돌려 SQLSERVER의 성능 실시간 확인하기... 쿼리문 SELECT *FROM [dbo].[COLUMTABLE] 실행하는데 1:12초정도 걸린다 실행전!!! 리소스 모니터를 킨 후 '개요'에 들어가서 SQLSERVER.EXE 를 체크한다. 실행전 아래과 같이 뜬다.(나는 미리 쿼리문 한번 돌려본 후라 기본값이 다를 수 있음) CPU 메모리 디스크 쿼리문 실행 후의 변화 CPU : 아마 CPU의 0,1,2를 SQL SERVER가 쓰고있는것으로 추측이 된다. 쿼리문을 실행하니 갑자기 올랐고, 끝날때쯤 급락한다. (그래프가) 메모리 : 음. 확실하지는 않지만 용량이 변화하함을 주의하면 될거같다. 디스크 : 실행하면 디스크0 그래프가 요동을 치고 디스크 활동에서 읽기/쓰기의 수치가 매우 높아진다. ..
CACHE 테이블마다 정보를 가지고있고 이 정보로 통계를만들고 이것으로 계획을 짠다. -- * PLAN CACHE SQL Server는 한번 실행된 쿼리는 처음 만들어진 실행계획을 플랜캐시에 등록하여 이후에 재사용. 특정 조건을 만족하여 쿼리의 실행계획이 재 컴파일 되기 전까지는 말이다. 실행계획이 재 컴파일 되어 새로운 실행계획이 만들어지는경우 기존의 실행계획은 삭제되어 확인할 수 없다. 그럼 현재 플랜캐시에 있는 실행계획을 확인해 보도록 하겠다. 플랜캐시에서는 아래와 같은 정보를 확인할 수 있다. - 쿼리 구문 - 수행 횟수 - CPU 시간 - 수행 시간 - 논리적 읽기 - 논리적 쓰기 - 쿼리 플랜 자주쓰는 쿼리문을 컴파일 후 올려놓고 키값으로 매핑한다 A쿼리는 1번키, B쿼리는 2번키... 사용자가 2번키를..
X-event X-event 장점 : - 앞의 쿼리스토어보다 성능에 부하가 덜 되도록 한다. (최대 1% 미만) - 시스템에 큰 부하없이 지속적 추적 가능 형식 : CREATE EVENT SESSION[이름] ON SERVER ADD EVENT 이벤트를 할 항목 WHERE( 필터링 ) ADD TARGET package0.event_file(SET FILENAME='파일이름') WITH (STARTUP_STATE=ON) ALTER EVENT SESSION [이름] ON SERVER STATE = START; ALTER EVENT SESSION [이름] ON SERVER STATE = STOP; [EX, 자동튜닝 코드] CREATE EVENT SESSION [Not Plan] ON SERVER ADD EVENT QDS.A..
SQL 서버의 튜닝 - 튜닝이란... ** 대부분의 튜닝은 인덱스에 문제가 있다.(병목현상을 찾아서 해결 하는 경우가 대부분이다) -> 병목현상 해결은 하드웨어는 한계가 있으므로 튜닝을 해야한다. 튜닝은 인덱스(색인)을 잘 타서 통제하는 것이라고 볼 수 있다. 튜닝을 쓰는 이유!!!!!!!!!! : DB서버의 응답시간과 처리량에 대하여 요구사항에 맞게 빠르게 처리하기 위해서 튜닝을 한다. 튜닝방법 1. 네트워크 : 성능좋은 것과 트래픽(전달해주는 데이터라고 봄)을 줄인다. 랜케이블은 에러가 많이나므로 서버 랜케이블은 아주 좋은것을 쓰는경우가 많음 2. 디스크 속도 및 I/O 속도(낮춤) 3. CPU 처리량(낮춤) - 튜닝을 하는 방법 1. SQL Server Profiler -> 쿼리 튜닝/잠금 을 실행함 2. Window..