본문 바로가기

DATABASE

SQL 튜닝 규칙.

출처 : http://blog.naver.com/windil?Redirect=Log&logNo=43011738

Never do a calculation on an indexed column (e.g., WHERE salary*5 > :myvalue).

인텍스 칼럼에는 수식을 사용치 마라.
 

Whenever possible, use the UNION statement instead of OR conditions.

가능한한 OR 조건문 대신 UNION문을 사용하라.
 

Avoid the use of NOT IN or HAVING in the WHERE clause. Instead, use the NOT EXISTS clause.

WHERE절에 NOT IN이나 HAVING사용을 삼가하라. 대신 NOT EXISTS절을 사용하라.
 

Always specify numeric values in numeric form and character values in character form (e.g., WHERE emp_number = 565, WHERE emp_name = 'Jones'.

숫자 관련 값은 숫자로, 문자열 관련 값은 문자로 표현하라.
 

Avoid specifying NULL in an indexed column.

인덱스 칼럼에 NULL사용하지 마라.
 

Avoid the LIKE parameter if = will suffice. Using any Oracle function will invalidate the index, causing a full-table scan.

=(equal)연산자만으로 충분하다면 LIKE를 사용치 마라. 오라클 함수를 사용하는 것은 인덱스를 무용지물로 만들어 full-table scan를 하게 만든다.
 

Never mix data types in Oracle queries, as it will invalidate the index. If the column is numeric, remember not to use quotes (e.g., salary = 50000). For char index columns, always use single quotes (e.g., name = 'BURLESON'.

오라클 쿼리에서 데이터 타입을 섞으면 인덱스를 무용지물로 만든다. 칼럼이 숫자면 따옴표를 사용치말고 문자열이면 항상 작은따옴표를 사용하라.
 

Avoid using subqueries when a JOIN will do the job.

JOIN으로 해결할 수 있다면 서브쿼리를 사용치 마라.
 

Use the Oracle "decode" function to minimize the number of times a table has to be selected.

오라클의 "decode" 함수를 사용하여 개별 테이블이 선택되어지는 횟수를 최소화하라.
 

To turn off an index you do not want to use (only with a cost-based optimizer), concatenate a null string to the index column name (e.g., name||') or add zero to a numeric column name (e.g., salary+0).

(cost-based optimizer에서만) 사용하고 싶지 않은 인덱스를 꺼버리려면,  문자열값을 갖는 인덱스 칼럼의 이름에null 문자열을  잇거나 숫자값을 갖는 인덱스 칼럼에 숫자 0을 더해버려라.
 

If your query will return more than 20 percent of the rows in the table, a full-table scan may be better than an index scan.

쿼리가 20%이상의 테이블 데이터를 불러온다면, full-table scan이 index scan보다 더 낫다.
 

Always use table aliases when referencing columns.

칼럼을 참조할 때는 항상 테이블 alias(별칭)을 사용하라.

'DATABASE' 카테고리의 다른 글

오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
SQL 튜닝 규칙.  (0) 2009.09.21
Oracle DB Link  (0) 2009.09.14