SQL 구문 성능 최적화(계속)

전편 에 서 는 자신 이 프로젝트 에서 만난 sql 문 구 를 사용 하 는 최적화 방식(성능 최적화-SQL 문)을 소개 하 였 으 나 완전 하지 못 하 다.비교 하 는 과정 에서 max 함 수 를 고려 하지 않 고 사람들의 주 의 를 받 은 후에 테스트 를 했 고 테스트 과정 에서 많은 것 을 배 웠 습 니 다.
지난번 에는 select count(*)와 select*의 실행 효율 문 제 를 사 용 했 습 니 다.제 수 요 는 데 이 터 를 얻 는 총수 로 새로운 id 를 자동 으로 제시 한 다음 에 네티즌 들 은 max 를 사용 할 수 있 는 방식 으로 새로운 id 를 제시 하 는 것 입 니 다.사실 이것 도 좋 은 생각 이 었 습 니 다.
첫 번 째 테스트:

Declare @dddd Datetime Set @dddd=GETDATE()
select MAX(num) from T_BasicInformation
select [    ]=DATEDIFF(ms,@dddd,GetDate())
테스트 결과:

비 교 를 통 해 이 방법 을 사용 하 는 집행 효율 이 select count(*)보다 높 지 않 은 것 으로 나 타 났 다.나중에 자 료 를 찾 아 보 니 사실은 max 의 효율 이 상대 적 으로 높 을 것 이라는 것 을 알 게 되 었 습 니 다.그러면 왜 우리 의 테스트 결 과 는 이 럴 까요?우리 이어서 테스트 를 진행 합 시다.
두 번 째 테스트:
① 문장 1

Declare @ddd Datetime Set @ddd=GETDATE()
select MAX(id) from t_SellLogDetail
select [    ]=DATEDIFF(ms,@ddd,GetDate())
테스트 결과:

② 문장 2

Declare @dddd Datetime Set @dddd=GETDATE()
select MAX(foodId) from t_SellLogDetail
select [    ]=DATEDIFF(ms,@dddd,GetDate())
테스트 결과:

③ 문장 3

Declare @ddddd Datetime Set @ddddd=GETDATE()
select MAX(orderId) from t_SellLogDetail
select [    ]=DATEDIFF(ms,@ddddd,GetDate())
테스트 결과:

두 번 째 테스트 를 마치 면 같은 표,다른 필드,max 함수 의 실행 효과 가 다르다 는 것 을 알 수 있 습 니 다.그리고 데이터 형식 에서 출발 했 습 니 다.데이터 형식 은 다음 과 같 습 니 다.

이렇게 되면 우리 의 테스트 결과 에 따라 서로 다른 문제 가 쉽게 해 결 됩 니 다.max 함수 의 실행 과정 에서 데이터 유형 에 따라 서로 다른 집행 효율 이 있 습 니 다.메 인 키 이 고 정형 이 라면 효율 이 가장 높다.메 인 키 가 아 닐 때 int 의 효율 은 문자 형식 보다 높 습 니 다.사실 이것들 은 모두 이해 하기 쉬 워 서 각자 의 사용 방식 이 있다.
소결:
첫 번 째 테스트 가 끝 난 후에 다른 것 을 고려 하지 않 았 는데 나중에 max 에서 주의해 야 할 부분 이 있 음 을 발견 했다.그래서 우리 가 평소에 공부 할 때 반드시 공 부 를 확대 하 는 것 을 배 워 야 한다.자신 이 원 하 는 결과 에 만 국한 되 지 않도록 해 야 한다.결 과 를 얻 는 것 은 물론 시스템 이 필요 한 것 이지 만 학습 기 에 있 는 우리 에 게 는 부족 하 다.우 리 는 끊임없이 탐색 해 야 더욱 큰 발전 을 이 룰 수 있다.
SQL 문장의 성능 최적화 에 대해 소 편 은 여기까지 소개 해 드 리 겠 습 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다!

좋은 웹페이지 즐겨찾기