최대한 빨리 테이블의 전체 내용을 메모리로 읽으 려합니다. Nexus 데이터베이스를 사용하고 있지만 델파이의 모든 데이터베이스 유형에 적용 할 수있는 몇 가지 기술이있을 수 있습니다.Nexus 데이터베이스 테이블의 빠른 읽기
내가보고있는 테이블에는 20 개의 열이있는 60,000 개의 레코드가 있습니다. 그래서 거대한 데이터 세트는 아닙니다.
직접 TnxTable 더 빠른 사용하지 않고 테이블에 액세스하거나 SQL 쿼리를 사용하여보다 느린
'이 SELECT * FROM tablename'
내 프로파일에서, 지금까지 다음과 같은 것이 발견 실제로 데이터를 읽거나 복사하지 않고 행을 반복하는 간단한 작업이 대부분의 시간을 소비합니다. 모든 레코드를 반복
내가 얻고 성능이
- 이 값을 읽고이를 저장, 3.5 초 모든 레코드를 반복 소요, 3.7 초 (즉, 0.2 초 정도 걸립니다 내 코드의 이상)
샘플
var query:TnxQuery;
begin
query.SQL.Text:='SELECT * FROM TableName';
query.Active:=True;
while not query.Eof do
query.Next;
60,000 개의 행 테이블에서 3.5 초가 소요됩니다.
이 성능이 적절한가요? 데이터를 더 빨리 읽을 수있는 다른 방법이 있습니까?
현재 동일한 컴퓨터의 서버에서 데이터를 읽지 만 궁극적으로 LAN상의 다른 서버에서 데이터를 읽는 중일 수 있습니다.
그 중 하나만으로도 3.5 초가 걸리지 않습니까? 아니면 루프에 다른 지침이 있습니까? 왜냐하면 당신이 데이터를 읽는다면 아마도 그럴만 한 이유가없는 것으로 유명한 FieldByName을 가지고 있기 때문입니다. – zz1433
그 자체만으로도 3.5s – awmross