튜닝
-
SORT 영역을 적게 사용하도록 SQL 작성Database 2020. 11. 4. 10:53
소트 연산이 불가피하다면 메모리 내에서 처리되게 하려고 노력해야 한다. 소트 영역 크기를 늘리는 방법도 있지만 그전에 소트 영역을 적게 사용할 방법부터 찾는 것이 순서다. 가. 소트 완료 후 데이터 가공 특정 기간에 발생한 주문상품 목록을 파일로 내리고자 한다. 아래 두 SQL 중 어느 쪽이 소트 영역을 더 적게 사용할까? [ 1번 ] select lpad(상품번호, 30) || lpad(상품명, 30) || lpad(고객ID, 10) || lpad(고객명, 20) || to_char(주문일시, 'yyyymmdd hh24:mi:ss') from 주문상품 where 주문일시 between :start and :end order by 상품번호 [ 2번 ] select lpad(상품번호, 30) || lpad..
-
MSSQL 튜닝 기초Database 2020. 10. 30. 14:13
1 SELECT는 필요한 결과값만을 요구 하는가? 2 적절한 WHERE 조건을 사용하는가? 3 COUNT(컬럼명) 대신 COUNT()을 사용하는가? 4 커서 및 임시 테이블의 내용을 최대한 자제하는가? 커서보다는 임시 테이블이 임시 테이블보다는 테이블 변 수를 사용하는 것이 성능이 나아진다. 5 VIEW의 총 사용을 줄였는가? 6 저장 프로시저를 사용하는가? 저장 프로시저의 역할 7가지 1. 데이터 무결성의 시행 2. 복잡한 비즈니스 규칙과 제약의 강화 3. 캡슐형 설계 4. 유지 보수 5. 네트워크 트래픽 감소(오고 가는 긴 SQL 구문을 축소) 6. 보다 빠른 실행(컴파일을 하지 않습니다) 7. 보안 강화 쿼리는 한번만 실행할 때는 일반 SQL이 훨씬 간단하다. 그러나 반복적으로 실행 되면 저장 프로..
-
MSSQL 세션 정보 확인Database 2020. 10. 26. 16:56
db가 갑자기 느려지는 경우 sp_lock 명령어로 세션을 확인한다. 실행 후 나오는 값에 대하여 아래와 같이 정리되어 있다. spid smallint 잠금을 요청하는 프로세스의 데이터베이스 엔진 세션 ID입니다. dbid smallint 잠금이 설정된 데이터베이스의 ID입니다. DB_NAME() 함수를 사용하여 데이터베이스를 식별할 수 있습니다. ObjId int 잠금이 설정된 개체의 ID입니다. 관련 데이터베이스에서 OBJECT_NAME() 함수를 사용하여 개체를 식별할 수 있습니다. 값 99는 특별한 경우로서 데이터베이스에서 페이지 할당을 기록하는 데 사용되는 시스템 페이지 중 하나에 대한 잠금을 나타냅니다. IndId smallint 잠금이 설정된 인덱스의 ID입니다. Type nchar (4) ..