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

기술 자료 번역 기술 자료 번역
기술 자료: 275085 - 이 문서가 적용되는 제품 보기.
이 문서의 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.Database
    Dim MyProperty As DAO.Property
    Dim propName As String, propVal As String, rplpropValue As String
    Dim propType As Integer, i As Integer
    Dim intCount As Integer
    
    On Error GoTo tagError
    
    Set MyDB = CurrentDb
    propName = "SubDataSheetName"
    propType = 10
    propVal = "[None]"
    rplpropValue = "[Auto]"
    intCount = 0
    
    For 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 If
    tagFromErrorHandling:
    Next i
    
    MyDB.Close
    
    If intCount > 0 Then
        MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."
    End If
    
    Exit Sub
    
    tagError:
    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 tagFromErrorHandling
    Else
        MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."
    End If
    End Sub
    
  5. 직접 실행 창에 다음 텍스트를 입력한 다음 Enter 키를 눌러 함수를 실행합니다.
    TurnOffSubDataSheets
    						
    잠시 후 일부 테이블이 아직 업데이트되어 있지 않은 경우 <NumberOfTablesUpdated> 개의 비시스템 테이블에 대해 SubDataSheetName 속성이 [없음]으로 업데이트되었음을 알리는 메시지 상자가 표시됩니다.

추가 정보

Office Access 2007, Access 2003, Access 2002 및 Access 2000에서는 하위 데이터시트의 테이블 관련 레코드를 볼 수 있지만 Access 97에서는 이 기능이 제공되지 않습니다. 기본 테이블 및 관련 테이블 간의 관계를 관리하려면 응답 시간을 늘릴 수 있는 추가적인 오버헤드가 필요하며 특히 데이터베이스에 연결된 테이블 개수가 많고 테이블 간 관계의 개수가 많은 경우 더욱 필요합니다.

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

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

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



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

속성

기술 자료: 275085 - 마지막 검토: 2008년 1월 22일 화요일 - 수정: 10.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
키워드:?
kbbug kbperformance kbnofix KB275085

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com