현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

Access 2002, Office Access 2003 및 Office 2007에서 연결된 테이블의 성능이 저하된다

Office 2003에 대한 지원이 종료되었습니다.

Microsoft는 2014년 4월 8일 Office 2003에 대한 지원을 종료했습니다. 이러한 변경에 따라 해당 소프트웨어 업데이트 및 보안 옵션이 영향을 받습니다. 사용자에게 미치는 영향 및 계속 보호를 받는 방법에 대해 알아보십시오.

이 문서의 Microsoft Access 2000 버전에 대한 내용은 261000을 참조하십시오.
초급: 단일 사용자 컴퓨터의 사용자 인터페이스에 대한 지식이 필요합니다.

이 문서의 내용은 Microsoft Access 데이터베이스(.mdb)에만 적용됩니다.

현상
Microsoft Access 2002, Microsoft Office Access 2003 또는 Microsoft Office Access 2007에서 하위 데이터시트의 관련 레코드를 표시하는 연결된 테이블을 열 때 Microsoft Access 97에서 동일한 데이터베이스를 사용하여 이 작업을 수행하는 경우보다 현저하게 많은 시간이 걸립니다.
원인
이 문제는 여러 관계가 포함된 데이터베이스에 연결된 테이블이 많고 여는 테이블의 하위 데이터시트 이름 속성이 [자동]으로 설정된 경우 발생합니다.
해결 방법
이 문제를 해결하려면 해당 테이블의 하위 데이터시트 이름 속성을 [없음]으로 설정하십시오. 이 작업은 수동 또는 코드를 사용하여 수행할 수 있습니다.

수동으로 하위 데이터시트 이름 속성 설정

하위 데이터시트 이름 속성을 수동으로 설정하려면 다음과 같이 하십시오.

참고 아래 단계는 Access 2002에서만 적용됩니다.
  1. 백 엔드 데이터베이스에서 디자인 보기로 테이블을 엽니다.
  2. 보기 메뉴에서 속성을 누릅니다.
  3. 하위 데이터시트 이름 속성을 [없음]으로 설정합니다.
  4. 테이블을 저장하고 닫습니다.

코드를 사용하여 모든 테이블에 대해 하위 데이터시트 이름 속성 설정

Visual Basic for Applications 함수를 사용하여 데이터베이스의 모든 비시스템 테이블에 대해 하위 데이터시트 이름 속성을 [없음]으로 자동 설정할 수 있습니다. 이렇게 하려면 다음과 같이 하십시오.
  1. 백 엔드 데이터베이스를 엽니다.
  2. 데이터베이스 창에서 모듈을 누른 다음 새로 만들기를 누릅니다.
  3. 도구 메뉴에서 참조를 누릅니다. Microsoft DAO 3.6 개체 라이브러리 확인란이 선택되어 있는지 확인한 다음 확인을 누릅니다.
  4. 새 모듈에 다음 코드를 입력하거나 붙여 넣습니다.
    Sub TurnOffSubDataSheets()Dim MyDB As DAO.DatabaseDim MyProperty As DAO.PropertyDim propName As String, propVal As String, rplpropValue As StringDim propType As Integer, i As IntegerDim intCount As IntegerOn Error GoTo tagErrorSet MyDB = CurrentDbpropName = "SubDataSheetName"propType = 10propVal = "[None]"rplpropValue = "[Auto]"intCount = 0For i = 0 To MyDB.TableDefs.Count - 1    If (MyDB.TableDefs(i).Attributes And dbSystemObject) = 0 Then        If MyDB.TableDefs(i).Properties(propName).Value = rplpropValue Then             MyDB.TableDefs(i).Properties(propName).Value = propVal             intCount = intCount + 1        End If    End IftagFromErrorHandling:Next iMyDB.CloseIf intCount > 0 Then    MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."End IfExit SubtagError:If Err.Number = 3270 Then    Set MyProperty = MyDB.TableDefs(i).CreateProperty(propName)    MyProperty.Type = propType    MyProperty.Value = propVal    MyDB.TableDefs(i).Properties.Append MyProperty    intCount = intCount + 1    Resume tagFromErrorHandlingElse    MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."End IfEnd Sub
  5. 직접 실행 창에 다음 텍스트를 입력한 다음 Enter 키를 눌러 함수를 실행합니다.
    TurnOffSubDataSheets						
    잠시 후 일부 테이블이 아직 업데이트되어 있지 않은 경우 <NumberOfTablesUpdated> 개의 비시스템 테이블에 대해 SubDataSheetName 속성이 [없음]으로 업데이트되었음을 알리는 메시지 상자가 표시됩니다.
추가 정보
Office Access 2007, Access 2003, Access 2002 및 Access 2000에서는 하위 데이터시트의 테이블 관련 레코드를 볼 수 있지만 Access 97에서는 이 기능이 제공되지 않습니다. 기본 테이블 및 관련 테이블 간의 관계를 관리하려면 응답 시간을 늘릴 수 있는 추가적인 오버헤드가 필요하며 특히 데이터베이스에 연결된 테이블 개수가 많고 테이블 간 관계의 개수가 많은 경우 더욱 필요합니다.

일대다 관계의 기본 테이블("일"에 해당하는 테이블)의 하위 데이터시트 이름 속성은 [없음]으로 설정될 수 있으며 이러한 경우 하위 데이터시트가 표시되지 않습니다. 또는 이러한 하위 데이터시트 이름 속성이 특정 관련 테이블의 이름 또는 [자동]으로 설정될 수 있습니다. 속성이 [자동]으로 설정된 경우 기본 테이블 레코드의 확장 표시기를 눌러 보려는 레코드의 관련 테이블을 선택할 수 있습니다. 속성을 [자동]으로 설정하면 성능이 현저하게 저하될 수 있는데 특히 오래된 컴퓨터에서 데이터베이스가 여러 연결된 테이블을 사용할 때 성능이 크게 저하됩니다. 이 문제는 동일한 데이터베이스에 모든 테이블이 표시되는 경우에는 발생하지 않습니다.

성능 저하가 문제이므로 프로세서 속도 및 사용 가능한 시스템 리소스와 같은 요인으로 인해 한 컴퓨터에서는 제대로 실행되는 데이터베이스가 다른 컴퓨터에서는 느리게 실행될 수 있습니다.

Microsoft는 모든 보증(상품, 특정 목적에의 적합성에 대한 묵시적인 보증을 포함하며 이에 제한되지 않음)을 배제하며 예를 보여주기 위한 목적으로만 이 프로그래밍 예제를 제공합니다. 본 문서의 내용은 프로시저를 작성하고 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
prb long time ACC2007
속성

문서 ID: 275085 - 마지막 검토: 01/22/2008 09:55:47 - 수정: 10.1

Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbbug kbperformance kbnofix KB275085
피드백