반응형

매월 마지막날 출력 쿼리

 

DECLARE @v_YMD CHAR(8)
DECLARE @v_tmp CHAR(8)

SET @v_YMD = '20180201'

WHILE @v_YMD <= '20190601' BEGIN
set @v_tmp = CONVERT(CHAR(8),Dateadd(day, -1, @v_YMD),112)
print @v_tmp
SET @v_YMD = CONVERT(Char(8), DateAdd(month, 1, @v_YMD), 112)
END

반응형

'Database > SQL Server' 카테고리의 다른 글

[MSSQL] 테이블 명세서 쿼리 / SP 명세서  (0) 2022.08.04
트랜잭션 격리수준과 with(nolock) 힌트  (0) 2019.04.29
B-TREE 구조  (0) 2018.11.15
SQL 실행계획  (0) 2018.11.12
[MSSQL] Table Column 속성 변경  (0) 2018.06.25
반응형

실행계획이란?

- 옵티마이저가 쿼리의 최적 실행 방법을 결정하여 나타내는 쿼리의 동작 계획

- 작성된 쿼리문의 성능을 파악할 수 있는 DBMS가 지원해주는 정보

- 작성된 쿼리가 어떤 식으로 동작하는지 내용을 파악할 수 있다


실행계획의 중요성

- 자신이 작성한 쿼리의 실행계획을 제대로 파악하지 못한채 쿼리를 작성하게 되면 데이터가 많아졌을 때 성능 저하가 발생!


MS-SQL에서 실행계획 보는 방법

- 실행계획을 확인할 쿼리를 드래그 한 후 Ctrl+L 을 누르면 선택된 영역 쿼리의 실행계획을 볼 수 있다


실행계획에 나오는 용어 정리

Table Scan    -  테이블 내 전체 데이터를 모두 검색(full scan)

Table Seek    -  인덱스를 사용하여 검색

Index Scan    -  인덱스를 검색하여 데이터를 검색(range scan)

Index Seek    -  인덱스를 사용하여 검색

Hash join      -  두 테이블간에 인덱스가 없고 Equal Join을 사용할 경우

NS Lookup    -  

빨간색으로 표시된 부분이 실행계획에 많이 있으면 데이터가 많아짐에 따라 성능 저하의 위험이 있다는 뜻!


실행계획을 볼 때 유의 할 점!

- 실행 계획에 Table Scan / Index Scan 이 있으면 전체 검색을 하기 때문에 Table Seek / Index Seek으로 바꿔주는게 일반적으로 좋다

- Scan을 Seek로 바꿀려면 Where에 사용하는 컬럼에 Index를 걸어주면 해결된다.(* 단 Index에 대한 이해가 필수!)

- 데이터 검색할 Row수가 적으면 쿼리 옵티마이져가 자동적으로 Scan으로 검색하니 참고!



*앞으로 실행계획을 통해 자신이 만든 쿼리와 SP의 성능을 확인하고 개선하는 습관을 가지는 것이 좋다!!!!*


*SQL Server 2014 기준으로 작성한 글입니다.




반응형

'Database > SQL Server' 카테고리의 다른 글

트랜잭션 격리수준과 with(nolock) 힌트  (0) 2019.04.29
B-TREE 구조  (0) 2018.11.15
[MSSQL] Table Column 속성 변경  (0) 2018.06.25
Database 내 모든 테이블 정보 확인  (0) 2018.06.14
동적 쿼리와 정적 쿼리  (0) 2018.05.23
반응형

Database 살펴 볼 때 내부 테이블들의 모든 정보를 알고 싶은 경우가 있다.


각 테이블을 조회하는 노가다 성 작업으로 해결할 수 도 있지만 테이블의 수가 많을 경우는 많은 시간이 소비된다.


다행히 한번에 모든 테이블 정보를 볼 수 있는 sql 쿼리문이 있다.


SELECT * FROM INFORMATION_SCHEMA.COLUMNS ORDER BY TABLE_NAME


위 쿼리문을 동작하면 Database 내 모든 테이블 컬럼 정보를 확인할 수 있다.


*Microsoft SQL Server Management Studio에서 실행.

반응형

'Database > SQL Server' 카테고리의 다른 글

SQL 실행계획  (0) 2018.11.12
[MSSQL] Table Column 속성 변경  (0) 2018.06.25
동적 쿼리와 정적 쿼리  (0) 2018.05.23
Stored Procedure(저장 프로시저)  (0) 2018.05.23
MS-SQL SP_EXECUTESQL  (0) 2018.05.23

+ Recent posts