SQL 쿼리를보다 효율적으로 수행하여 문제를 해결할 방법을 찾거나 내 검색을 다 써 버렸습니다.
포함 된 SQL 스크립트는 40,970,221과 같은 행을 결합한 3 개의 테이블에서 가져옵니다. 이것은 물론 3 개의 웨이퍼를위한 것이지만 당신은 그것을 3으로 나눌 수 있으며 그것은 나의 표준 데이터입니다.
어떤 제안이라도 있으면? 나는이 모든 것을 끌어들이는 데 걸리는 시간을 참 아야 할 운명인가?
SELECT
CASE
WHEN t2.testname = 'test_1' THEN t3.ts
WHEN t2.testname = 'test_2' THEN t4.ts
WHEN t2.testname = 'test_3' THEN t5.ts
END AS TimeStamp,
t1.testdate,
t1.wafer_number,
t2.rownum,
t2.colnum,
t2.subrow,
t2.subcol,
t2.part_name,
t2.part_number,
t2.testname,
t2.set_id,
t2.trmode,
t2.channel,
t2.teststate,
t2.refstate,
t2.filterstate,
t2.data_id5,
CASE
WHEN t2.testname = 'test_1' THEN t3.input_1
WHEN t2.testname = 'test_2' THEN t4.input_2
WHEN t2.testname = 'test_3' THEN t5.input_3
END AS INPUT
t3.output_1
t3.output_2,
t3.output_3,
t4.output_1,
t4.output_2,
t4.output_3,
t5.output_1,
t5.output_2
FROM tst_master t1
LEFT OUTER JOIN table_2 t2
ON ( t2.run_id = t1.run_id )
LEFT OUTER JOIN table_5 t5
ON ( t5.header_id = t2.header_id )
LEFT OUTER JOIN table_3 t3
ON ( t3.header_id = t2.header_id )
LEFT OUTER JOIN table_4 t4
ON ( t4.header_id = t2.header_id )
WHERE ( ( t1.wafer_number IN ( 'wafer_1' , 'wafer_2' , 'wafer_3' ) ) )
AND ( t2.testname IN ( 'test_1', 'test_2', 'test_3' ) )
ODBC는 느려지는 경향이 있습니다. 너는 시도 할 수 있었다 :
- PL / SQL Developer, SQL Navigator 또는 Toad와 같은 도구에서 쿼리를 실행합니다. 이 제품은 Oracle에보다 신속하게 액세스 할 수 있습니다.
- 데이터를 .CSV 파일로 내보내기
- CSV 파일을 JMP로 가져 오기
SQL 서버가있는 경우 유사한 제품이 있습니다. 그들 중 어느 누구도 잘 모르겠습니다.
답장을 보내 주셔서 감사합니다... 그것은 흥미로운 아이디어입니다. 나는 그것을 시험해 볼 것이다.
더 빠른 CPU와 더 많은 RAM이 항상 도움이 될 것입니다.