데이터베이스를 사용하는 사람일 경우 쿼리를 한번 실수해도 큰일나는 경우가 많습니다.
주의를 요해야합니다.
주요 실수에 대해서 알아봅시다.
정말 실수를 내면 안되며, 실수가 나도 원복을 할 수 있도록 작업 전 백업을 해놓거나
업데이트자, 업데이트시간, 코멘트를 적을 수 있도록 합시다.
1. SELECT * 전체조회
데이터가 별로 없을 경우 SELECT * 로 전체 조회해도 문제가 없습니다.
하지만 데이터가 엄청 많은 경우 테이블 전체를 조회하면 문제가 생길 수 있습니다.
SELECT * -- 전체조회
FROM USER WITH(NOLOCK)
2. 조회조건 누락
조회조건이 없는 상태, 주석인 상태로 쿼리를 실행하면 엄청나게 많은 데이터가 변경 될 수 있습니다.
꼭 확인하고 쿼리를 실행하기전 아래에서 위로 드래그해서 쿼리 실행하는 것을 추천드립니다.
아래와 같이 USER_ID 가 주석처리가 된 상태로 업데이트가 되면 모든 USER 테이블에 있는 데이터의 USER_NM 이 '짱구'로 바뀝니다.
UPDATE A SET USER_NM = '짱구'
FROM USER A WITH(NOLOCK)
-- WHERE USER_ID = '24011701'
3. F5 잘못 누를 경우
업무를 보다가 실수로 F5를 눌릴때가 있습니다.
이럴 떄 UPDATE 쿼리나 INSERT, DELETE , DROP 등 치명적인 실수로 이어 질 수 있습니다.
이런 상황을 대비하여, 주석을 활용합시다.
데이터를 변경할 떄 아래와 같이 주석으로 되어있으면 실수로 F5를 눌러도 이상이 없습니다.
SELECT TOP 100 *
-- UPDATE A SET USER_ID ='2401224'
FROM USER A WITH(NOLOCK)
WHERE USER_ID ='20202021'
SELECT TOP 100 *
-- DELETE A
FROM USER A WITH(NOLOCK)
WHERE USER_ID ='20202021'
-- INSERT INTO USER_BACKUP
SELECT TOP 100 *
FROM USER A WITH(NOLOCK)
WHERE USER_ID = '20202021'
4. 프로시저 확인
자주 사용하던 프로시저를 실행할때 무조건 프로시저 수정을 눌러서 변경된 내용이 있는지 확인합니다.
현업에서 다양한 사람들이 프로시저를 입맛대로 변경하고 원복을 안해놓았을 경우가 빈번합니다.
사전에 프로시저 파라미터 값이 내가 원하는 데이터가 실행되는지 꼭 확인해야합니다.
5. SELECT 절 WITH(NOLOCK) 누락
SELECT 절의 경우 WITH(NOLOCK) 의 경우 필수입니다.
쿼리에 LOCK 을 주는 것이며, 자세한 설명은 아래 링크 참고 부탁드립니다.
2022.10.02 - [데이터베이스] - [MSSQL] WITH(NOLOCK)이란 ?
'데이터베이스' 카테고리의 다른 글
[MSSQL] 여러개 쿼리 하나로 묶기_UNION ALL (0) | 2023.11.28 |
---|---|
[MSSQL] UNION , UNION ALL 이란 (0) | 2023.11.20 |
[SQLD] SQLD 책 추천, 노랑이 (0) | 2023.08.22 |
[SQLD] SQLD 후기 및 공부방법 (0) | 2023.06.25 |
MSSQL sp 명령어 (0) | 2023.01.23 |