본문 바로가기

Database/MSSQL work

(47)
SUBSTRING (사용자 아이디 중에 aaa100~200) -- 사용자 아이디 중에 aaa100~200 아이디가 aa11인것도 있고 해서 연산자비교도 안되고 like도 안된다. 따라서 substring으로 뒷번호 3자리를 받아와서 검색은 한다링~ -- 사용자 아이디 중에 aaa100~200 SELECT * FROM Person P WHERE SUBSTRING(P.userid,4,6) >=100 and SUBSTRING(P.userid,4,6)
시허어어어어어엉ㅁ SQL 튜닝의 의미에 맞는 것은 무엇인가요?3 최소한의 CPU와 많은 메모리를 사용하여 최대한 느린 시간내 원하는 데이터 작업을 수행하는 것을 의미한다. 최대한의 CPU와 메모리, I/O를 사용하여 최대한 빠른 시간내 원하는 데이터 작업을 수행하는 것을 의미한다. 최소한의 CPU와 메모리, I/O를 사용하여 최대한 빠른 시간내 원하는 데이터 작업을 수행하는 것을 의미한다. 최대한의 CPU와 적은 메모리를 사용하여 최대한 느린 시간내 원하는 데이터 작업을 수행하는 것을 의미한다. SQL Server에서 분석 및 설계 단계에서의 고려사항이 아닌 것은 무엇인가요?2 어떤 형태의 처리 및 조회를 할지 사전 분석 사용빈도가 낮은 화면일수록 SQL 구조적 설계 및 성능 최적화가 수월한 방향으로 설계 자주 실행되는 ..
클러스터 지정에 따른 인덱스 실행계획 비교하기 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
쿼리저장소 쿼리스토어는? 명령문을 컴파일/분석한다 -> 컴파일 후에 각 명령어를 실행하고 통계 알람을 받는다. -> 해당되는 통계를 메모리에 캐시하고 쿼리와 실행 계획을 집계한다. -> 정기적으로 설정에 따라 데이터를 새로 고친다. SQL프로파일러보다 성능에 부화를 조금밖에 주지 않는 이유는? 비동기로 실행이 된다. - 3~0.5% 정도의 성능에 영향 - 프로파일러는 40~15%이상의 성능에 영향을 준다. 옵티마이저는 통계를할떼 테이블정보와 인덱스정보를 수집한다. 쿼리 저장소는 변경전, 후의 값을 가지고있어 분석하기 더 편하다. 장점 : 실행계획이 변경되서 성능 저하 원인을 찾기 편함. 인덱스 변경, 컬럼 속성이 변경 된 다음 쿼리속도(실행계획 등)을 확인하고 비교 가능하다. 즉 변경 전/후를 비교해서 무엇때문에 ..
GUI로 sql 쿼리 자동 튜닝 설정, 강제계획 실행, 추적(쿼리저장소) 쿼리튜닝 자동모드는 1. 데이터베이스 옵션에서 작동모드를 읽기/쓰기로 바꿈 2. 모니터링은 15분에 한번씩 통계수집은 1시간. 30일 지난녀석은 날려버림으로 셋팅이 변경됨 -- 데이터베이스를 새로고침을 해줘야 '쿼리저장소'가생김 새로고침 한 후 해당 데이터베이스의 뷰에 들어가 1000개행 보기를 다 눌러버린다 쿼리저장소 -> 회귀된 쿼리 로 15분 뒤에 확인한다. 하기 전 하고난 후 이렇게 쿼리저장소의 목록을에서 그래프가 생긴다. 고변형 쿼리에서 쿼리아이디에 따른 막대를 클릭 한 후 '계획 강제 적용'을 누르면 강제적용이 된다. 테이블을 새로고침하고 인덱스의 비율/페이지 등 다른점을 확인한다 '강제계획이 포함된쿼리'를 열어보면 아까 선택한 쿼리id와 강제 계획된 sql텍스트를 볼 수 있다. 이 외에도 추..
SQL 자동튜닝 설정 코드 -- 10초에 한번씩 사용자가 던지는 쿼리문들을 자동으로 튜닝을 할지 말지 확인을 한다. 지금 자동튜닝되는 쿼리가 있는지 확인하는거 SELECT reason, score, script = JSON_VALUE(details, '$.implementationDetails.script'), planForceDetails.*, estimated_gain = (regressedPlanExecutionCount + recommendedPlanExecutionCount) * (regressedPlanCpuTimeAverage - recommendedPlanCpuTimeAverage)/1000000, error_prone = IIF(regressedPlanErrorCount > recommendedPlanErrorCo..
PLAN CACHE에대해 (예상실행계획)내부 결과를 반환하는 캐시쿼리 -- 그림을 표로 표시해줌. ;WITH XMLNAMESPACES(DEFAULT N'http://schemas.microsoft.com/sqlserver/2004/07/showplan') SELECT cp.query_hash,cp.query_plan_hash, PhysicalOperator= operators.value('@PhysicalOp','nvarchar(50)'), LogicalOp= operators.value('@LogicalOp','nvarchar(50)'), AvgRowSize= operators.value('@AvgRowSize','nvarchar(50)'), EstimateCPU= operators.value('@EstimateCPU','nvarchar(50)'), EstimateIO=..