지금 사용하는 소스의 형태는 아래와 같습니다.
--------------------------------------------------------------------------------------------------------------------------------------
EXEC SQL OPEN C USING DESCRIPTER gBindDa;
EXEC SQL DESCRIBE SELECT LIST FOR S INTO gSelectDa;
...
while( BOOL_TRUE )
{
EXEC SQL WHENEVER NOT FOUND DO Final(1);
EXEC SQL FETCH NEXT C USING DESCRIPTOR gSelectDa;
/* write the row */
for( i = 0; i < gSelectDa->N; i++ )
{
/* write column */
.....
/* write delimiter */
......
}
/* write NewLine */
......
if(bufferSize > 100M)
(
WriteFile();
)
(void) setjmp(gLoopEnv);
}
---------------------------------------------------------------------------------------------------------------------
패치 Row 를 버퍼에 저장했다가, 버퍼가 100M 가 되면 파일에 씁니다.
쿼리 결과가 총 1G 정도 되는데 이걸 내리는데 걸리는 시간이 한시간이 넘게 걸리네요..
아마도.. Row 를 한개씩 패치하는 형식이라 느린거 같은데..
고속 패치 하려면 어떻게 해야 되나요?
|