Yet Never Lose Faith

- Good to Great , Jim Collins

How To Preprocess Image Data 자세히보기

MSSQL 3

[쿼리 튜닝] Where 조건 좌측(?)에 함수를 사용하면 인덱스가 깨져요!!

최근 회사에서 쿼리 튜닝이 이슈로 떠오르고 있다. 사실 이전에는 튜닝 대상 쿼리를 추출하는 방식이 굉장히 주먹구구식이고, 실행 당시 파라미터도 쉽게 파악할 수 없어서 쿼리 튜닝 작업에 큰 장벽이 있었다. 쿼리 튜닝이 이슈로 떠오르면서 이러한 문제점을 해결하기 위해 Whatap이라는 어플리케이션, 디비 모니터링 툴을 체험판으로 도입해보았고, 결과는 상당히 고무적인 것 같다. 적용 2주만에 DB CPU 부하가 6~7% 정도 감소했다고 한다. 물론 지금까지 거의 튜닝 작업을 하지 않다가 최근 2주 간 굉장히 열심히 튜닝 작업을 해서 발생한 성과라고 할 수 있지만, Whatap의 도입으로 어떤 쿼리가 문제인지 통계자료를 통해 파악하고, 파라미터 값도 쉽게 바인딩 할 수 있어 결정적인 영향을 줬다고 할 수 있다...

MSSQL 2021.03.31

MSSQL count, group by - 가격이 여러개 존재하는 품목을 찾자!

업체 A는 가구를 판매한다. 판매 품목에 대한 물품코드, 색상, 가격 등은 DBMS를 통해 관리하고 있다. A의 상품들은 한가지 룰이 있다. 한 품목은 여러개의 색상을 가질 수 있지만 색상이 달라도 가격은 항상 동일해야한다. 그런데 어느날, 직원의 실수로 몇몇 품목의 가격이 잘못 업데이트 됐다. 당신은 IT 지원부서의 일원으로 가격이 여러개 존재하는 품목을 찾아달라는 요청을 받았다. MSSQL로 쿼리를 작성해보자. 우선 데이터를 살펴보자. SELECT * FROM ITEM ORDER BY ITM_CD 내가 골라내야하는 코드는 위와 같이 품목코드가 같은데 가격이 다른 애들이다. 먼저 GROUP BY 절을 통해 ITEM 테이블에 존재하는 (ITM_CD,SALCST) 조합들을 찾아낸다. SELECT ITM_C..

MSSQL 2020.06.08

[MSSQL] WHERE 1=1이 뭐야? 왜 쓰는 거야?

회사에 입사하고 쿼리를 사용하면서 종종 보지만, 잘 이해가 가지 않는 구문이 생겼어요. WHERE 1=1 바로 요놈! 오늘 공부해보도록 할게요. Chapter 1. WHERE 1=1이 뭐야?? 우선, WHERE는 조회하려는 데이터들의 조건을 거는 문법이에요. 1 = 1은 말그대로 참을 의미해요. 그럼 위 쿼리를 아래와 같이 바꿀 수 있죠. 해석해보면, CUSTOMERID가 '3'인 데이터들을 모두(참) 조회한다. 즉, 1=1이란 조건은 있으나마나 한 조건이라는 의미죠. Chapter2. 그렇다면 왜 WHERE 1=1절을 쓸까? ① 쿼리 디버깅 시, 주석처리가 편하다. 아래와 같은 쿼리가 있다고 하죠. 저는 COMPANYNAME LIKE 'L%'인 데이터가 잘 조회되는지 확인하기 위해 CUSTOMERID ..

MSSQL 2019.10.12