0

DB2 트랜잭션 데이터베이스를 실행하는 AS400 메인 프레임이 있습니다. 또한 AS400의 데이터로 야간에로드되는 SQL Server 설치 프로그램이 있습니다. SQL Server 설치 프로그램은보고 용입니다.SQL 서버 2005에 연결 한 후 DB2 트랜잭션 데이터베이스에서 성능이 저하됨

두 데이터베이스 서버를 연결할 수 있지만 SQL Server에서 오는 쿼리로 인해 성능에 영향을 줄 수있는 DB2 성능에 대한 우려가 있습니다.

기본적으로 SQL Server에서 쿼리를 사용하여 DB2를 시작하면 트랜잭션 시스템이 중단되어 주문과 배송이 망가질 위험이 있습니다.

공유 할 수있는 지식에 대해 미리 감사드립니다.

+0

현재 IBM i 시스템 구성은 무엇입니까?하드웨어 모델 번호, 주 메모리 및 디스크 크기 (특히 팔 수)? 시간당 추가 거래는 얼마나됩니까? 얼마나 넓은 (즉, 행 당 1000 바이트 또는 100을 얻을 것인가) 각 트랜잭션은 네트워크 대역폭과 디스크로드를 결정합니다. SQL Server에서 변경을 수행하기 때문에 SQL Server에서 끌어 오지 않고 DB2에서 SQL Server로 변경 사항을 푸시하는 것이 좋습니다. –

+0

그 중 세부 사항은 없지만 귀하의 질문은 이미이 질문에 대한 답이 없음을 보여줍니다. 기본적으로 문화적 문제가있어 새로운 것이 두려워하고 관리자가 새로운 아이디어로 시스템의 성능이 저하된다고 말합니다 (예 : "인덱스로 인해 데이터베이스가 느리게 실행되므로 SQL Server 테이블에 인덱스가 하나도 없습니다" – sothatswhereitgoes

+1

우리가하려는 일은 실시간으로 (또는 거의 실시간에 가까운) 보고서를 생성하는 것입니다 (보고서를 Excel로 내보내는 것). 보고서는 약 1,000 개의 행, 약 16 개의 필드 및 약 5 개에서 그리기입니다. 파일. – sothatswhereitgoes

답변

1

실적 질문에 대한 답변이 확실하지 않은 사람은 누구나 틀림 :-) 해당 답변은 입니다. 항상에 따라 다릅니다. 성능 조정은 측정을 통해 수행하는 것이 가장 좋으며, 하나의 변수를 변경하고 반복하십시오.

DB2는 누군가가 1,000 행의 SELECT 문을 실행하는 경우에도주의해야합니다. Benny의 제안을 받아서 IBM i 측의 시계를 실행하십시오. 그들이 힌트를 원하면 WRKACTJOB을 사용하고 Int 열을 정렬하십시오. 이는 대화 형 응답 시간을 나타냅니다. 쿼리가 활성화되기 전에 쿼리가 완료 될 것이라고 추측 할 수 있습니다.

경영진이 받아 들일 수없는 것으로 보인다면, 대화식 성능에 영향을 줄 수없는 시간 전후에 테스트 해 볼 것을 제안 할 수 있습니다.

제쳐두고, RPG 전문가는 Excel 스프레드 시트를 바로 만들 수 있습니다. Scott Klement은 Java POI/HSSF 클래스를 통해 RPG 래퍼를 게시했습니다. 또한 Easy400.net의 Giovanni Perrotti는 웹 페이지에서 Excel 스프레드 시트를 제공하는 몇 가지 예를 제공합니다.

+0

벅 (Buck)과 완전히 동의합니다. [DBG/400] (http://www.dbg400.net/foswiki/bin/view/DBG400)에 대해서도 언급 할 것입니다./IndexPage) 소프트웨어는 빠르고 쉽게 cr CSV 파일을 다운로드하십시오. 분명히 CSV는 진정한 Excel 스프레드 시트가 아니지만 제 고객 중 한 명은 10 년 넘게 행복했습니다 :-) –

+0

입력에 대한 모든 덕분에 성능에 대한 최상의 대답은 '그것이 다릅니다' . 불행히도 문제가 '우리의 안락 지대 밖에서는 아무 것도하지 말라'는 수준으로 옮겨 졌기 때문에 아무 것도 테스트 할 기회가 없습니다. 아마 빨간 머리가 된 단계 아이처럼 DB2를 치고 그들은 알지 못할 것입니다. 그러나 나는 싸울 다른 전투를 가지고 있습니다. – sothatswhereitgoes

+0

Re : Excel 파일. 1000 열 쿼리는 여러 파일 (테이블)에서조차도 겸손한 i 서버에서도 땀을 흘려서는 안되며, 16 열이있는 1000 행 Excel 파일을 생성하는 것은 매우 매우 느립니다. 그리고 RPG (Scott의 물건이하는 것, Giovanni의 물건은 Scott의 포장지를 감싸는 포장재처럼 보인다)에서 반복되는 Java 호출을 사용하면 너무 느립니다. 스캇이 너 한테 이걸 말할거야. –

0
내가 주로 벅에 동의 것

는 1000 행 결과 세트는

물론 시스템이 당신이 1000 개 행을 얻기 위해 수백 개의 테이블을 가로 질러 수십억 개의 행을 통해 찾고 않는 한 ... 별거 없습니다

유용한 색인이 있다고 가정하면, 1000 개의 행은 큰 문제가 아니어야합니다. Windows 용 IBM i Access를 설치 한 경우 쿼리 실행 계획에 대한 시각적 설명을 제공하는 "Visual Explain"을 포함하는 "Run SQL Scripts"라는 System i Navigator 구성 요소가 있습니다. 색인이 사용 중인지 확인할 수 있습니다.

중요한 점은 작업이 i에서 수행되고 있는지 확인하십시오. 표준 연결 테이블을 사용할 때 MS SQL Server는 모든 행을 되돌리려 고 시도 할 것이고 자신의 "where"를 수행 할 것입니다.

select * from MYLINK.MYIBMI.MYLIB.MYTABE 여기서 MYKEYFLD = '00335'; '00335' '' 'MYKEYFLD = 여기서 mylib.mytable 선택 *'

선택 * OPENQUERY (내 링크에서이 형식 반면

결과를 다시 얻을 단지 처리를 위해 원격 서버에 대한 문을 보내고);

다른 방법으로는 내가 찾는 결과를 얻기 위해 호출 할 수있는 저장 프로 시저를 빌드하도록 요청할 수 있습니다. 개인적으로, 그것은 내가 선호하는 방법입니다.

찰스