문제

내 응용 프로그램에서 Sybase 15를 사용하고 있는데 중첩 조인과 관련된 성능 문제가 있습니다.2개의 테이블에서 2개의 열을 선택하고 이 2개의 테이블 사이에서 10개가 넘는 열의 동등성을 비교하는 저장 프로시저가 있습니다.그런데 이 가게를 운영하다 보면.proc. 결과는 40분 정도 소요됩니다.내 프로세스 상단에 "set merge-join off" 문을 추가했는데 결과에 22초가 걸렸습니다.하지만 그것 없이는 해결책이 하나 더 필요합니다.이전에 sybase 12.5를 사용하고 있었는데 그런 문제는 없었고 결과를 얻는 데 3분이 걸렸습니다.

15와 12.5 사이의 sp_configure를 사용하여 서버 구성을 비교했는데 sybase15 서버 구성(I/O 및 메모리 구성 설정)이 sybase12.5 서버보다 큽니다.

정보:sybase15에 위치한 PC의 시스템 리소스는 정말 좋습니다.

도움이 되었습니까?

해결책

나는 주말에 Sybase 15 마이그레이션에서 발생한 중요한 성능 문제를 디버깅하는 직장에서 14 시간을 보냈습니다.

Query Optimiser는 (우리를 위해) 매우 이상한 결정을 내 렸습니다.

예를 들어,

select a, b, c from table1, table2, table3 where ...

~ 대

create table #temp (col1 int, col2 int, ... etc)

insert #temp
select a, b, c from table1, table2, table3 where ...

우리는 좋은 시간에 첫 번째 달리기를했으며 광범위한 재 작업에도 불구하고 두 번째 사례에서 올바른 결정을 내릴 수 없었습니다. 우리는 심지어 쿼리를 임시 테이블로 분리했지만 여전히 비정상적인 결과를 얻었습니다.

결국 우리는 의지했습니다 SET FORCEPLAN ON 일부 쿼리의 경우 - 이것은 DBA와 Sybase가 라인에 10 시간 후에 있습니다. 솔루션은 Sybase 엔지니어의 조언보다는 응용 프로그램 개발자들로부터 나왔습니다.

시간을 절약하기 위해이 경로를 취하는 것이 나의 제안입니다.

다른 팁

다른 분들과 마찬가지로, 현실적인 답변보다는 안타까운 마음이 듭니다!ASE 15 쿼리 플래너가 테이블 스캔 비용을 크게 과소평가하고 마찬가지로 클러스터형 인덱스 사용 비용을 과대평가하는 문제가 발생합니다.이로 인해 병합 조인이 제안된 계획이 됩니다.병합 조인 비활성화 또는 allrows_oltp optgoal 설정 때때로 더 나은 쿼리 계획이 생성됩니다.예상 비용은 아직 많이 벗어나 있지만 테이블에서 하나의 옵션을 제거하면 쿼리 플래너가 비록 잘못된 분석을 통해서라도 좋은 해결책을 찾을 수 있습니다.

ASE 15 문서에는 훨씬 더 깔끔한 알고리즘 세트가 있는 반면 ASE 12 플래너에는 많은 특수 사례가 있다고 나와 있습니다.아마도 "조인에 클러스터형 인덱스 열이 있으면 테이블 검색보다 더 빠를 것입니다"라고 말하는 특별한 경우는 그다지 나쁜 생각이 아닐 것입니다.:(

Sybase는 버전 15의 쿼리 엔진을 효과적으로 다시 작성하여 12.x에서 초고속으로 실행 된 쿼리가 최신 버전에서 훨씬 느리게 실행될 수 있으며 그 반대도 마찬가지입니다. 디버그하는 유일한 방법은 12.x 쿼리 계획을 15 쿼리 계획과 비교하고 다르게 수행되는 작업을 확인하는 것입니다.

이 문제에 관심이있는 모든 사람은이 문서를 읽어야합니다.

http://www.sybase.com/files/white_papers/ase15-optimizer-best-practices-v1-051209-wp.pdf

Sybase 12에서 Sybase 15로 이동하는 것에 대한 솔직한 경고가 있습니다.

quoteth :

... ASE 15를 "또 다른 릴리스"로 취급하지 마십시오. 업그레이드 된 서버에서 응용 프로그램을 업그레이드하고 가리킬 수 있다고 말하고 싶은만큼 데이터베이스의 가장 기본적인 영역 중 하나 인 쿼리 실행은보다 집중된 테스트 요법이 필요합니다. 이 백서는 가능한 한 가능한 한이 노력을 줄이기위한 명확한 사실과 모범 사례를 제공하기위한 것입니다.

새로운 ASE 15 쿼리 옵티마이저, vis-a-vis OLTP 쿼리 및 DSS (의사 결정 지원 시스템) 쿼리에 대해 계속 이야기합니다.

하지만, 거기 있습니다 좋은 소식: 2009 년 3 월 Sybase 15.0.3은 호환성 모드를 도입했습니다. 다음 문서를 참조하십시오.

http://www.sybase.com/detail?id=1063556

이 모드를 사용하면 OLTP 또는 DSS 프로파일에 맞는지 결정하기 위해 쿼리를 분석 할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top