'성능향상'에 해당되는 글 2건

  1. 2007/09/01 [초보] 1원팁 외부키에 인덱스가 필요한가? [정의헌]
  2. 2007/09/01 ASP 성능 향상 팁
http://kr.blog.yahoo.com/zeronullkr 


외부키에 인덱스가 필요하다.

-dml 작업시에 락킹문제
-조인시 연결고리 성능향상


우선 정규화가 안되어 있다면 튜닝도 소용 없는 짓이고.(모델링이 중요하다는 말) 기본적으로 where 분석을 해야하고. 분포도가 적은 필드 먼저 인덱스를 타야겠지.

여러 테이블조인시에 도 PK만으로도 연결고리는 적절하나. 원하는 성능을 내기 위해서 인덱스를 따로 생성해주고 힌트를 이용해야 하기도 하고.

또 운반단위의 개념 등등 여러가지 DBMS의 지식을 알아야지 혹사 안시키고 원하는 것만 빠른 속도로 딱딱 뽑아 내는거지.

또 간단한 팁을 하나 더 적자면

문자형 필드인데...  state=10  이렇게 한다면 형변환이 일어나게 되지.
반대로 where 함수(state)=10 이런 형태라든가

여하튼.. 쉽게 글로 설명하기는 힘들겠구나.
언제 시간되면 나도 잘 모르니 얘기를 나눠보자꾸나
2007/09/01 23:13 2007/09/01 23:13

ASP 성능 향상 팁

개발/ASP/ASP.NET 2007/09/01 22:21 posted by zekill
누가 쓴글인지 어디서 퍼왔는지 잘 모르겠지만 동감

==================================================


Asp 성능향상 팁



1.   Option Explicit를 명시한다. 쓰지도 않는 변수들이 생기면 그만큼 메모리 낭비가 생기므로...

2.   배열사용 시 배열 재할당은 최대한 피한다.

3.   배열 사용이 빈번할 시 Dictionary 객체를 이용하여 가독성을 높인다.

4.   Stored Procedure를 사용한다. (일반 ASP자체 쿼리보다 최고 30% 성능 향상.)

5.   뷰테이블 사용 시 뷰테이블 자체에서 정렬을 해야 한다. 이미 만들어진 뷰테이블을 이용하여 Asp 코드에서 정렬하면 속도가 크게 떨어진다. 최고 50%까지 느려지는 것을 목격했음.

6.   Query를 사용할 때 꼭 필요한 컬럼만 명시하여 불러오거나 이용해야 한다. SQL은 아주 정직해서 불러오는 컬럼의 갯수(레코드 수가 동일하다고 가정시)에 비례하여 시간이 걸린다.

7. Recordset 객체 보다는 Command 객체를 이용하는 것이 빠르다. 10%정도의 향상을 볼 수 있었다.

8. Recordset 객체 사용시 CursorLocation를 적절한 것을 사용해야 한다. (1, 서버, 3. 클라이언트) 속도의 차이가 클 수 있다. CursorType도 영향을 멋진다. 반드시 테스트 필요. 보통은 CursorLocation은 클라이언트에 두는 것이 추세다. 테스트 때 클라이언트에 커서를 두었을때 서버에 두었을때보다 속도가 최고 3배이상 빨라지는 것을 경험했다.

9.   1000글자가 넘어가는 문장의 경우는 변수에 담아서 한번에 Response.Write 하는 것보다는 한줄한줄 직접 뿌려주는 것이 빠르다. <%= %>를 이용해 직접 뿌리는 것이 가장 빠르다. 괜히 변수에 잔뜩담아서 Response.write 해보라 -_-;;; 아마 글자수의 제곱에 비례하여 느려질 것이다 -_-;;;

10.  사용한 객체는 반드시 Close, Nothing 해준다. 안해주면 메모리 누수가 일어난다. 웹서버들이 잘 죽는 경우는 반드시 이것을 체크해야 한다.

11.  다중레코드를 이용할 시에는 Do until, Rs.MoveNext 구문보다는 GetRows() 함수를 이용하는 것이 빠르다.(Stored Procedure와 함께 사용시 최고 40% 성능 향상, 단독으로 사용시 최고 20% 성능 향상.)

12.  사용자 Function을 만들어 쓰는 것이 디버깅 등에 좋다.

13. ADODB 객체 사용보다 OBJECT 객체를 사용하여 컨넥션, 레코드셋을 연다.





잘못알려진 내용들
1.   Inlcude를 많이 시키면 속도가 느려진다고 일반적으로 알려져 있지만 실제로는 속도차이가 전혀 없다.

2.   긴문장이나 Html과 Asp 태그를 혼합해서 많이 쓰면 느려진다고 알려져 있으나 실제로는 차이가 없거나 혼합해서 쓰는 것이 오히려 빨랐다. 오히려 긴 Html 태그를 asp 변수에 담아 Response한 결과 1000글자가 넘어갈 수록 단순히 혼합해서 쓴 소스의 수행시간의 제곱에 비례하게 느려지는 것이 발견되었다.

3.   뷰테이블에 아무리 많은 테이블, 컬럼들을 Join 해도 단일 테이들의 같은 수의 컬럼을 사용하는 속도와 동일하다.
2007/09/01 22:21 2007/09/01 22:21