Access 데이터베이스에서 데이터나 개체를 삭제하거나 Access 프로젝트에서 개체를 삭제하면 Access 데이터베이스나 Access 프로젝트가 조각화되어 디스크 공간을 덜 효율적으로 사용할 수 있습니다. Access 데이터베이스 또는 Access 프로젝트를 압축하면 실제로 파일이 복사되고 파일이 디스크에 저장되는 방식이 재구성됩니다. 압축은 Access 데이터베이스와 Access 프로젝트 모두의 성능을 최적화합니다.
그래서 우리는 계속 증가하는 데이터베이스로 인해 ASP 프로그램이 견딜 수 없을 정도로 느리다는 것을 알았을 때 이를 압축하려고 생각했습니다. 하지만 기존 접근 방식은 로컬로 다운로드한 다음 MSaccess를 사용하여 압축 작업을 완료한 다음 업로드하는 것입니다!
주의할 점은 이 프로그램은 실제로 FSO 권한을 통해 JET 엔진에 연결되어 있으므로 사용하기 전에 서버가 FSO(파일 시스템 개체) 권한을 지원하는지 확인하고 최신 ACCESS 드라이버를 설치하시기 바랍니다! 안전상의 이유로 압축하기 전에 원본 데이터베이스를 백업하시기 바랍니다! 테스트를 통과한 실행 환경 :
WIN98SE+PWS, WIN2000+IIS5.0
다음은 제가 컴파일한 소스 코드입니다. Compact.asp로 복사하여 저장한 뒤, 정상적으로 사용하기 위해 데이터베이스가 있는 디렉터리에 업로드합니다.
<html>
<머리>
<title>ACCESS 데이터베이스 압축 프로그램</title>
</head>
<body bgcolor="e0f8ef">
<div>
<div align="center"><font color="#3300FF">
<b><font size="5">Universal ACCESS 데이터베이스 온라인 압축 프로그램</font></b></font><br>
</div>
<div><br>
이 프로그램은 실제로 FSO 권한을 통해 JET 엔진에 연결됩니다.
따라서 사용하기 전에 서버가 FSO를 지원하는지 확인하시기 바랍니다.
(filesystemobject) 권한을 부여하고 최신 ACCESS 드라이버를 설치하세요!
안전상의 이유로 압축하기 전에 원본 데이터베이스를 백업하시기 바랍니다! </div><br>
<div align="center">운영 환경: WIN98SE+PWS, WIN2000+IIS5.0 <br>
<%
상수 JET_3X = 4
기능 CompactDB(dbPath, boolIs97)
희미한 fso, 엔진, strDBPath
strDBPath = 왼쪽(dbPath,instrrev(DBPath,""))
fso = CreateObject("Scripting.FileSystemObject") 설정
fso.FileExists(dbPath) 다음
엔진 설정 = CreateObject("JRO.JetEngine")
If boolIs97 = "True" 그러면
Engine.CompactDatabase "공급자=Microsoft.Jet.OLEDB.4.0;데이터 소스=" & dbpath, _
"공급자=Microsoft.Jet.OLEDB.4.0;데이터 소스=" & strDBPath & "temp.mdb;"
& "제트 OLEDB:엔진 유형=" & JET_3X
또 다른
Engine.CompactDatabase "공급자=Microsoft.Jet.OLEDB.4.0;데이터 소스=" & dbpath, _
"공급자=Microsoft.Jet.OLEDB.4.0;데이터 소스=" & strDBPath & "temp.mdb"
종료 조건
fso.CopyFile strDBPath & "temp.mdb",dbpath
fso.DeleteFile(strDBPath & "temp.mdb")
fso = 아무것도 설정하지 않음
엔진 설정 = 없음
CompactDB = "귀하의 데이터베이스 " & dbpath & "가 압축되었습니다" & vbCrLf
또 다른
CompactDB = "입력한 데이터베이스 경로 또는 이름을 찾을 수 없습니다. 다시 시도하십시오" & vbCrLf
End If
함수 종료
%>
</div>
</div>
<form name="compact" method="post" action="compact.asp">
<div 정렬="중앙">
<font size="2"><b><font color="#FF0000">
압축 옵션은 꼼꼼히 입력해주세요! </font></b><br>
<br>
데이터베이스의 전체 이름을 입력하세요.
<입력 유형="텍스트" 이름="dbpath">
(MDB, ASA, ASP 등의 확장 포함)<br>
<br>
<input type="checkbox" name="boolIs97" value="True">
ACCESS97 데이터베이스인지 확인하세요<br>
(기본값은 ACCESS2000 데이터베이스입니다)<br>
<br>
<input type="submit" name="submit" value="압축 확인">
</font></div>
</form>
<div align="center"><font size="2">
<%
희미한 dbpath,boolIs97
dbpath = 요청("dbpath")
boolIs97 = request("boolIs97")
dbpath <> ""인 경우
dbpath = server.mappath(dbpath)
response.write(CompactDB(dbpath,boolIs97))
종료 조건
%>
<br>
</font></div></body></html>