728x90
반응형
성능 개선 사항
- 프로시저 본문에서 'SET NOCOUNT ON'을 사용
> 출력이 최소 수준으로 유지 - 스키마 이름을 사용
> 개체이름 확인 처리시간 감소 및 권한/액세스 문제 방지 - WHERE 및 JOIN 절에서 지정한 열을 함수로 묶지 않기
> 묶일 경우, 비결정적 열이 되어 인덱스를 사용할 수 없음 - 대량의 행을 반환하는 SELECT문은 스칼라 함수 사용하지 않기
> 스칼라 함수는 모든 행에 적용되어 행 기반 처리와 비슷한 동작이 발생하여 성능저하됨 - SELECT * 사용을 피하기
> DB엔진 오류 방지 - 너무 많은 데이터를 처리하거나 반환하지 않기
> 네트워크를 통해 불필요한 데이터를 보내지 않아 효율적 - BEGIN/COMMIT 트랜잭션을 사용하여 명시적 트랜잭션을 사용하고, 짧게 유지
> 트랜잭션이 길면 레코드 잠금시간이 길어지고 교착상태가 발생할 확률이 높아짐 - 오류처리에 TRY...CATCH기능 사용
> 전체 블록이 캡슐화되어, 성능 오버헤드와 프로그래밍이 줄어들고, 오류 보고서가 정확해짐 - TABLE DDL문이 참조하는 모든 TABLE 열에 DEFAULT 키워드를 사용
> NULL값을 허용하지 않는 열에 NULL이 전달되지 않음 - 임시 TABLE의 각 열에 NULL 또는 NOT NULL을 사용
> 프로시저를 실행하는 모든 연결에 대해 NULL 허용여부가 동일한 임시 테이블이 생성됨 - NULL값을 변환하는 수정문을 사용하고, NULL 값을 포함하는 행을 쿼리에서 제거하는 논리를 포함
> NULL은 결과 집합을 쿼리하거나 AGGREGATE 함수를 사용할 때 예기치 않은 동작을 야기 - 고유 값에 대한 특별한 요구사항이 없을시, UNION 또는 OR 연산자 대신 UNION ALL 연산자를 사용
> 중복되는 항목이 결과 집합에서 필터링되지 않으므로 처리 오버헤드가 감소
728x90
반응형
'IT > SQLD' 카테고리의 다른 글
[Oracle] 오라클 SQLPLUS 원격 접속 방법 (0) | 2024.04.11 |
---|---|
System table 조회 권한 부여 (0) | 2024.04.09 |
SSRS(SQL Server Reporting Services) 설치 및 웹서비스 설정 (0) | 2024.01.22 |
SSRS 자습서: SQL Server Reporting Services란 무엇입니까? (0) | 2024.01.22 |
MSSQL2016 SSMS 원격접속 (0) | 2024.01.21 |