1. 트랜잭션 처리를 사용해 데이터베이스를 업데이트해 보세요.
VB 트랜잭션 처리에는 BeginTrans로 시작하고 CommitTrans 또는 Rollback으로 끝나는 여러 데이터베이스 작업 지침이 포함됩니다. 데이터베이스의 무결성을 보장하는 것 외에도 트랜잭션 처리는 데이터베이스 일괄 업데이트의 효율성을 크게 향상시킬 수 있습니다. 이는 데이터베이스 업데이트 작업에서 트랜잭션 처리를 사용하지 않는 경우 각 업데이트 작업으로 인해 데이터베이스가 디스크에 한 번씩 기록되기 때문입니다. 트랜잭션 처리를 사용한 후에는 메모리 버퍼에서만 업데이트가 수행되고 CommitTrans가 실행될 때 모든 수정 사항이 한 번에 디스크에 다시 기록됩니다. 트랜잭션 처리를 사용할 때 주의해야 할 몇 가지 사항이 있습니다.
(1) 거래 처리에는 완전한 오류 검사 메커니즘이 있어야 합니다.
(2) VB는 트랜잭션이 끝나기 전에 데이터베이스에 페이지 잠금을 사용하기 때문에 다중 사용자 환경에서 트랜잭션이 일시 중지되면 다른 사용자는 잠긴 데이터에 액세스할 수 없습니다.
2. 선택 검색 작업에 코드 분해를 사용해 보십시오.
데이터베이스 작업에 Select를 사용하는 것은 간단하고 사용하기 쉽지만 일부 검색 작업을 동등한 수동 검색 코드로 분해하면 데이터베이스 검색 속도가 크게 빨라집니다. 분해의 기본 방법은 검색 키 필드를 색인화하고 사용하는 것입니다. Seek 인덱싱된 데이터베이스의 정렬된 특성을 기반으로 메소드를 찾은 후, 행 순회 검색. 순회 범위가 그다지 넓지 않은 경우 이 방법을 사용하면 데이터베이스 액세스 속도를 수십 배 향상시킬 수 있습니다. 예: Select*frompersonwherevol='123'andbirth=#11-02-73#은 다음 작업으로 분해됩니다. , 액세스 속도가 크게 향상될 수 있습니다.
Table.Index=volTable.Seek=, 123ifnottable.nomatchthen
whilenottable.eof
iftable(vol)=123then
table.movelast
elseiftable(출생)=#11-02-73#그때
'기록 찾기
엔디프
테이블.이동다음
웬덴디프
3. 연결을 사용하여 데이터베이스 테이블 바인딩
ODBC를 사용하여 MSSQLServer, Oracle 및 Sysbase와 같은 데이터베이스 서버에 연결할 때 MSAcess 데이터베이스는 데이터베이스 서버의 테이블 구조를 캐시할 수 있으므로 MSAcess의 연결 기능을 통해 서버의 테이블을 MSAcess 데이터베이스에 바인딩할 수 있습니다. .ODBC 데이터 소스에 액세스하면 시스템 액세스 성능이 향상될 수 있습니다.
4. dbSQLPassThrough 옵션을 사용하십시오.
MSSQLServer, Oracle 및 Sysbase 데이터베이스 서버에 연결할 때 dbSQLPassThrough 옵션을 사용하여 데이터베이스 서버에 직접 명령을 보내면 미들웨어의 명령 검사 및 해석이 줄어들고 데이터베이스 액세스 성능이 향상됩니다. 다음 예에서는 저장 프로시저를 사용하여 Dynaset을 만듭니다.
dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'데이터베이스 열기 setmyds=mydb.openrecordset(name, dbOpendynaset, dbSQLPassThrough,...)
dbSQLPassThrough 사용의 단점은 반환된 레코드 집합이 읽기 전용이라는 것입니다.
5. 데이터베이스 접근 객체 테이블을 올바르게 사용한다.
SEEK 명령어와 인덱스를 함께 사용하면 가장 빠르게 레코드를 찾을 수 있다. 저자가 한번 속도 비교 테스트를 해본 결과 테이블이 10만개 레코드를 검색하는데 3.5초, 다이너셋은 9초, 스냅샷은 10초가 걸렸다. 읽기 및 쓰기 작업 아니요 데이터베이스의 물리적 테이블에 해당하는 SORT 및 FILTER를 지원하며 추가, 삭제 및 수정은 데이터베이스 테이블에 직접적인 영향을 미칩니다.
다이너셋(Dynaset)은 읽기 및 쓰기 작업을 지원하며 ODBC에서 쓰기 작업을 수행하려면 JOIN 명령을 사용하여 여러 테이블을 연결해야 합니다. Dynaset만 사용할 수 있습니다.
스냅샷은 읽을 수만 있고 쓸 수는 없으며 트랜잭션 처리를 지원하지 않습니다.
->