일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 윈도우10
- MX Component
- scrapy
- PYTHON MSSQL
- MSSQL
- 티스토리 초대장
- vscode
- 크롤링
- MEAN Stack
- rs485
- Python
- Serial
- 자본주의
- 오라클
- M2M
- pymssql
- windows10
- Visual Studio Code
- 텐서플로우
- django
- sql developer
- oracle
- 딥러닝
- 파이썬
- rs422
- 장고
- MSSQL PYTHON
- tensorflow
- c#
- matplot
Archives
- Today
- Total
안까먹을라고 쓰는 블로그
[MSSQL] 프로시저 - 구간 별 성능체크 본문
반응형
프로시저 안에는 여러 개의 쿼리가 있을수 있고, 다른 프로시저를 호출할 수도 있다.
이런 각 부분 마다 아래와 같이 시간과 구분값을 표시할 수 있는 PRINT문을 추가한다.
구분 값은 숫자를 트리 형식으로 하면 확인하기 좋다.
Ex) 1.1
1.1.1
1.1.1.1
1.2
1.2.1
PRINT(CONVERT(NVARCHAR(100), GETDATE(), 120) + ' : 1.2')
위의 방법으로 프로시저를 SSMS에서 실행하면, 하단의 결과 값의 "메시지" 부분에 위에 추가한 PRINT문의 값이 표시된다. 각 구분 값의 시간을 확인하여, 어디에서 불필요하게 많은 시간이 소요되는지 확인한다.
이 부분의 쿼리를 수정하여, 성능을 개선한다.
■ 개선방법
Case1. 특별한 작업을 하지 않았는데, 갑자기 느려지는 경우에 MSSQL의 옵티마이저에서 최적화 방법을 변경하여
발생하는 경우가 있다. 일반적인 INNER JOIN 을 INNER HASH JOIN 으로 변경해주면 성능이 향상되는 경우가 있다.
Case2. 조회 시, 조회컬럼의 많은 량의 데이터를 LEFT, RIGHT등의 함수를 사용하여 가공하는 경우 성능이 떨어질 수
있다.
Case3. 원래느린 경우,
- 테이블의 인덱스 를 추가/변경하여 개선되는 경우가 많음.
쿼리 간단한 성능체크 방법은 아래의 링크를 참고하시기 바랍니다.
https://overit.tistory.com/entry/MSSQL-간단한-성능-체크
끝~
반응형
'DataBase > MS SQL' 카테고리의 다른 글
[MSSQL] 집계함수 (GROUP BY, ROLLUP, CUBE, GROUPING SETS) (0) | 2023.09.21 |
---|---|
[MSSQL] 오래걸리는 쿼리내역 조회 (0) | 2023.05.03 |
[MSSQL] 오라클 다중 IN => MSSQL 구현 (0) | 2022.10.23 |
[MSSQL] 트리거(Trigger) (0) | 2022.09.26 |
[MSSQL] MSSQL IN절에 필드 여러개 사용 (0) | 2022.09.19 |
Comments