반응형

쿼리튜닝 3

[Oracle/MSSQL] WHERE 조건절 순서에 따른 속도차이, 조건절 순서 속도, WHERE 절 속도차이

TABLE에서 INDEX 가 참조하는 컬럼이 A,B,C 일때, 아래 두 쿼리중에 실행속도는 뭐가 더 빠를까? 1. SELECT * FROM TABLE WHERE A = 1 AND B=2 AND C=3 2. SELECT * FROM TABLE WHERE A = 1 AND C=3 AND B=2두 쿼리의 실행 속도는 사실상 동일하다. 왜냐하면, 데이터베이스의 쿼리 최적화 엔진이 WHERE 절의 조건 순서를 자동으로 최적화하여 가장 효율적인 방법으로 쿼리를 실행하기 때문이다. 옵티마이저가 똑똑해서 쿼리의 WHERE절을 살펴보고 키가 있는것을 우선 적용해 검색을 한다. 단, 인덱스의 쿼리가 모두 조건절에 들어있어야 인덱스를 100% 활용한다고 볼 수 있다. ​예를 들어, 다음 두 쿼리는:SELECT * FROM ..

Dev/Database 2024.07.04

[DB/SQL] 쿼리 튜닝하는법, 오라클 쿼리튜닝, MSSQL 쿼리 튜닝, 쿼리 성능 개선하는법

쿼리 성능이 나오지 않을때, 기본적으로 확인할 수 있는 쿼리 개선방법이다. 1. INNER, OUTER JOIN 있을 때 무조건 OUTER JOIN을 마지막에 걸기2. 쿼리에서 데이터를 SELECT 해올 필요가 없는데 불필요한 조인 하는 경우 제거SELECT A.COLMN1, B.COLMN2FROM TABLE_A A INNER JOIN TABLE_B B ON A.COLMN1 = B.COLMN1 INNER JOIN TABLE_C C ON A.COLMN2 = C.COLMN2 -- TABLE_C 의 데이터는 안가져오므로 불필요한 조인.이를 제거해야함. 3. 3개이상 테이블 조인할때, 테이블 작은 순서로 조인하기4. 실행계획 확인하기  (1) Oracle의 경우, DBeaver 에서 Ctrl +..

Dev/Database 2024.06.11

[DB/SQL] 더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙, 쿼리 튜닝하는 법, 쿼리 성능 개선, 프로시저 튜닝, mssql, oracle, mysql

누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도 하나만으로는 완벽하거나 확실하지 않다. 이처럼 모든 쿼리를 미세조정, 즉 튜닝하기 위한 정답이 존재하지는 않지만, 길을 밝히는데 도움이 되는 풍부한 관례가 있다. 몇 가지는 RDMBS에 관련된 사항들이지만, 대부분의 팁은 모든 관계형 데이터베이스에 적용된다.SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에서 코딩을 하고 있더라도, 목표는 같다. 데이터베이스가 가능한 빨리 쿼리를 처리하는 동시에 현실적으로 가능한 많은 동시 사용자를 지원하는 것이다. 이는 공..

Dev/Database 2024.05.22
반응형